组播分发树
即有组播路由协议构造出的组播网络的转发路径;
SPT(Shortest Path Tree最短路径树)
树根为组播源所连接的指定路由器,每个组播接收者建立一条最短路径到组播源,保证转发延迟低,需要维护的路径数量太多
RPT(Rendezvous Point Tree共享树)
,树根为RP汇聚点,建立一条所有接收者的共享路径,只需维护少量的组播路径,无法保证每个组播源到接收者是最优路径
RPF机制
RPF(reverse path forwarding,逆向路径转发)
确保组播数据沿正确的路径转发
避免环路
检测过程
-----如果数据包是在到达组播源的最优路径到达,则RPF检测成功,数据包被转发
-----RPF检测失败,则丢弃数据
-----RPF检测基于单播路由表,单播路由走那条,组播走那条
组播路由协议
运行在三层设备上,用于建立维护组播路由,建立从组播源到各个接收端的分发树,对应ASM模型,组播路由协议可以分为域间和域内路由
密集模式:发送广播通告,再从接收者一层一层的往上报,不想接收的剪短连接
稀疏模式:由接收者一层一层上报建立组播路由
域内组播路由协议
DVMRP:只兼容rip的距离矢量组播路由协议
MOSPF:组播ospf协议
PIM:协议无关组播,真正使用
PIM-DM
PIM-SM
PIM-SSM
PIM-DM
密集模式组播路由协议,用类似广播的方式把组播流量周期性的发送到网络中的所有设备上
PIM适用于小型组播网络
邻居发现机制
PIM路由器之间周期性的发送hello报文,用于发现邻居,IGMPv1的路由器为该网igmp的查询器
组播扩散
将组播报文扩散到每一个运行PIM-DM的网段,沿途每一台路由器都创建(S,G),一个入接口,和若干出接口
剪枝/加入过程
剪枝:
1、如果不需要上游发送组播报文,则向上游接口发送Prune消息,上游路由器收到Prune报文的出接口删除S,G表的信息
2、为了防止共享网段(如中间加了交换机连接的路由器)组播成员之间的影响,如果共享网段还有其它接收者,则该路由器向上游发送join消息覆盖其它路由器发送的Prune消息
3、如果剪枝后本路由器SG表项没有出接口,则继续向上游路由器发送Prune报文剪枝
4、RPF失败的接口也需要剪枝
加入:
为了防止共享网段(如中间加了交换机连接的路由器)组播成员之间的影响,如果共享网段还有其它接收者,则该路由器向上游发送join消息覆盖其它路由器发送的Prune消息
嫁接
当下级路由器出现新的接收者时,而组播发送周期没有到来,此时出现新接收者的路由器向上游路由器发送Graft报文,上游路由器回复Graft ACK报文,用于建立组播连接
SPT的建立
PIM-SM
邻居加入于PIM-DM相同,共享网段选举DR,ip地址小的
加入过程
接受者DR向RP发起加入,沿途的每一台路由器都创建(*,G)表,形成以RP为根的RPT,RP地址会通过PIM通告全网
1、接受者一侧的DR中如果存在组播接受者,则根据单播路由表发起Join报文,RP为汇聚点,自行配置路由器作为RP
2、沿途路由器建立*,G表,其中代表任意组播源,G代表组播地址,一个,G表包含一个入接口和若干个出接口,入接口发送Join消息报文,出接口为收到Join报文
组播源注册
1、组播源把第一个组播数据包封装单播形式Register报文给RP
2、RP收到Register报文后,解封出原始组播报文,根据RPT转发组播
3、RP向组播源一侧DR发起Join报文
4、沿途路由器建立S,G表
通关组播源注册形成组播源到RP的SPT
组播源停止注册
RP以单播形式向组播源发送Register Stop报文
组播源收到这个报文后,停止以单播形式发送组播数据包,按照SPT转发组播
RPT切换成SPT
1、接受者一侧的DR路由器收到RP转发的组播源后,知道了组播源的地址后,向组播源发送Join报文
2、沿途的路由器建立S,G表
3、此时,路由器会同时存在S,G表和*G表
4、路由器对组播报文进行RPF检测,如SPT入接口优于RPT入接口,则向RPT入接口发起Prune报文
5、最终形成组播源到接受者的SPT
RP
静态指定
BSR机制
c-rp候选RP,