1、2022-12-712022-12-72n多播概念 nInternet组管理协议(IGMP)n多播路由选择 2022-12-73n以太网多播以太网多播 在物理网络上实现多播 nIP多播多播 在逻辑网络上实现多播n使用以太网多播实现使用以太网多播实现IP多播多播 基于物理网络实现逻辑网络上的IP多播2022-12-742022-12-75n组播协议分为主机-路由器之间的组成员关系协议、路由器-路由器之间的组播路由协议;n组成员关系协议包括:IGMP协议,组播路由协议分为域内组播路由协议和域间组播路由协议;n域内组播路由协议分为密集模式和稀疏模式,域间组播路由协议主要有:PIM-DM、PIM-VM
2、和DVMRP。2022-12-76n组播能够解决的传输中,广播和单播方式无法很好解决的情况;:造成非组员巨大的处理开销;:发送计算机的处理开销、网络带宽开销。2022-12-771、以太网的三种传播方式、以太网的三种传播方式 单播、组播、广播A B C DA向向C发送数据发送数据2022-12-78A B C DA向网段内所有主机发送数据向网段内所有主机发送数据2022-12-79A B C DA仅向主机仅向主机C、D发送数据发送数据Gorup1成员成员2022-12-710n硬件支持组播n并不是所有网络都支持组播G/LI/L厂商自定编号厂商自定编号(24位位)厂商代码厂商代码(24位位)20
3、22-12-711n以太网多播是在物理网络上实现的多播;n硬件多播可以看作是广播的更一般形式,可以实现同时与一组站点的通信;n在网卡的高位字节中的最低位设置单播地址(置G/L=0)、多播地址(置I/L=1);n硬件多播有一个限制条件,就是这一组站点只能在同一个物理网络(网段)上;n路由器隔离了硬件多播和广播。2022-12-7122022-12-713nIP多播允许一个源站与一组目的站的通信,但是最主要的区别在于该组目的站可以位于互联网上的上,这一组目的站称为多播群组(multicast group),或简称群组。IP多播地址有效的通知和交付机制多播路由选择协议2022-12-714n组播组播
4、IP地址地址组播IP地址范围:224.0.0.0 239.255.255.255保留组播地址:224.0.0.0 224.0.0.255本地管理组播地址:239.0.0.0 239.255.255.255用户管理组播地址:224.0.1.0 238.255.255.255 n组播组播MAC地址地址以太网:01-00-5e-xx-xx-xx2022-12-715224.0.0.1all host224.0.0.2all router224.0.0.4all DVMRP router224.0.0.5all OSPF router224.0.0.6all OSPF DR224.0.0.9all R
5、IPv2 router224.0.0.10all EIGRP router224.0.1.1NTP224.0.0.13all PIM router2022-12-716n 多播路由器支持n 群组地址n 动态群组成员n 成员和传输n 交付机制n 底层硬件支持2022-12-717n 多媒体会议n 数据分发n 实时数据多播n 游戏和仿真n 远程教育、远程诊疗n 数字TV、宽带接入n PDAs和家用电器2022-12-718n48位以太网MAC地址和32位D类IP地址,通过映射可以建立一一对应关系n大多数硬件多播n大多数物理多播编址,一般通过“遂道技术”,将多播分组封装成单播分组发送到网络,然后在另
6、一端再把这个分组转变成多播分组。2022-12-719群组标识中的后群组标识中的后23比特比特0111群组群组(23比特比特)多播地址多播地址(25比特比特)0000 0001 0000 0000 010111100 2022-12-7202022-12-7212022-12-722 组播是基于组播是基于UDP的的,会产生丢包现象,它不是一个可靠的数据传递。可靠的组播目前正在研究,这个领域会产生许多成果。没有没有TCP Windowing,且“慢启动”机制会导致拥塞。组播应研究引入“检测机制”并避免拥塞情况。一些协议机制可能导致数据包的无序发送。2022-12-723IGMP协议即网际组管理协
7、议(Internet Group Management Protocol)是与多播通信相关的一个必要的但不是充分的协议。IGMP负责管理多播组成员关系,它把连接在网络上的主机的成员关系状态信息传送给多播路由器。2022-12-724HostHostServerRouterSwitchern组播服务器与需要接收信息的主机处在一个子网2022-12-725n组播服务器与需要接收信息的主机不在一个子网HostHostServerRouterSwitcher路由器收到服务器发送的组播报文,将其隔离在服务器所在子网中。需要接收组播数据的主机无法接收到组播数据。2022-12-726IGMP:Intern
8、et组管理协议,用于主机和路由器之 间交互信息的一种协议;所有要加入组播组的主机和所有连接到有组播主机 的子网中的路由器都必须使用IGMP;IGMP的消息不能被路由器转发,只能限制在本地 网段内部。IGMP的TTL参数永远是1,保证了 IGMP的使用范围;IGMP版本目前有:V1/V2/V3三种。2022-12-727nIGMP在网络层中的位置如下:nIGMP协议对于多播通信是必需的,帮助多播路由器创建和更新多播组的成员关系状态表。2022-12-728 网络上的每一个中都有一个,其中每一个多播地址对应一个群组,而且一个群组至少包含本地网络上的一个成员。主机或路由器都可以是一个群组中的成员。多
9、播路由器负责把多播分组分发给一个群组中的各个成员。如果有多个多播路由器连接在同一个物理网络上,它们的多播地址表一定是互不相同的。2022-12-729IGMP已经有了两个版本。我们讨论当前的版本IGMPv2。IGMP报文有三种报文类型:查询报文(通用或特殊)、成员关系报告和退出报告。2022-12-730 主机使用的IGMP报文n Membership Report(加入组群报告)n Leave Group(离开组群)路由器使用的IGMP报文n General Query(一般群组成员关系查询)n Group-Specific Query(特定群组成员关系查询)2022-12-731n Mem
10、bership Report Membership Report用于指示一台主机希望加入一个组播组n当主机首次加入到一个组时,它会主动向组发送Membership Report Membership Report还用来响应本地路由器发出的General Query和Group-Specific Query消息组播数据组播数据Membership ReportHHSRMembership ReportGeneral QueryHHSR2022-12-732n Leave Group 当主机退出一个组时,它用Leave Group消息通知本地的路由器;这个消息包含有退出的组的地址,Leave Gr
11、oup消息是发向“子网中的所有路由器地址是224.0.0.2”的,而Membership Report消息是发向想要加入的组播组地址。停止向该子网停止向该子网转发组播数据转发组播数据HHSRLeave Group不需要再接收不需要再接收组播数据组播数据2022-12-733General Queryn General Query路由器通过General Query消息向与其连接的所有子网进行轮询来发现是否有组员存在,并在子网中没有组员时检测到这一情况。General Query消息被发向“子网中的所有主机”224.0.0.1这个地址,而且不涉及任何一个具体组播组。主机主机主机主机General
12、 Guery没有响应没有响应没有响应没有响应一定时间内仍无人一定时间内仍无人响应,则不再像该响应,则不再像该子网转发组播数据子网转发组播数据如果一台组播路由器在如果一台组播路由器在3次次查查询的时间间隔里没有收到一询的时间间隔里没有收到一个特定子网的个特定子网的Membership Report消息,那么这个路由消息,那么这个路由器将宣布这个子网中没有组器将宣布这个子网中没有组员,不再向这个子网发送组员,不再向这个子网发送组播数据。播数据。2022-12-734路由器的Group-Specific Query消息是根据主机发出的Leave Group消息而发出的,当路由器收到Leave Gro
13、up消息时,必须判断子网中是否仍有组员存在。目的地址为该发出Leave Group的主机所在组的组地址。不需要接收组不需要接收组播数据播数据Leave GroupGroup-Specific Query还需要接收还需要接收Membership report仍然向该子网仍然向该子网发送组播数据发送组播数据2022-12-735Membership Report想加入想加入224.5.5.5也想加入也想加入224.5.5.5收到了关于收到了关于224.5.5.5的的Report,知道子网中还有主知道子网中还有主机希望加入机希望加入224.5.5.5于是抑制了关于于是抑制了关于224.5.5.5的的
14、Membership Report的的发送发送Host AHost BRouterSwitcher2022-12-736General GueryMembership Report还需要接收还需要接收224.5.5.5组播数据组播数据还需要接收还需要接收224.5.5.5组播数据组播数据收到了关于收到了关于224.5.5.5的的report抑制了抑制了224.5.5.5的的Membership Report的发送的发送HHSR2022-12-737当子网中有多个路由器时,选举查询者的规则就十分简单:有较小的IP地址的路由器成为查询者。所有子网中现有的路由器在收到新路由器的General Que
15、ry消息后,就检查源地址。如果它的IP地址的值更小,则会继续发送查询。当新的路由器收到其中一个查询,并发现这台路由器有较小的IP地址时,它就变成非查询者。非查询者将旁听整个IGMP过程。所有非查询路由器启动一个查询计时器,无论何时只要收到来自IGMP的General Query消息,计时器被复位。默认的计时器持续时间是查询间隔的两倍。如果查询计时器满,就认为IGMP查询有问题,选择查询者过程重新开始。2022-12-738 在IGMPv3中主要增加了Group-and-Source-Specific Query,它能允许一个组不仅用组地址进行识别,而且也能被源地址识别。当一个组有多个源时,IG
16、MPv3路由器可以根据组员的请求对源进行过滤。2022-12-739n第一个字段是类型字段,长度是1个字节,用于定义IGMP报文的类型。n第二个字段是最大响应时间字段,长度是1个字节,用于定义查询报文必须在多长时间内得到应答,以十分之一秒为计算单位。n第四个字段是组地址字段,长度是4字节,定义了一个D类多播地址。2022-12-740nIGMP报文也被封装成IP数据报的形式传送。IGMP报文本身被封装在IP数据报的数据区,而这个IP数据报又被封装在帧数据中。在报头中的协议(Protocol)字段设置成2,表示这是一个IGMP报文。2022-12-741IGMP工作在本地范围。连接到本地网络上的
17、多播路由器有一个组多播地址表,里面至少有一个忠实成员(多播组)。多播组是基于进程而创建的。在一个给定接口上的多播组中的成员关系是动态的,它随时因为进程加入和离开该多播组而变化。2022-12-742n主机或路由器都可以加入一个多播组。n每一个主机创建一个成员关系表,表中包含所有至少含有一个进程的多播组以及多播组中的进程数。当第一个进程加入一个多播组时,主机就发送一个成员关系报告报文。2022-12-743进程P加入群组MG站点群组MG的成员关系表站点发送群组成员关系MG在成员中?站点的群组成员关系表2022-12-744n当主机发现在一个特定的多播组中没有感兴趣的进程时,它就发送退出报告。同样
18、地,当路由器发现在一个特定的多播组中没有连接在它的接口上感兴趣的网络,它就发送退出这个组的报告。2022-12-745n当多播路由器收到退出报告时,并不立即从组多播地址表中删除该组。为了确定是否还有其他主机或路由器仍然对这个组感兴趣,多播路由器会发送一个特殊的查询报文。2022-12-746否是在指定时间内收到应答?多播路由器发送MG的查询报告收到站点退出群组MG的报告删除群组MG不删除群组MG2022-12-747n网络上的所有主机或路由器都可以收到这个查询报文。如果有主机或路由器对这个组感兴趣,那么它们将响应一个成员关系报告。2022-12-748n如果在规定的响应时间内没有主机或路由器给
19、出感兴趣的应答,那么多播路由器就认为在这个网络上没有成员对这个组感兴趣,因此就从组多播地址表中删除这个组。2022-12-749nIGMP为每一个局域网指定一个路由器作为查询路由器。查询路由器周期性地发送通用查询报文。在查询报文中,表示查询成员关系是面向主机所属的所有多播组。2022-12-750n如果有主机或路由器对这个组感兴趣,那么它们将响应一个成员关系报告。n为了避免不必要的通信量,IGMP使用延迟响应的策略。延迟响应主要用于有多个主机或路由器对同一个多播组感兴趣的情况。2022-12-751发送发送224.5.5.5的的Membership Report开始向该子网发开始向该子网发送送
20、224.5.5.5的组的组播数据播数据224.5.5.5的组的组播数据播数据224.5.5.5的组的组播数据播数据需要一个机制需要一个机制,让二层交换机只把组播数据转发给需要接收组播的主机让二层交换机只把组播数据转发给需要接收组播的主机。浪费了带宽浪费了带宽2022-12-752 IGMP Snooping能使二层交换机将组播数据只朝需要接收的用户所在的端口转发,从而不会影响到其它的用户。发送发送224.5.5.5的的Membership Report开始向该子网发开始向该子网发送送224.5.5.5的组的组播数据播数据并不需要接收并不需要接收224.5.5.5的组播的组播数据数据需要接收需要
21、接收224.5.5.5的组的组播数据播数据2022-12-753发送发送224.5.5.5的的Membership Report开始向该子网发开始向该子网发送送224.5.5.5的组的组播数据播数据需要接收需要接收224.5.5.5的组的组播数据播数据根据收到的根据收到的224.5.5.5的的Membership Report,生生成组播成组播MAC地址表地址表.MAC端口端口01-00-5e-05-05-0512022-12-754MAC端口发送发送224.5.5.5的的Leave Group向该子网发送向该子网发送224.5.5.5的组播的组播数据数据不需要接收不需要接收224.5.5.5
22、的组的组播数据播数据01-00-5e-05-05-051 停止向该子网发停止向该子网发送送224.5.5.5的组的组播数据播数据2022-12-755如果主机收到了其他主机发出的Membership Report后,就抑制了自己的Membership Report的发送,这样的话就会造成交换机的组播MAC地址表里不会出现关于该主机所在的端口的转发信息。在开启IGMP Snooping之后,交换机的CPU在收到Membership Report时,不会将Report报文转发到其他接口,这样其他主机就无法收到其他主机发出的Membership Report报文,不会产生消息报告抑制现象,从而保证交
23、换机组播MAC地址表的完整。Membership Report抑制了抑制了Membership Report的发送的发送无法将相应端口添加无法将相应端口添加到组播到组播MAC表中表中2022-12-756如果存在组播路由器,但是由于IGMP Snooping抑制了消息报告,那么Membership Report报文将无法发送到组播路由器,因此组播路由器将无法将组播数据发送到相应的子网。解决办法:采用路由连接口,设置与路由器相连的端口为路由连接口。需要接收需要接收224.5.5.5的组的组播数据播数据发送发送224.5.5.5的的Membership Report2022-12-757IVGL:
24、在该模式下,各VLAN间的组播流是相互独立的。主机只能朝与自己处于同一个VLAN的路由连接口请求组播。SVGL:在该模式下,主机可以跨VLAN申请组播流。指定一个Multicast VLAN,在该VLAN收到的组播数据流可以向其他VLAN的主机转发。Vlan 10Vlan 20Vlan 10的路由连的路由连接口接口2022-12-758需要接收需要接收224.5.5.5的组的组播数据播数据发送着发送着224.5.5.5的组的组播数据播数据从哪里能够得从哪里能够得到到224.5.5.5的的组播数据组播数据如何能够将如何能够将224.5.5.5的组的组播数据发送到网络中有需播数据发送到网络中有需求
25、的地方求的地方发送发送224.5.5.5的的Membership Report需要一需要一种机制,可以种机制,可以让让组播数据在网络中传输组播数据在网络中传输有接收需求有接收需求的地方。的地方。2022-12-759n 分为域内组播路由协议及域间组播路由协议 域内组播路由协议又分为密集模式与稀疏模式。域内组播路由协议主要等协议。在校园网中经常使用的域内组播路由协议为PIM-DM和PIM-SM。PIM-DM:协议无关组播-密集模式 PIM-DM:协议无关组播-稀疏模式 DVMRP:距离矢量组播路由协议2022-12-760每个组播路由协议都有一个协议自身的路由表,如;各组播路由协议的组播路由信息
26、经过综合形成一个;直接用于控制组播数据包的转发。(S,G)表示由向发送组播数据的路由信息。如果路由器支持多种组播路由协议,则其组播路由表中将包括由多种协议生成的组播路由。路由器根据组播路由和转发策略,从组播路由表中选出最优的组播路由,并下发到组播转发表中。2022-12-761RPF检查机制检查机制n 组播路由协议依赖于现有的单播路由信息单播路由信息、MBGP路由或组播静态路由路由或组播静态路由来创建组播路由表项。n 组播路由协议在创建组播路由表项时,运用组播路由协议在创建组播路由表项时,运用了了RPF(Reverse Path Forwarding,逆向路,逆向路径转发)检查机制径转发)检查
27、机制,以确保组播数据能够沿正确的路径传输,同时还能避免由于各种原因而造成的环路。2022-12-762IP:192.168.1.1发送着发送着224.5.5.5的组的组播数据播数据两个接口都收到了目的地两个接口都收到了目的地址为址为224.5.5.5,源地址为源地址为192.168.1.1的组播报文的组播报文查找单播查找单播路由表,去路由表,去往往192.168.1.0/24的下一跳的下一跳接口接口是是S1,于是,于是丢弃从丢弃从S2收到的收到的组播报文。组播报文。R1R2R3S1S2重复的组播重复的组播数据流数据流SH2022-12-763 PIM(Protocol Independent
28、Multicasting)独立于单播协议,使用任意单播路由协议进行RPF检查。与其他的路由协议不同,。UDP端口号:103 PIM路由器组地址为:224.0.0.13 PIM协议分为:nPIM-DM(协议无关组播-密集模式)nPIM-SM(协议无关组播-稀疏模式)2022-12-764 当组播路由器的某个接口RPF检查失败时,该路由器会从这个接口发出一个剪接报文,以通知邻居路由器不要再向它发送组播数据。发送着发送着224.5.5.5的组的组播数据播数据R1R2R3S1S2RPF检查失败检查失败所连接的子网内所连接的子网内没有接收的需求没有接收的需求发送着发送着224.5.5.5的组的组播数据播
29、数据剪枝消息剪枝消息剪枝消息剪枝消息2022-12-765 嫁接报文正好与剪枝报文相反,它是用来通知上游路由器将组播报文转发给自己。发送着发送着224.5.5.5的组的组播数据播数据R1R2R3S1S2S1接口接口down掉掉所连接的子网内所连接的子网内无接收的需求无接收的需求发送着发送着224.5.5.5的组的组播数据播数据嫁接消息嫁接消息所连接的子网内所连接的子网内有接收的需求有接收的需求嫁接消息嫁接消息2022-12-766 PIM-DM用于指导路由器如何将组播数据在网络中传输到有组播接收需求的地方。PIM-DM使用模式将组播数据包到网络的每个角落。这种推模式是一种使用蛮力将数据包传送到
30、接收者的方法。如果网络中的每个子网都有接收者,那么这种方法是高效的。2022-12-767 扩散并剪枝组播源组播源所连接的子网内所连接的子网内无接收的需求无接收的需求所连接的子网内有接所连接的子网内有接收的需求收的需求所连接的子网内所连接的子网内有接收的需求有接收的需求R1R2R3R5R4R6剪枝剪枝置为修剪状态置为修剪状态pruneds1s2剪枝剪枝从两个接口都收到从两个接口都收到了了组播报文,在组播报文,在S2上做上做RPF检查失败。检查失败。2022-12-768 嫁接组播源组播源所连接的子网内所连接的子网内无接收的需求无接收的需求R1R2R3R5R4R6s1s2所连接的子网内所连接的子
31、网内有接收的需求有接收的需求嫁接嫁接2022-12-769 剪枝组播源组播源所连接的子网内所连接的子网内有接收的需求有接收的需求R1R2R3R5R4R6s1s2所连接的子网内所连接的子网内有接收的需求有接收的需求所连接的子网内所连接的子网内有接收的需求有接收的需求所连接的子网内所连接的子网内无接收的需求无接收的需求确认所连接子网内没有确认所连接子网内没有接收需求接收需求,但还有但还有R6需要需要从这里接收数据从这里接收数据,因此将因此将不发送剪枝信息给不发送剪枝信息给R2所连接的子网内所连接的子网内无接收的需求无接收的需求确认所连接子网内没有确认所连接子网内没有接收需求接收需求,因此发送剪枝因
32、此发送剪枝信息给信息给R3,同时将相应端同时将相应端口置为修剪状态口置为修剪状态收到收到R5的剪枝消息的剪枝消息,将响将响应接口修剪应接口修剪,并确认其他并确认其他接口都没有接收需求接口都没有接收需求,因因此发送剪枝消息给此发送剪枝消息给R1,并并将相应的接口修剪将相应的接口修剪剪枝剪枝剪枝剪枝收到收到R3的剪枝消息的剪枝消息,将相应的接口修剪将相应的接口修剪2022-12-770 PIM-DM采用的方式来构建组播路由表.PIM-DM形成的 通常称这种树型结构为SPT(Shortest Path Tree)最短路径树组播源组播源R1R2R3R5R4R6R1R2R3R4R6R5组播源组播源202
33、2-12-771 SPT是以组播源为根构造的、从根到所有接收者路径都最短的分布树。n优势:最短路径保证转发组播数据的网络时延最小 n劣势:路由器必须为每个组播源维护路径信息,开销过大 在组播设计时,如果选用PIM-DM(SPT),那么组播源的数量、带宽情况、有组播接收需求的子网分布情况都应该成为设计者考虑的各种因素。2022-12-772n 组播路由器的组播转发表项 单播:目的地址-下一跳n目的地址 下一跳n192.168.0.0/24 1.1.1.1n110.112.119.0/24 2.2.2.2n4.4.0.0/16 3.3.3.3 组播:组地址-下一跳?n在R4上会出现一个组地址有两个
34、下一跳?组播源组播源R1R2R3R5R4R62022-12-773组播转发表项可以简单地理解为S,G,入口,出口集合,S代表组播源地址,G代表组播组地址,入口代表离组播源最近的接口(RPF检查通过的接口),出口集合代表经过PIM协议计算后没有被修剪掉的所有接口集合。R1R2R3R4E0E0E0S1S2S2S1E0E1S1S2S,G,E0,S1,S2S,G,S1,E0S,G,S1,E0S,G,E0,E12022-12-774n PIM-SM PIM-SM用于指导路由器如何将组播数据在网络中传输到有组播接收需求的地方。PIM-SM使用一种拉拉(pull)模式模式来传送组播数据包。只有包含活动接收者
35、,并且接收者直接发送数据接收请求的网段才会收到数据。2022-12-775 PIM-SM与PIM-DM不同,采用的是一种共享树共享树的机制。PIM-SM引入了一个非常重要的概念,RP(Rendezvous Point),汇聚点汇聚点。RP的作用:所有的组播源在发送组播数据时,与组播源相连的第一跳路由器都会把组播数据发送给RP,然后再由RP把组播数据发送给有接收需求的路由器,依次类推。2022-12-776 组播源到RPR2R1R3R4R5RP组播源组播源检测到组播报文,检测到组播报文,查找组播组查找组播组G对应对应的的RP的的IP地址地址组播组组播组G将收到的组播报文封装将收到的组播报文封装在
36、单播报文中,目的地在单播报文中,目的地址为址为RP的的IP地址地址根据单播路由表,将注根据单播路由表,将注册报文发给册报文发给RP注册报文注册报文2022-12-777 RP在收到单播注册报文后会做哪些动作呢?n当RP上没有存在关于(*,G)的转发表项,它将向R6返回一个注册暂停报文,以通知R6不要再将组播报文封装在单播报文中发送,并且也不会建立到组播源的SPT。R2R1R3R4R5RP注册报文注册报文注册报文注册报文注册暂停注册暂停组播源组播源R6组播组组播组G注册暂停注册暂停2022-12-778 RP在收到单播注册报文后会做哪些动作呢?n当RP上存在(*,G)的转发表项,RP将解封装单播
37、报文,并将组播报文从(*,G)的转发表项的出口集合中发送出去。n向R6发送PIM保留信息,以终止R6继续发送单播注册报文。n同时RP还会向源的方向发送一条(S,G)的加入消息,形成与组播源之间的SPT,按照这个SPT从组播源接收组播数据。R2R1R3R4R5RP组播源组播源注册报文注册报文注册报文注册报文加入信息加入信息R6组播组组播组G保留信息保留信息保留信息保留信息加入信息加入信息2022-12-779 接收者到RPR2R1R3R4R5RP组播源组播源组播组组播组G接收者接收者创建创建(*,G)的转发表项,并将的转发表项,并将收到收到Membership Report的接的接口加到出口集合
38、中口加到出口集合中,向向RP方向方向发出加入报文发出加入报文创建创建(*,G)的转发表项,并将的转发表项,并将收到收到(*,G)加入报文的接口加加入报文的接口加到出口集合中到出口集合中,将组播组将组播组G的的数据从出口集合中发送出去数据从出口集合中发送出去组播组组播组G创建创建(*,G)的转发表项的转发表项,将收将收到到(*,G)加入报文的接口加加入报文的接口加到出口集合中到出口集合中,向向RP方向方向发送加入发送加入(*,G)报文报文2022-12-780 完整的PIM-SM过程R2R1R3R4R5RP组播组组播组G接收者接收者创建创建(*,G)的转发表项,并将的转发表项,并将收到收到Mem
39、bership Report的接的接口加到出口集合中口加到出口集合中,向向RP方向方向发出加入发出加入(*,G)报文报文创建创建(*,G)的转发表项,并将的转发表项,并将收到加入报文的接口加到出收到加入报文的接口加到出口集合中口集合中,将组播组将组播组G的数据的数据从出口集合中发送出去从出口集合中发送出去,如果如果没有组播组没有组播组G的数据的数据,需等待需等待组播源的注册组播源的注册.组播组组播组G组播源组播源R6组播组组播组G注册报文注册报文保留信息保留信息加入信息加入信息保留信息保留信息注册报文注册报文加入信息加入信息注册暂停注册暂停注册暂停注册暂停检测到组播报文,检测到组播报文,查找组
40、播组查找组播组G对应对应的的RP的的IP地址地址将收到的组播报文封装将收到的组播报文封装在单播报文中,目的地在单播报文中,目的地址为址为RP的的IP地址地址根据单播路由表,将注根据单播路由表,将注册报文发给册报文发给RP不存在关于不存在关于(*,G)的表项的表项存在存在(*,G)的表项的表项,向组播源向组播源方向发送注册保留信息方向发送注册保留信息,并并向组播源发送加入消息向组播源发送加入消息创建创建(*,G)的转发表的转发表项项,将收到将收到(*,G)加入加入报文的接口加到出报文的接口加到出口集合中口集合中,向向RP方向方向发送加入发送加入(*,G)报文报文2022-12-781 剪枝R2R
41、1R3R4R5RP接收者接收者组播源组播源R6组播组组播组G组播组组播组G组播组组播组G不想接收不想接收GLeave将收到将收到leave报文的接口从报文的接口从(*,G)的转发表项中的出口集合中删的转发表项中的出口集合中删除除,发现发现(*,G)的转发表项中的的转发表项中的出口集合为空出口集合为空,于是向于是向RP方向方向发送一个剪枝消息发送一个剪枝消息,将自己从共将自己从共享树上修剪享树上修剪剪枝消息剪枝消息剪枝消息剪枝消息将收到剪枝消息的接口从将收到剪枝消息的接口从(*,G)中删除中删除,发现发现(*,G)的转发表项的转发表项中的出口集合为空中的出口集合为空.向向G的组播的组播源发送剪枝
42、消息源发送剪枝消息.剪枝消息剪枝消息剪枝消息剪枝消息将收到剪枝的接口从将收到剪枝的接口从(*,G)的转的转发表项中的出口集合中删除发表项中的出口集合中删除,发发现现(*,G)的转发表项中的出口集的转发表项中的出口集合为空合为空,于是向于是向RP方向发送一方向发送一个剪枝消息个剪枝消息,将自己从共享树上将自己从共享树上修剪修剪2022-12-782 剪枝R2R1R3R4R5RP接收者接收者组播源组播源R6组播组组播组G组播组组播组G组播组组播组G不想接收不想接收GLeave将收到将收到leave报文的接口从报文的接口从(*,G)的转发表项中的出口集合中删的转发表项中的出口集合中删除,发现除,发现
43、(*,G)的转发表项中的的转发表项中的出口集合为空出口集合为空,于是向于是向RP方向方向发送一个剪枝消息发送一个剪枝消息,将自己从共将自己从共享树上修剪享树上修剪剪枝消息剪枝消息接收者接收者将收到剪枝消息的接口从将收到剪枝消息的接口从(*,G)的转发表项中的出口集合中删的转发表项中的出口集合中删除,发现除,发现(*,G)的转发表项中的的转发表项中的出口集合不为空,于是不向出口集合不为空,于是不向RP方向发送剪枝消息方向发送剪枝消息2022-12-783PIM-SM形成的组播转发表通常被成为共享树结构.共享树的根为RP,RP与组播源形成一个独立的SPT,网络中的所有组播组接收者都以RP为树根,接
44、收各自的组播数据,形成一棵共享树。RPG组播源组播源SRP到到G组播组播源源S的的SPTG接收者接收者1G组播接收者组播接收者1n都以都以RP为根为根G接收者接收者n不同的组播组可以不同的组播组可以对应不同的对应不同的RP2022-12-784 共享树的优势和劣势n优势:每个路由器上需要保存的状态数最少.n劣势:每个组播接收者到组播源的路径可能不是最优的 在组播设计时,如果选择PIM-SM作为组播路由协议的话,那么RP的性能以及位置将成为重要的考虑因素。2022-12-785设定一个阀值,当接收到的组播流量超过这个阀值时,路由器会向源发送一个(S,G)的加入消息,以便要加入这个源的SPT中。R
45、2R1R3R4R5RP接收者接收者组播源组播源R6组播组组播组G组播组组播组G组播组组播组G接收到的组播流量超过设定接收到的组播流量超过设定的阀值的阀值,向向G的源的源S发送发送(S,G)的加入消息以建立的加入消息以建立SPTR4检测到检测到SPT和共享树在此分和共享树在此分离离,于是于是 向向RP方向发送剪枝消方向发送剪枝消息息,将自己从共享树中修剪掉将自己从共享树中修剪掉,创建创建(S,G)转发表项转发表项,向组播源向组播源方向发送加入消息方向发送加入消息剪枝消息剪枝消息将收到剪枝消息的接将收到剪枝消息的接口从口从(*,G)的出口集合的出口集合中删除掉中删除掉2022-12-786 通过静
46、态指定n必须在所有的路由器上明确指定RP的地址n容易存在单点故障,一旦配置的RP失效,组播将不可用 BSR动态学习2022-12-787BSR是RP的管理者,由BSR来收集和发布整个网络内的RP信息。多个候选BSR(Candidate Bootstrap Router,C-BSR)通过自举报文(Bootstrap Message)选举产生唯一公认的BSR。BSR周期性的向网络发送BSR信息,以便所有候选RP知道BSR的存在所有侯选RP将自己的信息单播给BSRBSR定期发送包含所有候选RP信息的bootstrap报文给所有路由器所有的路由器根据相同的HASH算法在本地算出一个RP2022-12-
47、7882022-12-7892022-12-790nIGMP协议即网际组管理协议,是与多播通信相关的一个必要的但不是充分的协议。IGMP负责管理多播组成员关系,它把连接在网络上的主机的成员关系状态信息传送给多播路由器;nIGMP已经有了两个版本,当前的版本是IGMPv2;nIGMP报文有三种报文类型:查询报文(通用或特殊)、成员关系报告和退出报告;nIGMP报文也被封装成IP数据报的形式传送。在报头中的协议字段设置成2,表示这是一个IGMP报文;nIGMP在本地工作,主要有四种操作:加入一个多播组、退出一个多播组、删除一个多播组和查询成员关系。在查询成员关系时,为了避免不必要的通信量,IGMP使用延迟响应的策略。