PIM组播协议密集模式
- 格式:doc
- 大小:92.50 KB
- 文档页数:8
组播pim 原理
PIM(Protocol Independent Multicast)称为协议无关组播。
作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF(Reverse Path Forwarding,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。
PIM-DM(PIM-Dense Mode,协议无关组播-密集模式)基本工作原理:PIM-DM使用“推(Push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。
其关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言:
1. 邻居发现:路由器通过周期性地向所有PIM路由器(224.0.0.13)以组播方式发送PIM Hello报文,以发现PIM邻居,维护各路由器之间的PIM邻居关系,从而构建和维护SPT。
2. 扩散:当PIM-DM网络中出现活跃的组播源之后,组播源发送的组播报文将在全网内扩散。
当PIM路由器接收到组播报文,根据单播路由表进行RPF检查通过后,就会在该路由器上创建(S,G)表项,并将该报文向网络中的所有下游节点转发。
3. 剪枝:当PIM路由器接收到组播报文后,RPF检查通过,但是下游网段没有组播报文需求。
此时PIM路由器会向上游发送剪枝报文,通知上游路由器禁止相应下游接口的转发,将其从(S,G)表项的下游接口列表中删除。
4. 嫁接:PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文。
叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。
随后叶子路由器会向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。
PIM技术介绍目录1 PIM简介 (2)1.1 PIM-DM 简介 (2)1.2 PIM-DM 工作机制 (2)1.2.1邻居发现 (2)1.2.2构建SPT (3)1.2.3嫁接 (3)1.2.4断言 (4)1.3 PIM-SM 简介 (4)1.4 PIM-SM 工作机制 (5)1.4.1邻居发现 (5)1.4.2DR 选举 (5)1.4.3RP发现 (6)1.4.4构建RPT (8)1.4.5组播源注册 (8)1.4.6RPT 向SPT 切换 (9)1.4.7断言 (9)1.5 SSM 模型在PIM 中的实现 (10)1.5.1邻邻居发现 (10)1.5.2DR 选举 (10)1.5.3构建SPT (10)2 PIM协议报文格式 (12)2.1 PIM报文通用格式 (12)2.2 PIM Hello消息格式 (13)2.3 PIM Register消息格式 (15)2.4 PIM Register-Stop消息格式 (17)2.5 PIM Join/Prune消息格式 (18)2.6 PIM Graft/Graft-Ack消息格式 (21)2.7 PIM Bootstrap消息格式 (23)2.8 PIM Assert消息格式 (26)2.9 PIM C-RP Advertisement消息格式 (27)3 组播相关概念 (30)3.1 IP组播三种的传递方式 (30)3.2 IP组播技术体系结构 (30)1 PIM简介PIM 是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP 等)所生成的单播路由表为IP 组播提供路由。
组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。
PIM 借助RPF(Reverse PathForwarding,逆向路径转发)机制实现对组播报文的转发。
PIM组播协议密集模式(DM模式)【实验名称】PIM组播协议密集模式(DM模式)【实验目的】熟悉如何配置PIM密集模式【背景描述】你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的密集模式来实现。
【实现功能】实现PIM密集模式下组播流量的传输,如果没有组成员,自动修剪组播发送信息。
【实验拓扑】【实验设备】S3550-24(2台)、S2126G(1台)、S2150G(1台)、PC(4台)【实验步骤】第一步:基本配置switch(config)#hostname S1S1(config)#vlan 10 ! 创建一个vlan10S1(config-vlan)#exiS1(config)#vlan 12S1(config-vlan)#exiS1(config)#vlan 20S1(config-vlan)#exiS1(config)#vlan 100S1(config-vlan)#exiS1(config)#interface f0/24S1(config-if)#switchport mode trunk !把f0/24接口作为trunk接口S1(config-if)#switchport trunk allowed vlan remove 100 ! trunk链路不传输vlan 100的信息S1(config)#interface vlan 1S1(config-if)#ip address 192.168.1.253 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 10S1(config-if)#ip address 192.168.10.1 255.255.255.0 !创建一个SVI地址S1(config-if)#no shutdownS1(config)#interface vlan 12S1(config-if)#ip address 192.168.12.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 20S1(config-if)#ip address 192.168.20.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 100S1(config-if)#ip address 192.168.100.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface fastethernet f0/1 !把接口加入到vlan 10S1(config-if)#switchport access vlan 10S1(config)#interface fastethernet f0/2S1(config-if)#switchport access vlan 20S1(config)#interface fastethernet f0/12S1(config-if)#switchport access vlan 12switch(config)#hostname S2S2(config)#vlan 12S2(config-vlan)#exiS2(config)#vlan 50S2(config-vlan)#exiS2(config)#vlan 60S2(config-vlan)#exiS2(config)#vlan 100S2(config-vlan)#exiS2(config)#interface f0/24S2(config-if)#switchport mode trunkS2(config)#interface vlan 1S2(config-if)#ip address 192.168.2.253 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 12S2(config-if)#ip address 192.168.12.2 255.255.255.0 S2(config)#interface vlan 50S2(config-if)#ip address 192.168.50.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 60S2(config-if)#ip address 192.168.60.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface fastethernet f0/1S2(config-if)#switchport access vlan 50S2(config)#interface fastethernet f0/2S2(config-if)#switchport access vlan 60S2(config)#interface fastethernet f0/12S2(config-if)#switchport access vlan 12switch(config)#hostname S2126S2126(config)#vlan 10S2126(config-vlan)#exiS2126(config)#vlan 20S2126(config-vlan)#exiS2126(config)#interface f0/1S2126(config-if)#switchport access vlan 10S2126(config)#interface f0/2S2126(config-if)#switchport access vlan 20S2126(config)#interface vlan 1S2126(config-if)#ip address 192.168.1.254S2126(config)#interface fastethernet 0/24S2126(config-if)#switchport mode trunkswitch(config)#hostname S2150S2150(config)#vlan 50S2150(config-vlan)#exiS2150(config)#vlan 60S2150(config-vlan)#exiS2150(config-if)#switchport access vlan 50S2150(config)#interface f0/2S2150(config-if)#switchport access vlan 60S2150(config)#interface vlan 1S2150(config-if)#ip address 192.168.2.254S2150(config)#interface fastethernet 0/24S2150(config-if)#switchport mode trunk第二步:配置路由协议S1(config)#router ospf ! 开启ospf进程S1(config-router)#network 192.168.1.0 0.0.0.255 area 0 !将网段加入到区域0 S1(config-router)#network 192.168.10.0 0.0.0.255 area 0S1(config-router)#network 192.168.12.0 0.0.0.255 area 0S1(config-router)#network 192.168.20.0 0.0.0.255 area 0S1(config-router)#network 192.168.100.0 0.0.0.255 area 0S2(config)#router ospfS2(config-router)#network 192.168.2.0 0.0.0.255 area 0S2(config-router)#network 192.168.12.0 0.0.0.255 area 0S2(config-router)#network 192.168.50.0 0.0.0.255 area 0S2(config-router)#network 192.168.60.0 0.0.0.255 area 0第三步:配置组播S1(config)# ip multicast-routing !开启组播功能S1(config)#interface vlan 1S1(config-if)#ip pim !默认为DM模式S1(config)#interface vlan 10S1(config-if)#ip pimS1(config)#interface vlan 12S1(config-if)#ip pimS1(config)#interface vlan 20S1(config-if)#ip pimS1(config)#interface vlan 100S1(config-if)#ip pimS2(config)# ip multicast-routingS2(config)#interface vlan 1S2(config-if)#ip pimS2(config)#interface vlan 12S2(config-if)#ip pimS2(config)#interface vlan 50S2(config-if)#ip pimS2(config-if)#ip pimS2126(config)#ip igmp profile 1 !进入igmp配置文件模式S2126(config-profile)#deny !允许所有的组播组通过。
什么是组播?让我们⼀起解密组播协议(IGMP、PIM)写在前⾯:本⼈是⼀名计算机系⼤⼆的学⽣,会不定时的将我的学习笔记分享给⼤家!如果需要更多的学习资源可以通过我的⾃⾏下载!⽬录组播技术传统的点到点单播存在的问题重复流量过多消耗设备资源、带宽资源难以保证传输质量概述信息发送者:组播源接受相同的信息接受这过程⼀个组播组,并且接受者都是定义:⼀点发出,多点接应优势提⾼效率优化性能分布式应⽤缺点基于udp尽⼒⽽为报⽂重复报⽂失序缺少拥塞避免机制61、ip组播(1) 对于IP 组播,需要关注下列问题:组播源将组播信息传输到哪⾥?即组播寻址机制;⽹络中有哪些接收者?即主机注册;这些接收者需要从哪个组播源接收信息?即组播源发现;组播信息如何传输?即组播路由。
(2) IP 组播属于端到端的服务,组播机制包括以下四个部分:寻址机制:借助组播地址,实现信息从组播源发送到⼀组接收者;主机注册:允许接收者主机动态加⼊和离开某组播组,实现对组播成员的管理;组播路由:构建组播报⽂分发树(即组播数据在⽹络中的树型转发路径),并通过该分发树将报⽂从组播源传输到接收者;组播应⽤:组播源与接收者必须安装⽀持视频会议等组播应⽤的软件,TCP/IP 协议栈必须⽀持组播信息的发送和接收。
为了让组播源和组播组成员进⾏通信,需要提供⽹络层组播地址,即IP 组播地址。
同时必须存在⼀种技术将IP 组播地址映射为链路层的组播MAC 地址。
(3) IP 组播地址IANA(Internet Assigned Numbers Authority,互联⽹编号分配委员会)将D类地址空间分配给IPv4组播使⽤,范围从224.0.0.0到239.255.255.255,具体分类及其含义如下表所⽰。
组播地址D类地址范围含义224.0.0.0-224.0.0.255为路由协议预留的永久组地址224.0.1.0-231.255.255.255 /233.0.0.0-238.255.255.255⽤户可⽤的asm临时组地址,全⽹范围有效232.0.0.0-232.255.255.255⽤户可⽤ssm临时组地址,全⽹范围内有效239.0.0.0-239.255.255.255⽤户可⽤的asm临时组地址,尽在特定的本地管理域内有效,陈伟本地管理组播地址D类地址范围含义IPv4 组播地址的范围及含义说明:组播组中的成员是动态的,主机可以在任何时刻加⼊或离开组播组。
组播pim-dm工作原理
PIM-DM(Protocol Independent Multicast - Dense Mode)是一种用于组播路由的协议,其工作原理如下:
1. 组播源:当一个主机作为组播源时,它将开始发送组播数据包。
它首先需要加入到一个特定的组播组,并选择一个初始的组播树根。
2. 初始组播树:组播源会向所有邻居节点发送组播数据包,并标记它们为活跃邻居。
邻居节点会收到数据包后,将它们转发到它们自己的邻居节点。
这样就形成了一个初始的组播树,从源节点到所有的邻居节点。
3. 刷新树的构建:一旦初始组播树构建完成,PIM-DM将尝试优化这个树。
它会更新树的分支,删除不必要的分支,并选择最短路径进行转发。
这样可以减少树的深度和跳数,提高传输的效率。
4. 邻居维护:PIM-DM使用了倒数计数器来维护邻居节点的活跃性。
每个邻居节点在接收到组播数据包后会重新计数,并把它们传播给它们自己的邻居。
如果计数器达到0,那么节点将被认为是不活跃的,并从组播树中移除。
5. 沉默源检测:PIM-DM使用沉默源检测来识别不再发送组播数据包的源节点。
当一个主机不再发送组播数据包时,它的邻居节点将察觉到这种情况,并进行相应的处理。
如果一个源节点沉默一段时间,邻居节点将把它从组播树中剪枝。
总体来说,PIM-DM使用了初始组播树的构建和维护机制,以及邻居节点的活跃性维护和源节点的沉默源检测机制,来进行组播路由的建立和维护。
它提供了一种基于密集模式的组播路由解决方案,适用于网络中组播的高密度区域。
pim协议PIM(Protocol Independent Multicast)协议是一种网络组播协议,旨在实现高效的组播数据传输。
PIM协议并不依赖于任何特定的单播协议,而是可以与各种单播协议结合使用。
它可以在不同的网络环境下实现多播数据的传输,包括以IPv4和IPv6为基础的网络。
PIM协议的主要目标是实现高效的组播数据传输,以减少网络带宽的消耗和提高数据传输的速度。
PIM协议使用两种基本的路由协议来实现组播转发:PIM-DM(PIM-Dense Mode)和PIM-SM(PIM-Sparse Mode)。
PIM-DM是一种基于洪泛(flooding)的路由协议,适用于网络中的密集型组播场景。
当组播数据包到达一个路由器时,该路由器会将数据包发送到所有的接口上,直到数据包到达组播组的所有成员。
然而,这种方法会产生大量的数据副本,造成网络带宽的浪费。
因此,在网络拓扑中使用PIM-DM协议需要谨慎考虑。
与之相对的,PIM-SM采用一种树状结构的路由方式,只在需要的时候才将组播数据发送到具体的接口。
PIM-SM通过建立组播树(Multicast Tree)来实现组播数据的传输。
这个树的根节点是源节点,叶节点是接收组播数据的成员节点。
PIM-SM 协议使用广播及其他技术来构建和维护组播树,以动态地调整组播数据的传输路径。
这种方式可以有效地减少组播数据在网络中的传播范围,节约了网络资源的开销。
除了PIM-DM和PIM-SM,还有扩展的PIM协议:PIM-SSM (PIM-Source Specific Multicast)和PIM-BSR(PIM-Bootstrap Router)。
PIM-SSM是一种源特定的组播协议,只允许源IP 地址和组播组的IP地址相匹配的数据通过,极大地减少了组播数目。
PIM-BSR则是用来识别和维护网络中的组播源和组播组的协议。
总而言之,PIM协议是一种实现高效组播数据传输的协议。
PIM协议分析组播路由协议的工作原理与应用PIM协议(Protocol Independent Multicast)是一种用于实现组播路由的协议。
它的设计初衷是为了解决互联网上的组播通信问题。
本文将分析PIM协议的工作原理以及其在组播路由中的应用。
一、PIM协议的工作原理PIM协议是一种基于源的组播路由协议,主要用于构建组播树并实现组播数据的传输。
在PIM协议中,有两种重要的角色:组播源和组播接收者。
首先,组播源负责产生并发送组播数据。
当组播源发送组播数据时,它将该数据通过本地接口传递给PIM进程。
PIM进程将根据网络情况和配置信息,决定选择哪条出局口进行数据传输。
其次,组播接收者是指希望接收组播数据的主机。
组播接收者通过在组播组上加入的方式,表达他们的兴趣。
当接收者加入了组播组后,PIM协议将自动为其建立一条到源的最佳路径,以便接收组播数据。
PIM协议主要有两种模式:稠密模式(dense mode)和稀疏模式(sparse mode)。
稠密模式适用于组播数据较为密集的情况,而稀疏模式适用于组播数据较为稀疏的情况。
在稠密模式中,PIM协议使用洪泛(flooding)的方式来传递组播数据。
当组播源发送组播数据时,PIM协议将该数据通过所有接口传递给邻居路由器,邻居路由器再转发给它们的邻居,以此类推。
这种方式的优点是简单直接,但是在网络中会造成大量的冗余传输。
在稀疏模式中,PIM协议使用树状结构来传递组播数据,树的根节点是组播源,叶节点是组播接收者。
在建立组播树时,PIM协议使用了Rendezvous Point(RP)机制。
RP是组播树的核心节点,负责维护组播会话的状态,并指导组播数据的传输路径。
当组播源发送数据时,它会通过RP将数据传递给其他路由器,然后再由这些路由器传递给组播接收者。
稀疏模式可以减少冗余传输,提高网络效率。
二、PIM协议的应用PIM协议在组播路由中具有广泛的应用。
以下将介绍PIM协议在几个方面的具体应用。
pim dm原理
PIM-DM(ProtocolIndependentMulticast-DenseMode)是一种基于距离向量的多播路由协议,主要用于在密集模式下传输多播数据包。
在PIM-DM中,路由器通过向相邻路由器发送控制消息来交换路由信息,以确定多播数据包的最佳传输路径。
PIM-DM的主要特点是使用了洪泛和剪枝技术。
当一个路由器接
收到一个多播数据包时,它会在所有接口上广播该数据包,直到所有互联的路由器都收到该数据包。
然后,路由器使用剪枝技术来删除不需要接收该数据包的接口上的数据包。
这样,只有需要接收数据包的接口才会保留数据包。
另一个重要的特点是,PIM-DM使用了基于距离向量的路由选择
算法。
每个路由器会计算到达每个目标组的最短路径。
这些路径是根据每个接口的度量值计算的。
路由器每隔一段时间就会向相邻的路由器发送路由信息,以更新路由表。
总的来说,PIM-DM是一种简单而可靠的多播路由协议,适用于
小型和中型网络。
它使用了洪泛和剪枝技术以及基于距离向量的路由选择算法来确保多播数据包的可靠传输。
- 1 -。
组播主机之间采用的通信协议组播(Multicast)是一种在网络中一对多通信的方式,它可以实现一次传输多个数据包给特定的一组主机。
在组播通信中,主机通过采用特殊的通信协议进行数据的组播和接收。
本文将介绍组播主机之间常用的通信协议,包括Internet组管理协议(IGMP)和组播路由协议(PIM)。
一、Internet组管理协议(IGMP)Internet组管理协议(Internet Group Management Protocol,简称IGMP)是组播通信中用于管理主机和路由器之间的组播组成员关系的协议。
它使得主机可以通过向路由器发送IGMP报文,表明自己希望加入或离开某个组播组,从而实现组播数据的传输。
IGMP的工作原理如下:当一个主机要加入或离开一个组播组时,它会发送IGMP报文给所连接的路由器。
路由器收到报文后,会根据其中的信息,更新自己的组播组成员表。
这样,路由器就知道哪些主机属于哪个组播组,从而能够正确地转发组播数据。
IGMP报文的格式包括报文类型、报文校验和、组播组地址等字段。
其中,报文类型指示了该报文是加入组播组还是离开组播组,组播组地址指明了加入或离开的组播组的地址。
通过这些字段,IGMP实现了组播通信中的成员管理。
二、组播路由协议(PIM)组播路由协议(Protocol Independent Multicast,简称PIM)是用于实现组播数据在网络中的路由转发的协议。
PIM协议主要分为两种模式:稠密模式(Dense-mode)和稀疏模式(Sparse-mode),根据网络的特点选择适合的模式。
稠密模式适用于网络中组播组成员较多的情况。
在稠密模式下,路由器会广播组播数据,即使没有任何主机要接收。
这样可以确保组播数据能够到达每一个主机,但会产生大量的冗余数据。
稠密模式使用的PIM协议是PIM-DM。
稀疏模式适用于网络中组播组成员较少的情况。
在稀疏模式下,路由器只有在有主机要接收组播数据时,才会转发组播数据。
【干货分享】组播PIM-SM基础知识.......PIM协议是组播路由的基础,上期已经介绍了PIM-DM的原理,本期介绍PIM-SM的基本原理。
01 背景概述在ASM(Any-Source Multicast)模型中,PIM-SM使用“拉(Pull)模式”转发组播报文,一般应用于组播组成员规模相对较大、相对稀疏的网络。
基于这一种稀疏的网络模型,它的实现方法是:·在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。
网络中所有PIM路由器都知道RP的位置。
·当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
·当网络中出现活跃的组播源(组播源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。
在ASM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、RP发现、RPT构建、组播源注册、SPT切换、断言;同时也可通过配置BSR(Bootstrap Router)管理域来实现单个PIM-SM域的精细化管理。
02 邻居发现PIM路由器上每个使能了PIM协议的接口都会对外发送Hello报文。
封装Hello报文的组播报文的目的地址是224.0.0.13(表示同一网段中所有PIM路由器)、源地址为接口的IP地址、TTL数值为1。
Hello报文的作用:发现PIM邻居、协调各项PIM协议报文参数、维持邻居关系。
·发现PIM邻居同一网段中的PIM路由器都必须接收目的地址为224.0.0.13的组播报文。
这样直接相连的PIM路由器之间通过交互Hello报文以后,就可以彼此知道自己的邻居信息,建立邻居关系。
只有邻居关系建立成功后,PIM路由器才能接收其他PIM协议报文,从而创建组播路由表项。
第一章 PIM的密集模式在组播的初期的时候使用的模式就是PIM的密集模式,这种模式使用一种推的方式通过网络传输组播数据包。
用简单的术语来说,组播路由器通过所有的接口发送组播数据,知道其他的设备告诉它停止传送。
本试验主要测试PIM密集模式的运行状态,启动路由器的组播功能:Ip multicast-routing在PIM密集模式在接口下的配置:Ip pim dense-modePIM需要单播路由的支持,在每个接口上打开组播的理由是因为IP组播路由选择是颠倒的路由,它转发(或者不转发)组播包取决与该组播包从那里来(源IP地址)而不是到那里去(组播组地址)。
因此,整个组播传输路径上的控制机制与单播路由机制是很大的差别。
配置PIM-DM相对容易,但另一件事是要完全理解路由器在收到组播信息、剪枝、嫁接等信息时所用的一系列的响应。
在Cisco路由器中,组播转发状态表现形式为组播路由表或者“mroute”表中的(*,G)和(S,G)项,通过执行“show ip mroute”命令可以显示这些信息。
1.1 PIM-DM(*,G)状态规则虽然PIM-DM规范中没有要求,但无论何时只要创建(S,G)状态,Cisco 的执行成学就自动创建父(*,G)状态。
主要理由是在Cisco的执行程序中所有(S,G)数据结构是与其父(*,G)数据结构链接在一起的。
这样做不仅由于各种PIM内部的最佳化效果获得补偿。
由次产生PIM通过规则。
密集模式(*,G)项不用于组播转发,他们的主要功能是维护那些与组有关的信息使之成为一个整体。
例如,(*,G)项表示组运行的模式(在次为密集模式),而密集模式也映射了连接其他邻居或直接连在组现有成员上的接口。
由此产生了第1条密集模式规则:密集模式(*,G)项的输出接口列表映射了现有的PIM-DM邻居接口或直接连接的组成员接口。
1.2 PIM-DM(S,G)状态规则在PIM-DM中,组播信息流到达后创建(S,G)项,如果父(*,G)项不存在,首先创建它,而其所提供的输出接口列表和上面的讲述的模式一样。
IGMP原理简介IGMP 协议是IP 组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。
IGMP 工作机制如下所述:1. 接收者主机向所在的共享网络报告组成员关系。
2. 处于同一网段的所有使能了IGMP 功能的组播路由器选举出一台作为查询器,查询器周期性地向该共享网段发送组成员查询消息。
3. 接收者主机接收到该查询消息后进行响应以报告组成员关系。
4. 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。
如果超时无响应,组播路由器就认为网段中没有该组播组的成员,从而取消相应的组播数据转发。
5. 所有参与组播传输的接收者主机必须应用IGMP 协议。
主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。
6. 支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。
而各主机只需要保存自己加入了哪些组播组。
IGMPv1工作机制IGMPv1 协议主要基于查询和响应机制完成组播组管理。
在多路由器共享网段上,由三层路由协议选举出唯一的组播信息转发者(Assert Winner 或DR),并作为IGMPv1 的查询器,负责该网段的组成员关系查询。
网络上IGMPv1 消息交互如图9-1 所示。
主机加入组播组的基本过程如下:1. IGMP 查询器(RouterB)周期性地向共享网段内所有主机以组播方式(目的地址为组播地址)发送普遍组Query 查询消息。
该报文的目的地址为224.0.0.1,表示该网段上的所有主机和路由器。
2. 网段内所有主机都接收到该普遍组查询消息。
如果主机(如HostB 和HostC)希望加入某组播组G1,则以组播方式发送Report 报告。
该报文的目的地址为224.0.0.1,报文中携带组播组G1 的地址信息。
3. 网段中所有主机和路由器都接收到该Report 报告,并获知组播组G1 地址信息,此时网段中其它也希望加入该组播组G1 的主机将不再发送针对相同组播组的Report 报告。
1.1 PIM-DM协议简介协议独立组播-密集模式PIM-DM(Protocol Independent Multicast,Dense Mode)属于密集模式的组播路由协议。
PIM-DM适用于小型网络,在这种网络环境下,组播组的成员相对比较密集。
PIM-DM的工作过程可以概括为:邻居发现、扩散—剪枝过程、嫁接阶段。
1. 邻居发现PIM-DM路由器刚开始启动时,需要使用Hello报文来进行邻居发现。
各个运行PIM-DM的网络节点之间使用Hello报文保持相互之间的联系。
PIM-DM的Hello报文是周期性发送的。
2. 扩散—剪枝过程(Flooding&Prune)PIM-DM假设网络上的所有主机都准备接收组播数据。
当某组播源S开始向组播组G发送数据时,路由器接收到组播报文后,首先根据单播路由表进行RPF检查,如果检查通过,路由器创建一个(S,G)表项,然后将数据向网络上所有下游PIM-DM节点转发(Flooding)。
如果没有通过RPF检查,即组播报文从错误的接口输入,则将报文丢弃。
经过这个过程,在PIM-DM组播域内,都会创建一个(S,G)表项。
如果下游节点没有组播组成员,则向上游节点发剪枝(Prune)消息,通知上游节点不用再向下游节点转发数据。
上游节点收到剪枝消息后,就将相应的接口从其组播转发表项(S,G)对应的输出接口列表中删除,这样就建立了一个以源S为根的SPT(Shortest Path Tree)树。
剪枝过程最先由叶子路由器发起。
这个过程就称为扩散—剪枝过程。
各个被剪枝的节点同时提供了超时机制,当剪枝超时时,每台路由器又重新开始扩散—剪枝过程。
PIM-DM的扩散—剪枝机制周期性地不断进行。
在这个过程中,PIM-DM采用RPF检查,利用现存的单播路由表构建了一棵从数据源始发的组播转发树。
当一个组播包到达的时候,路由器首先判断到达路径的正确性。
如果到达接口是单播路由指示的通往组播源的接口,那么认为这个组播包是从正确路径而来;否则,这个组播包将作为冗余报文而被丢弃,不进行组播转发。
局域网内组播的实现局域网内组播(Multicast)是在一段时间内将数据从一个源主机发送到一组目标主机的一种通信方式。
相比广播(Broadcast),组播能够通过复用IP地址实现跨子网的数据传输,提高了网络效率和带宽利用率。
本文将介绍局域网内组播的实现方法和技术。
一、组播的基本概念在开始介绍局域网内组播的实现前,我们先来了解一些基本概念:1. 组播组(Multicast Group):一组具有相同组播IP地址的主机,用于接收组播数据。
组播组可以是静态的(预定义)或动态的(根据需要创建和删除)。
2. 组播IP地址(Multicast IP Address):用于标识组播数据包的目的地址。
组播IP地址范围为224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留地址,用于协议和管理。
3. 组播路由(Multicast Routing):指数据在组播源和组播组之间的传输路径。
组播路由协议在网络中维护和传递组播数据。
二、组播实现技术局域网内组播的实现可以采用多种技术和协议。
下面介绍两种常见的组播实现技术。
1. Internet Group Management Protocol(IGMP)IGMP是一种基于主机的组播协议,用于主机和本地区域网络(LAN)交换组播组信息。
IGMP通信包括三个实体:主机、本地路由器(LAN Router)和组播路由器。
主机需要发送IGMP报文来加入或离开组播组,本地路由器则通过IGMP报文了解组播组成员信息,组播路由器用于传输组播数据。
IGMP协议的实现方式如下:(1)主机发送IGMP报文给本地路由器,告知其加入或离开组播组。
(2)本地路由器接收到IGMP报文后,维护组播组成员信息表,并根据需要向其他网络传递组播信息。
(3)组播路由器根据组播组成员信息进行数据的传输,以保证数据传输到目标主机。
2. Protocol Independent Multicast(PIM)PIM是一种基于路由器的组播协议,用于在不同网络中构建组播路由。
协议无关组播PIM-SM的优化荆婷婷,刘建辉辽宁工程技术大学电子与信息工程学院,辽宁葫芦岛 (125105)摘要:目前使用最广最有前途的PIM-SM组播路由协议是通过建立一个基于中心核RP的共享树来转发数据报。
当前PIM-SM协议虽然支持动态RP的选举,但是在何时更新RP,协议并没有明确提出。
本文提出如何确定更新RP的时机,并作出仿真验证,改进后能更好地适应组播源和组成员的动态变化。
特别是在有多个发送端和众多随机接收端的情况下,这种改进解决了组播源与组成员频繁加入、退出与RP固定不变的矛盾。
关键词:组播协议,PIM-SM,汇合点,Dijkstra中图分类号:TP3911.组播协议组播协议[1]分为主机与路由器之间的组成员关系协议和路由器与路由器之间的组播路由协议。
组成员关系协议包括IGMP(互连网组管理协议)。
组播路由协议分为域内组播路由协议和域间组播路由协议,域内组播路由协议包括PIM-SM,PIM-DM,DVMRP等,域间组播路由协议包括MBGP, MSDP等。
同时,为了有效抑制组播数据在链路层的扩散,还引入了IGMP Snooping, HGMP等二层组播协议。
当前的组播路由协议分为一下三个基本类:z密集模式协议(DVMRP和PIM-DM)z稀疏模式协议(PIM-SM[3]和CBT)z链路状态协议(MOSPF)这里重点介绍PIM,PIM(协议无关组播)这个名字反映了这个协议的本质—独立于IP 单播路由,也就是说不管使用的是哪种单播路由协议,PIM都可以使用这些信息来进行组播转发,因此称之为协议无关。
它使用现存的单播路由表来实现RPF逆向路径转发功能,而不是维护一个单独的组播路由表,因此不用象DVMRP那样频繁的发送或接收组播路由更新,使PIM的开销降低了很多。
PIM分为密集模式(DM)和稀疏模式(SM)两种。
2. PIM-SM 协议改进意见目前使用最广、最有前途的PIM-SM 协议有一些需要改进的地方。
PIM组播协议密集模式(DM模式)【实验名称】PIM组播协议密集模式(DM模式)【实验目的】熟悉如何配置PIM密集模式【背景描述】你是一个某单位的网络管理员,单位有存放资料的组播服务器,,服务器为用户提供组播服务,请你满足现在的网络需求。
采用PIM的密集模式来实现。
【实现功能】实现PIM密集模式下组播流量的传输,如果没有组成员,自动修剪组播发送信息。
【实验拓扑】S1 vlan1:192.168.1.253 vlan10:192.168.10.1 vlan12:192.168.12.1 vlan20:192.168.20.1 vlan100:192.168.100.1 S2 vlan1:192.168.2.253 vlan50:192.168.50.1 vlan12:192.168.12.2 vlan60:192.168.60.1S2126 vlan1:192.168.1.254 S2150vlan1:192.168.2.254【实验设备】S3550-24(2台)、S2126G(1台)、S2150G(1台)、PC(4台)【实验步骤】第一步:基本配置switch(config)#hostname S1S1(config)#vlan 10 ! 创建一个vlan10S1(config-vlan)#exiS1(config)#vlan 12S1(config-vlan)#exiS1(config)#vlan 20S1(config-vlan)#exiS1(config)#vlan 100S1(config-vlan)#exiS1(config)#interface f0/24S1(config-if)#switchport mode trunk !把f0/24接口作为trunk接口S1(config-if)#switchport trunk allowed vlan remove 100 ! trunk链路不传输vlan 100的信息S1(config)#interface vlan 1S1(config-if)#ip address 192.168.1.253 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 10S1(config-if)#ip address 192.168.10.1 255.255.255.0 !创建一个SVI地址S1(config-if)#no shutdownS1(config)#interface vlan 12S1(config-if)#ip address 192.168.12.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 20S1(config-if)#ip address 192.168.20.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface vlan 100S1(config-if)#ip address 192.168.100.1 255.255.255.0S1(config-if)#no shutdownS1(config)#interface fastethernet f0/1 !把接口加入到vlan 10S1(config-if)#switchport access vlan 10S1(config)#interface fastethernet f0/2S1(config-if)#switchport access vlan 20S1(config)#interface fastethernet f0/12S1(config-if)#switchport access vlan 12switch(config)#hostname S2S2(config)#vlan 12S2(config-vlan)#exiS2(config)#vlan 50S2(config-vlan)#exiS2(config)#vlan 60S2(config-vlan)#exiS2(config)#vlan 100S2(config-vlan)#exiS2(config)#interface f0/24S2(config-if)#switchport mode trunkS2(config)#interface vlan 1S2(config-if)#ip address 192.168.2.253 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 12S2(config-if)#ip address 192.168.12.2 255.255.255.0 S2(config)#interface vlan 50S2(config-if)#ip address 192.168.50.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface vlan 60S2(config-if)#ip address 192.168.60.1 255.255.255.0 S2(config-if)#no shutdownS2(config)#interface fastethernet f0/1S2(config-if)#switchport access vlan 50S2(config)#interface fastethernet f0/2S2(config-if)#switchport access vlan 60S2(config)#interface fastethernet f0/12S2(config-if)#switchport access vlan 12switch(config)#hostname S2126S2126(config)#vlan 10S2126(config-vlan)#exiS2126(config)#vlan 20S2126(config-vlan)#exiS2126(config)#interface f0/1S2126(config-if)#switchport access vlan 10S2126(config)#interface f0/2S2126(config-if)#switchport access vlan 20S2126(config)#interface vlan 1S2126(config-if)#ip address 192.168.1.254S2126(config)#interface fastethernet 0/24S2126(config-if)#switchport mode trunkswitch(config)#hostname S2150S2150(config)#vlan 50S2150(config-vlan)#exiS2150(config)#vlan 60S2150(config)#interface f0/1S2150(config-if)#switchport access vlan 50S2150(config)#interface f0/2S2150(config-if)#switchport access vlan 60S2150(config)#interface vlan 1S2150(config-if)#ip address 192.168.2.254S2150(config)#interface fastethernet 0/24S2150(config-if)#switchport mode trunk第二步:配置路由协议S1(config)#router ospf ! 开启ospf进程S1(config-router)#network 192.168.1.0 0.0.0.255 area 0 !将网段加入到区域0 S1(config-router)#network 192.168.10.0 0.0.0.255 area 0S1(config-router)#network 192.168.12.0 0.0.0.255 area 0S1(config-router)#network 192.168.20.0 0.0.0.255 area 0S1(config-router)#network 192.168.100.0 0.0.0.255 area 0S2(config)#router ospfS2(config-router)#network 192.168.2.0 0.0.0.255 area 0S2(config-router)#network 192.168.12.0 0.0.0.255 area 0S2(config-router)#network 192.168.50.0 0.0.0.255 area 0S2(config-router)#network 192.168.60.0 0.0.0.255 area 0第三步:配置组播S1(config)# ip multicast-routing !开启组播功能S1(config)#interface vlan 1S1(config-if)#ip pim !默认为DM模式S1(config)#interface vlan 10S1(config-if)#ip pimS1(config)#interface vlan 12S1(config-if)#ip pimS1(config)#interface vlan 20S1(config-if)#ip pimS1(config)#interface vlan 100S1(config-if)#ip pimS2(config)# ip multicast-routingS2(config)#interface vlan 1S2(config-if)#ip pimS2(config)#interface vlan 12S2(config-if)#ip pimS2(config)#interface vlan 50S2(config)#interface vlan 60S2(config-if)#ip pimS2126(config)#ip igmp profile 1 !进入igmp配置文件模式S2126(config-profile)#deny !允许所有的组播组通过。