国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > PIM-DM协议内核触发机制及协议运行机制记录

PIM-DM协议内核触发机制及协议运行机制记录

来源:程序员人生   发布时间:2014-11-18 09:05:51 阅读次数:2291次

PIM-DM和PIM-SM是组播路由ASM(任意信源组播)中的两种不同模式。相对PIM-SM的组播注册机制,PIM-DM的分散机制显得更加粗犷。 


1、PIM-DM无需向内核注册pimreg虚接口。但是同PIM-SM1样需要将3层接口加入MRT组播接口中。以在内核收到组播报文后触发cache_miss消息。


2、协议初始化阶段,会创建PIM协议套接字和igmp套接字,igmp套接字通过配置一样可以接收来自内核的igmp组播控制报文(cache_miss、process_whole_packet(pim-dm无需解析))。


3、在接口上使能PIM-DM后,协议接口首先会进行DR选举保护邻居路由信息。


4、运行阶段,当PIM-DM路由接口收到组播信息后,内核会查找MFC表项,如果MFC表项中存在该组播转发表,则按转发表中的转发规则对组播报文进行转发,如果MFC表项中不存在该组播转发表,则内核触发cache_miss消息通过igmp 套接字送到PIM-DM协议。协议得到这个cache_miss消息后 创建(S,G)表项并保护好出口、入口,下发到内核MFC中。以后,组播报文就会依照下发的MFC转发规则进行转发。


5、组播转发表的保护。 PIM-DM创建(S,G)转发表时,入口就是收到组播报文的接口,出口是除接口外的所有PIM-DM接口。这样1来,1旦收到组播报文,PIM-DM路由器就会将组播报文从除接口外的所有PIM-DM接口转发出去。 这个进程就是sprase mode(稀疏模式)的工作方式。 


6、剪枝进程,当终端PIM-DM路由收到来自源真个组播报文后,也会创建对应的(S,G)转发表。并检查是不是有该组播的接收者。如果剪枝定时器到期依然没有接收者的话,终端DM路由器将会向该组播入口发送pruned 剪枝报文通告上联路由该路由接口无需接收该组播信息。 这样上联路由就会将pruned接口从(S,G)转发表的出口列表中剔除,暂时加入到pruned接口列表中去。 


7、接收者加入、离开。 当终端路由器接收到igmp report消息时,会将相应的接口加入到自己的(S,G)表项出接口中,并向组播入口发送alert报文,通告上联路由将自己加入到组播接收者中去。 当终端路由收到igmp leave消息时,则会将相应离开接口从(S,G)表项中剔除,重复6中的剪枝进程。



总而言之:PIM-DM的工作方式,以下面1个情形对话可以概括。

PC 1---------- Router A ------------Router B ------- src

                                                        |

                             PC 2------------Router C


src:   我开始发送组播报文了, 你们看着办吧。

Router B:   Router A, Router C, 不管你们要不要这个组播, 我先发给你们了。不要再和我说下(sparse, 分散机制)

Router A:   有人要这个组播吗(igmp query)? 草,半天没人回(剪枝定时器到期)。 算了, 我先把这个组播记录下来(创建(S,G)转发表),我会定时询问有无人要的。但是 Router B你暂时不用再发给我了(pruned 剪枝)。

Router B:好的,我先不给你转发这个组播信息了(将和Router A级联的路由口从(S,G)的出口中剔除并加入到剪枝接口列表中)。

Router C:  有人要这个组播吗?  (igmp query)

PC 2:      大哥,我要我要。 (igmp report)

Router C:  我先记录下(创建(S,G)转发表), 后面再收到这个组播报文,我就给你发1份哈(组播转发)。 不要的时候告知我1下。

PC 1: 我靠,我也要。 (igmp report)

Router A:  Router B我这边有人要这个组播,给我也发1份吧(alert)。

Router B:OK, 后面来的组播我会给你也发1份。(将和Router A级联的路由口重新加入到(S,G)的出口中)。

PC 1:好像没甚么用啊。。。 老大,我不要了,别给我发了。

Router A:尼玛, 你玩我? 受不了了。  Router B我这边没人要这个组播了,不用再给我发了(pruned 剪枝)。

Router B: OK。(将和Router A级联的路由口从(S,G)的出口中剔除并加入到剪枝接口列表中)







生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生