一、MAODV路由协议简介
MAODV路由协议是由美国加州大学Royer E M等人于1999年提出的,2000年成为IETF 草案。它是在单播路由协议AODV的基础上设计的按需多播路由协议。MAODV属于按需路由协议类,即源节点在需要与目的节点通信时才发起路由发现的信息交换过程。MAODV 采用的是双向共享树(Bi-Direction Shared Tree)的多播分发机制。
MAODV 用广播路由发现机制按需发现多播路由。该协议基于硬状态建立共享多播树,修复损坏的链路,显式地处理网络划分。某移动结点想加入多播组或有数据要发往多播组而没有到该组的路由时,就发RREQ消息。中间结点收到该RREQ消息而它没有到该组的路由,便向它的邻居广播该RREQ。随着RREQ在网络中传播,结点建立指针来在它们的路由表中建立逆向路由。收到对某多播组RREQ的结点,若它记录的对该组的序列号至少和RREQ 中包含的一样大,就可以回复。应答结点通过在路由表和多播路由表中置入请求结点的下一跳信息来更新路由,然后向源结点单播回RREP。当沿着到源结点的路径上的结点收到RREP,它们为该RREP 来自的结点在路由表和多播路由表中都增加一个条目,因而创建了一条转发路径。当某个源结点为某个多播组广播RREQ 时,它经常收到多于一个的应答。源结点保留有最大序列号和到最近的多播树成员有最短跳数的路由,保留一段特定的时间,丢弃其它路由。在这期间的末期,它激活它多播路由表中已选择的下一跳,向它单播一个激活消息(MACT)。该下一跳收到该消息后,激活它多播路由表中到源结点的条目。该过程直到达到发出该RREP 的结点(树成员)为止。该激活消息保证没有多条路径到任何树结点。结点只沿它们多播路由表中激活的路由转发数据包。
多播组的第一个成员为该组的领导者。一个结点若多次加入某多播组没有成功,它将成为组领导者。组领导者负责维护多播组序列号,并将其广播到多播组,这是通过组HELLO 消息完成的。该消息包含一个扩展,表明多播组IP地址和所有以该结点为组领导者多播组序列号(每个组HELLO增1)。结点用该组HELLO信息来更新它们的请求表。
由于MAODV 在其路由表中保持硬状态,协议要主动追踪和响应树中的变化。若有成员结束了同该组的成员关系,多播树就要进行剪枝。树中的链路受到监控,断开的链路要删除。当一条链路被删除时,离多播组领导者较远的结点(断开的下游)负责修复断开的链路。若该树不能重新连接,该断开的下游结点的新领导者将按如下过程选出:若启动路由重建的结点是多播组成员,它就成为新的多播组领导者,否则,若它只有一个到多播树的下一跳,它通过向它的下一跳发送剪枝消息来将它自己从树上剪枝出去。该过程继续一直到达到组成员。一旦分开的部分重新连接,结点最后会收到该多播组的组HELLO 消息,其中包含组领导者信息,而该信息与它已有的是不同的。若该结点是多播组的成员,若它是那个组领导者的IP地址较低的部分的成员,它就可启动该多播树的重新连接。
二、MAODV路由过程如下:
(1)节点加入多播组过程。当节点想加入多播组时,首先广播路由请求信息join RREQ给多播组。如果中间节点收到join RREQ,它就再把这个RREQ广播给邻居节点。多播树上的节点收到join RREQ后,如果自己所记录的多播组序列号大于等于join RREQ中的多播组序列号,则它可以响应此join RREQ。然而,多播组群首总是能对join RREQ响应。响应的节点通过更新路由表中请求节点的下一跳信息来更新它的路由和多播路由表,然后单播RREP给源节点。当RREP沿着逆向路径回传时,此路径上的每一个节点收到RREP后都在路由和多播路由表中添加对应的路由条目,前向路由就建立了。当源节点向多播组广播join RREQ时,经常会收到好几个RREP回复。源节点在一定时间内选有最大序列号和到多播树成员跳数最短的路由,并激活所选择路由的下一跳信息,然后沿着所选路径单播激活消息(MACT)。此路
径上的节点收到MACT后,激活多播路由表中相应条目。此过程见图1。图1节点加入多播组的过程
(2)节点离开多播组的过程(剪枝过程)。当多播成员想终止与多播组的关系时,如果节点不是树中的叶子节点,脱离组关系后还充当树中路由器的作用;如果是叶子节点,则发送剪枝消息使自己从树中剪去,即发送P标志MACT分组给上游节点,然后删除多播表中有关此组信息的所有条目,上游节点收到这个P标志的MACT后,删除多播表中发送节点条目。如果自己是组成员或不是叶节点,剪枝过程就结束,否则继续给自己的上游节点发送P标志MACT。
(3)节点给多播组发送数据的过程。当节点想给多播组发送数据但没有到多播组的有效路由时,广播RREQ,目的地址为组地址,找到路由后单播数据包给多播组。多播树上的节点收到后,沿着所建立的多播树的树枝将数据包转发给所有组成员。
由仿真结果和分析知,对于数据递交率,在不同网络负载情况下,一个多播组、两个多播组和四个多播组的数据递交率随多播组的增多而递减;在控制开销上,MAODV是一个高耗控制开销的路由协议,一个多播组的控制开销小于两个多播组,两个多播组的控制开销小于个四个多播组;对于时延,在一般网络负载下,一个多播组的时延低于两个多播组,两个多播组的时延低于四个多播组,在高网络负载下,点对点的平均时延呈现出一定的不确定性。