一、ODMRP(On-Demand Multicast Routing Protocol)
这是一个on-demand的组播协议,所以也是在源有发包需要时才建链路。
1、链路建立
(1)当源有发包需求时,周期的泛洪joinReq,所以目的节点总会收到joinReq,中间节点收到joinReq后记录下源id,组播组id,上一跳id,和一个序列号。记录源id和组播组id是为了唯一的辨别这一次组播的包,上一跳id是为了等会reply回来的时候知道给谁发,序列号是为了防止处理重复的包。
(2)目的节点收到joinReq后,就会回reply,因为是泛洪,所以可能有多个req到达目的节点,目的节点都会回复,从而建立多条链路,搭一个网状拓扑。
(3)reply回去的过程中,中间节点建立路由表,记录源id,组播组id,目的id,下一跳id,
这里有一个问题,是否要记录目的id,因为不论记不记,同一次组播每个节点都有可能有多个下一跳,尽管目的id相同,也可能有多个下一跳,因为有多个冗余链路。那又产生了一个问题,对于冗余链路,信息会顺着冗余链路传播吗,还是只选一个,只有等这个选的链路断了才会使用冗余链路。
(4)注意这个joinReq,是周期的泛洪,因为他还有维护链路的作用。
2、链路重建
当链路断开时,由于有多条冗余链路,那只要重新选一条就好了,如果没得选了,那链路就没了,因为joinReq是实时发的,如果确实没有冗余链路,那说明真的没有。
3、链路删除
ODMRP采用软删除,时间到了就自动释放资源。
缺点

本文介绍了三种组播路由协议:ODMRP、LBM和ABAM。ODMRP通过周期性的泛洪joinReq来建立和维护组播路径,并采用软删除机制释放资源;LBM依赖于物理位置进行组播,通过前传地域帮助传播;ABAM基于关联性建立组播树,由源节点确定最终路径。
最低0.47元/天 解锁文章
4010

被折叠的 条评论
为什么被折叠?



