一、ODMRP(On-Demand Multicast Routing Protocol)
二、LBM(Location-Based Multicast)
这个是基于物理地址的组播,组播的目的节点会在一个物理上的组播地域(Multicast Region)里,源给那个地域发包,节点检查自己是不是在这个地域里,如果在那就接收,不在就丢弃。这样看其实源很难把包送给目的,因为组播地域外的包收到包就会丢弃,所以要离得很近一条给地域传过去才行。这就有了另一个概念,前传地域(Forwarding Region),这个地域里的节点,在收到包后,会帮助传给组播地域里的节点,所以,组播地域一定是前传地域的子集。
三、ABAM(Associativity-Based Ad-hoc Multicast)
这个就是上一章ABR的组播版。
1、链路建立
(1)同样是on-demand的,所以还是有需要了才发包,一样还是把自己到邻居的associativity ticks加进去,邻居收到之后把无关的删掉,把自己的邻居再加上,在广播,直到有目的收到,但我觉得这个目的收到后也不应该停止转发,因为是组播,目的可能连着另一个目的。
(2)每个目的收到之后算一个associativity ticks出来,把路的信息返回给源,注意这里和ABR不一样,ABR的reply就决定了路径,但ABAM是由源来运行一个算法来决定最后的组播树。
(3)源拿到所有的信息后,算出来一个组播树,把这个最终的消息发给链路上的节点。
看这样一个例子,首先类型代表链路最终确立信息,源id,组播id,然后就是中间节点id,直到分叉,BRN代表后一个中间节点是分岔节点,到了分叉节点,为了避免冗余的信息重复传播,首先会把分叉前的节点信息去掉,然后再根据后面的END标识,认出来一个分叉的结束,把分叉后的信息切割成各个分叉的内容,在给对应分叉传播。CRC就是校验信息。
2、链路重建
(1)接收节点离开:和ABR很类似,离开的前一个节点会产生LQ,但不一样的在于,停止条件为直到分叉节点,或者离开的节点自己重新加入了组播。
(2)源节点离开:那就认为是链路断开了
(3)中间节点离开:
(4)多个节点离开:
3、链路删除
(1)没有接收节点了:各接收节点删除自己的岔路
(2)源不再发包:源发出一个链路删除信息,路上的节点收到后释放资源
4、组播组成员管理
(1)有成员要加入:
(2)有成员要离开: