CN1731760A - 一种基于泛洪机制的Ad Hoc网络的路由方法 - Google Patents

一种基于泛洪机制的Ad Hoc网络的路由方法 Download PDF

Info

Publication number
CN1731760A
CN1731760A CNA2005100192426A CN200510019242A CN1731760A CN 1731760 A CN1731760 A CN 1731760A CN A2005100192426 A CNA2005100192426 A CN A2005100192426A CN 200510019242 A CN200510019242 A CN 200510019242A CN 1731760 A CN1731760 A CN 1731760A
Authority
CN
China
Prior art keywords
node
group
multicast
tree
req
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2005100192426A
Other languages
English (en)
Inventor
李腊元
李春林
许毅
吴继春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CNA2005100192426A priority Critical patent/CN1731760A/zh
Publication of CN1731760A publication Critical patent/CN1731760A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种基于泛洪机制的Ad Hoc网络的路由方法,在NS2平台下实现,包括单播和多播路由方法,主要解决:A.基于泛洪机制的广播中继集合MPRs的构建方法;B.多播路由方法,包括:(1)多播树路由表的维护、(2)多播路由树的创建、(3)组联络广播、(4)断链修复、(5)组长选举、(6)退出多播组、(7)多播树合并。本发明的方法对多播协议MAODV进行改进,采用“自我抑制泛洪”来转发路由请求报文和报文,以尽可能地减少重复分组和控制开销,提高带宽的利用率,具有高实效性,适合自组网多变的拓扑,同时这样选取出的MPRs使得泛洪数据具有一定的冗余性,也是针对无线网可靠性不高所作的调整。

Description

一种基于泛洪机制的Ad Hoc网络的路由方法
技术领域
本发明涉及一种基于泛洪机制的AdHoc网络的路由方法,属于网络技术,通信技术,多媒体应用技术,特别是实现多播业务的关键技术的多播路由机制。
背景技术
最近几年来,Internet的应用得到了飞速发展,连入网络的主机和用户逐年呈指数增长。与此同时,移动计算机网络业务已逐渐成为人们日益关注的话题。在网络中提供移动性支持可使网络用户在任何时刻、任何地点通过网络发送和接收各种数据,实现人们提出的“Anytime,Anywhere,Mobi1e Networks in your pocket”的愿望。国内学者所发表的Ad Hoc网络的研究成果较少。从2001年起,开始有少量成果发表,研究类的论文大约有数十篇,主要成果基本上集中在路由协议的一些改进,少量成果涉及MAC协议的研究。可以说国内在该研究领域基本上是刚刚起步。
移动自组网作为移动计算的一种特殊形式,由于它不需要固定的基站,各个节点均可自由移动,且能实现动态的链接。加上其具有生存性极强,且创建与移动极为方便的特点,使之弥补了蜂窝系统与有线网络的不足,在许多特殊情况下有着不可替代的作用,可广泛应用于国防战备、灾难援助、法律执行等无法得到有线网络支持或某些只是临时需要通信但建立有线通信网络代价太大的环境,且可以作为生存性极强的后备网络。其应用范围可以覆盖工业、商业、医疗、家庭、办公环境、军事等各种场合,尤其在未来战场上,Ad Hoc网络对于高技术武器装备、集中指挥、协同作战和提高作战机动性等具有非常重要的意义。因此,与扩频通信技术一样,源于军事领域研究的移动AdHoc网络,必将对科技进步具有重大促进作用。同时,随着移动自组网络研究的发展和相关产品的成熟,移动自组网必将越来越受到人们的重视,会有越来越多的应用领域,因而其具有广泛的研究与发展前景,给民用产品的开发也带来了巨大的经济和社会效益。而路由协议作为影响网络性能的一个重要因素,是确保移动自组网络正确运行的关键。对该领域进行深入而广泛的研究将为移动自组网的应用提供重要科学依据。广泛地开展Ad Hoc网络的研究,以适应我国未来高技术民用和军事发展的需要。这项研究不仅具有重要的社会和经济意义,也具有十分重要的战略意义。
多播是支持多方通讯的高效业务模式,其基本特点是发送节点的数据不是通过向逐个接收点发送来传送到多方,而是发送节点只向网络发送数据的一份实例,经由网络节点复制并发送到多个接收点。多播在传输多方通信的数据时,不仅减轻了发送源的处理负荷,也降低了网络带宽的使用,尤其是在通信带宽极其受限的移动自组网中,采用多播机制对实现多方通信是非常有必要的。如何根据自组网的特点,设计有效的多播路由协议,是目前的一个研究热点。
在自组网中,由于节点具有移动性,网络拓扑频繁改变,并且节点仅能使用有限的带宽和能量,所以现有的为有线网络设计的多播路由协议将不再适用。自组网的多播路由协议,不仅需要确定哪些中间节点对多播分组进行转发,以尽可能地减少重复分组和控制开销,提高带宽的利用率,而且需要满足一些新的要求。
实现多播业务的关键技术和机制是多播路由机制,多播传输控制机制,多播安全机制等。Ad Hoc多播业务的关键是多播路由算法,它的链路带宽受限,节点能量有限,采用广播链路,网络拓扑动态变化等许多特点决定了其组网的机制和固定网络差异相当大,多播路由算法的实现效率和对移动环境的适应性更重要。
在Ad Hoc网络中,单播和多播协议一直是人们的研究重点。常见的单播协议有:DSDV,CGSR,WRP,DSR,AODV,ABR,TORA协议,其中AODV协议是上述单播协议中性能较好的一个,分组投递率在相同的移动特性下,反应式路由协议AODV的分组投递率高,趋近100%(因为这里网络开销很小,使得分组投递率达到100%)。常见的多播协议有MAODV,ADMRP,AMRIS,AMRoute,ODMRP(On Demand Multicast RoutingProtocol),CAMP等,其中ODMRP协议是上述自组网多播协议中性能较好的一个,具有吞吐量大、适合高速运动等特点。但ODMRP协议利用泛洪控制信息来建立多播转发网格,协议开销大,同时未经优化的转发网格冗余数据转发量过大,从而传输效率不高,并且难以适应有单向链路的恶劣环境。
发明内容
本发明的目的之一是提出广播中继集合MPRs的构建方法,该算法具有高实效性,适合自组网多变的拓扑。同时这样选取出的MPRs使得泛洪数据具有一定的冗余性,也是针对无线网可靠性不高所作的调整。
本发明的目的之二是对多播协议MAODV进行改进,采用“自我抑制泛洪”来转发路由请求(REQ-Routing REQest)报文和GRPH报文,以尽可能地减少重复分组和控制开销,提高带宽的利用率。
本发明的目的之三是通过对单播协议AODV协议做适当的改进,保持了原AODV协议的简单有效性和它不需要周期性的更新网络中的路由信息,省略掉了在没有传输任务情况下,因为维护路由信息而造成的开销,支持中间节点应答,使得网络中已有的路由资源得到充分利用,缩短建立路径的时间等性能。
本发明的技术方案:基于泛洪机制的Ad Hoc网络的路由方法,在NS2平台下实现,包括单播和多播路由方法,其特征在于:
A、基于泛洪机制的广播中继集合MPRs的构建的方法是:
(1)节点X把所有的双向邻居按最后一次收到它们的数据的时间,分时间段从晚到早排序,同一时间段节点按照它们的邻居个数从多到少排序,设最后获得序列S(x)={N1,N2,...,Nk},共k个邻居,设X的所有2跳邻居的集合为Q(x),并设x的MPRs集合为M(x),初始M(x)为空;
(2)从序列S(x)中选取第一个邻居Ni(i∈{1,2,...,k}),如果这个邻居的邻居中包含了Q(x)集合中的某些节点,那么把Ni加入到M(x)中,并把Ni覆盖的Q(x)中的节点从Q(x)中删除,然后把Ni从S(x)序列中删除;
(3)如果序列S(x)为空或者集合Q(x)为空,则算法结束,所得的M(x)集合即为MPRs集合,否则返回(2)继续进行;
B、多播路由的方法是:
(1)多播树路由表的维护:
源节点向自己不是组成员的组发送数据分为两阶段:先将数据发送给多播树的一个成员,再由该成员负责将数据在多播树中传播;
(2)多播路由树的创建:
节点通过发送REQ-J发起加入多播组请求,REQ里定义了一个多播标志字段,REQ-J则是在标志字段里设置对应的J(JION)标志位;
如果该节点的组长表中有该组的项目,REQ-J以单播发送给该组的组长,否则,REQ-J以广播方式发送;
接收到REQ-J的节点在组长列表中检查是否有该组的项目,如果没有,节点将REQ-J的组地址以及REQ-J的源地址记录入组长列表;
REQ-J传播时,沿途节点在单播路由表中设置到源节点的反向路由,并重新广播REQ-J;
REQ-J最终到达多播树的某个成员,也只有多播树成员才能回复加入多播树请求;
收到REQ-J的多播树成员向源节点单播发送REP-J以回复加入请求,REP-J同样也是在REP的标志字段里设置对应的J标志;REP-J沿REQ-J传输时建立的反向路径传送,RE-J传输时,沿途节点在多播路由表中创建对应该组的项目,并把上游节点设置成将REP-J转发给它的邻居节点;
源节点在发送完REQ-J,等待rep wait-time时间,以待REP-J的到来;
源节点在接收到第一个REP-J后记录下REP-J中包含的序列号和跳数;
如果req wait-time时间内有后继的REP-J到来,源节点记录接收到的有最大序列号,最少跳数的REP-J;之后,源节点在多播路由表中把上游节点设置成将具有最大序列号,最少跳数REP-J转发给它的邻居节点,并向上游节点单播发送MACT-J;
MACT-J沿REP-J传播时建立的正向路径传输,所有接收到MACT-J的节点在多播路由表中设置下游节点,将连接源节点的一条枝条“嫁接”到了多播树中;
如果源节点在重试若干次加入请求后,仍然没有接收到回复,说明该多播组在网络上不存在或者不可达,源节点成为新组的组长,并负责维护该组的信息;
(3)组联络广播:
多播组的第一个成员自动成为该组的领导,组长负责维护该组的序列号并在全网广播组联络报文GRPH,GRPH报文包含的信息包含该节点担任组长的所有组的IP地址和序列号;
收到GRPH分组的节点据此更新自己的组长列表;缓存GRPH中的组序列号<组地址,组序列号>组地址继续对检测重复收到的GRPH。
(4)断链修复:
如果链路的上游节点检查到断链发生,节点将断链的下游节点从多播路由表中删除;如果该节点不是组成员且是树的叶子节点,它将通过自我修剪过程把自己从多播树中去除;
(5)组长选举:
树分割形成后,必须为缺组长的新树选举新的组长;如果发生断链的链路下游节点是组成员,则该节点成为分割后形成的新树的组长;
(6)退出多播组:
如果组长要退出多播组,它将多播路由表中自己的状态改成路由器,并发起组长选举;
如果组成员要退出多播组,它先将多播路由表中自己的状态改成路由器,并检查自己是否有下游节点,如果有下游节点,它必须做为路由器待在多播树中成为组长;
如果多播树的叶子节点要退出多播组,它首先将多播路由表中对应该组的路由项删除,并向上游链路发送MACT-P通知上游节点它要离开多播树,接收到MACT-P的上游节点将退出多播树的下游节点,从多播路由表中将其删除,如果上游节点删除自己的下游节点后成为叶节点且不是组成员,该节点通过“自我修剪”过程退出多播组;
(7)多播树合并:
多播树合并由地址较小的组长GL1发起,将GL1所在的树简记为Ti,由于GL1已经通过接收GRPH得到了地址较大的组长GL2的下一跳,将GL2所在的树简记为T2,GL1单播发送REQ-JR到GL2请求进行树合并,REQ中设置J标志和R标志,REQ-JR传播的同时建立了从GL2到GL1的反向路径。
所述的路由方法,其单播路由发现和维护方法是:
源端将广播一个路由请求分组,MPR节点接到后将依次向周围节点广播此分组,直到该分组被送到一个知道路由信息的中间节点或目的节点,非MPR节点将不广播该分组;
当源端移动时,重新发起路由发现算法;
如果中间节点移动,那么与其相邻的节点会发现链路失效并向其上游节点发送链路失效消息并一直传到源节点,而后,源节点根据情况重新发起路由发现过程。
本发明的优点:本发明采用广播中继机制MPR(MultipointRe1ay)。对于单播协议,优化了路由发现过程,控制了泛洪,减少了相邻节点路由请求消息可能发生的传播冲突和可能会产生的重复广播;对于多播,优化了多播转发网格并减少了协议开销,提高了协议对网络规模的可扩展性和吞吐量,并且提供了拥塞控制,有效地解决了单向链路问题,增强了协议的健壮性。
在NS2下编写代码,对本发明的AODV-MPR协议进行仿真实验,将AODV和AODV-MPR协议运行结果进行比较发现,从表6-2可以看到整个过程中AODV-MPR协议传输的TCP包比AODV多,而且节点2和3路由请求包AODV-MPR协议比AODV少,这是因为AODV-MPR协议采用了泛洪中继的策略,广播的数据包要少些,网络开销也小些。AODV-MPR的优点在于保留了AODV的中间节点无需维持更新的路由信息,由于节点的高速缓冲区储存了到目的节点的多条路由,当一条路由断开时,节点可以在高速缓冲区中找到预备的路由。而且克服了AODV中洪泛引起的网络开销和负担,使协议在性能上大大提高。特别是该泛洪中继机制通用于所有采用洪泛路由发现机制的协议,包括单播和多播,因此该思想具有很大的现实意义和发展前景。
附图说明
图1是MAODV多播树结构图;
图2是基于泛洪机制的广播中继集合MPRs的构建流程图;
图3是多播树路由流程图。
具体实施方式
本发明实际上作了如下工作:
1.通过对单播协议AODV协议做适当的改进,提出了AODV-MPR协议,AODV-MPR协议保持了原AODV协议的简单有效性和它不需要周期性的更新网络中的路由信息,从而省略掉了在没有传输任务情况下,因为维护路由信息而造成的开销。这种路由还支持中间节点应答,使得网络中已有的路由资源得到充分利用,缩短建立路径的时间等性能。
2.进了MAODV协议草案并实现了该改进协议。通过MAODV协议的实现与仿真,发现了一些MAODV草案中需要改进的问题,针对这些问题提出了修改建议,在仿真中验证了按建议修改后的协议在性能上优于原协议。对MAODV草案提出的修改建议包括:
1)MAODV草案中建议节点通过缓存组联络报文(GRPH--GRouPHello)中的<组地址,组序列号>对来检测重复接收到GRPH报文。这样的做法将导致某些情况一下节点检测不到树分割的发生。因此,建议除组地址、组序列号外,节点中缓存的内容还应当包括GRPH中的组长地址,以保证树分割的正确的检测。
2)MAODV草案关于“发送请求的节点接收到来自多播树成员的RREP-J报文后需等待一段时间后才激活到多播树的路径。”的做法降低了分组投递率。建议采用“立即激活”方式,仿真结果表明在节点移动速度等于20米/秒时,立即激活方式的分组投递效率至少可提高25%,速度越快效率越高。
3)MAODV草案中采取“盲目泛洪”的方式转发广播分组,节点通过邻居发现所获得的邻节点信息未能有效地利用。建议采用“自我抑制泛洪”来转发路由请求(RREQ--Routing REQest)报文和GRPH报文,仿真结果表明在20个组成员,5个数据源的情况下,RREQ的广播流量减少86%,GRPH的广播流量减少62%。
3.提出一种对泛洪机制的路由协议的改进,即XXX-MPR路由协议。该协议继承了原XXX协议的一切优越性,并采用广播中继机制MPR(Multipoint Relay)构建广播中继集合MPRs。对于单播协议,优化了路由发现过程,控制了泛洪,减少了相邻节点路由请求消息可能发生的传播冲突和可能会产生的重复广播;对于多播,优化了多播转发网格并减少了协议开销,提高了协议对网络规模的可扩展性和吞吐量,并且提供了拥塞控制,有效地解决了单向链路问题,增强了协议的健壮性。
具体实施如下:
1.基于泛洪机制的广播中继集合MPRs的构建方法:
MPR是Multipoint Relay(广播中继)的缩写,采用该机制的目的是使用较少的数据转发开销,获得与全网泛洪一样的数据传输效果。网络中每个节点N从自己的邻居节点集合中适当选取部分节点构成自己的广播中继集合MPRs,只有集合中的节点邻居(MPR Neighbor)收到来自节点N的泛洪数据后才会进行转播,其他邻居只作适当处理。定义节点N经过2跳而且至少2跳才能到达的节点为N的两跳邻居,则MPRs的选择算法要保证做到:N广播的泛洪数据经过N选择的广播中继邻居转发后,可以被N的所有两跳邻居收到。MPR的原理就是减少同一个区域内重复广播的数据而获得较小的泛洪开销,但同时又保持了泛洪的效果。
MPRs是一种选择算法,每个节点都周期性发送Hello消息,其中包含了自己的邻居列表。每个节点通过收到的邻居节点的Hello消息的邻居列表是否包含自己来判断该链路是否双向链路,获得自己的双向邻居列表。通过这些Hello消息,节点N同时也可以获得N的两跳邻居集合。网络中每个节点N从自己的邻居节点集合中适当选取部分节点构成自己的广播中继集合MPRs。
图2是基于泛洪机制的广播中继集合MPRs的构建流程图:下面以节点X为例描述MPRs选择算法:
(1)节点X把所有的双向邻居按最后一次收到它们的数据的时间,分时间段从晚到早排序。同一时间段节点按照它们的邻居个数从多到少排序。设最后获得序列S(x)={N1,N2,...,Nk},共k个邻居,设X的所有2跳邻居的集合为Q(x),并设x的MPRs集合为M(x),初始M(x)为空。
(2)从序列S(x)中选取第一个邻居Ni(i∈{1,2,…,k}),如果这个邻居的邻居中包含了Q(x)集合中的某些节点,那么把Ni加入到M(x)中,并把Ni覆盖的Q(x)中的节点从Q(x)中删除。然后把Ni从S(x)序列中删除。
(3)如果序列S(x)为空或者集合Q(x)为空,则算法结束,所得的M(x)集合即为MPRs集合。否则返回(2)继续进行。
节点x的MPRs信息同样是在Hello消息中发送出去的,这样当x的邻居收到Hello消息后可以标识自己是x选定的广播中继邻居(MPRNeighbor)或者非广播中继邻居(NMPR Neighbor)。该算法具有高实效性,适合自组网多变的拓扑。同时这样选取出的MPRs使得泛洪数据具有一定的冗余性,也是针对无线网可靠性不高所作的调整。
2.基于广播中继的改进协议AODV-MPR及其实现
(1)AODV-MPR协议的路由发现和维护
AODV-MPR协议是AODV协议的改进,其路由发现过程同AODV协议基本相同,不同之处是在路由发现过程中,为了找到通往目的节点的路由,源端将广播一个路由请求分组,MPR节点接到后将依次向周围节点广播此分组直到该分组被送到一个知道目的节点路由信息中间节点或目的节点本身,非MPR节点将不广播该分组。当源端移动时,它会重新发起路由发现算法;如果中间节点移动,那么与其相邻的节点会发现链路失效并向其上游节点发送链路失效消息并一直传到源节点,而后源节点根据情况重新发起路由发现过程。AODV-MPR协议的维护过程与AODV协议一样
(2)AODV-MPR协议的实现
在NS2下编写代码,实现AODV-MPR协议,进行仿真实验,将AODV和AODV-MPR协议运行结果进行比较发现,如下表:
协议 节点1传输的TCP包 节点2转发的路由包 节点3转发的路由包
AODV 6748 3970 2007
AODV-MPR 7303 3727 1559
AODV和AODV-MPR协议性能比较表
从表中可以看到整个过程中AODV-MPR协议传输的TCP包比AODV多,而且节点2和3路由请求包AODV-MPR协议比AODV少,这是因为AODV-MPR协议采用了泛洪中继的策略,广播的数据包要少些,网络开销也小些。AODV-MPR的优点在于保留了AODV的中间节点无需维持更新的路由信息,由于节点的高速缓冲区储存了到目的节点的多条路由,当一条路由断开时,节点可以在高速缓冲区中找到预备的路由。而且克服了AODV中洪泛引起的网络开销和负担,使协议在性能上大大提高。特别是该泛洪中继机制通用于所有采用洪泛路由发现机制的协议,包括单播和多播,因此该思想具有很大的现实意义和发展前景。
3.MAODV协议的改进及其NS2仿真:
如图1MAODV多播树所示,MAODV的采用双向共享树的多播分发机制,多播分发树是按需创建的,而且MAODV多播树中的组成员都可以受理加入组申请。“双向”是指多播树中的节点同时设置指向上游节点(父母节点)和下游节点(子节点)的指针。MAODV的多播树所有节点可分为三类:组成员(隶属于多播树中相应的多播组的端节点)、路由器(能够将组成员连入多播树但不是多播组成员的中间节点)和组长(特殊组成员),组长负责为自己所在的组维护一个组序列号,定期全网广播组联络报文(GRPH),收到GRPH报文的节点将获悉该组的存在。组长每次广播GRPH报文前,先将组序列号加1,这样越大的组序列号就对应着越新的组状态。
图3是多播树路由流程图,具体如下:
(1)多播树路由表维护:
MAODV路由协议中,网络节点需要维护单播路由表、多播路由表、组长列表信息来实现对单播和多播分组的转发。源节点向自己不是组成员的组发送数据分为两阶段:先将数据发送给多播树的一个成员,再由该成员负责将数据在多播树中传播。
(2)多播树的创建:
节点通过发送REQ-J发起加入多播组请求,REQ里定义了一个多播标志字段,REQ-J则是在标志字段里设置对应的J(JION)标志位,同样REQ-J也有可能单播或广播发送,这取决于节点的组长列表有没有该组对应的项目。如果该节点的组长表中有该组的项目,REQ-J以单播发送给该组的组长,否则,REQ-J以广播方式发送。接收到REQ-J的节点在组长列表中检查是否有该组的项目,如果没有,节点将REQ-J的组地址以及REQ-J的源地址记录入组长列表。
REQ-J传播时,沿途节点在单播路由表中设置到源节点的反向路由,并重新广播REQ-J。REQ-J最终会到达多播树的某个成员,也只有多播树成员才能回复加入多播树请求。收到REQ-J的多播树成员向源节点单播发送REP-J以回复加入请求,REP-J同样也是在REP的标志字段里设置对应的J标志。REP-J沿REQ-J传输时建立的反向路径传送。RE-J传输时,沿途节点在多播路由表中创建对应该组的项目,并把上游节点设置成将REP-J转发给它的邻居节点。
源节点在发送完REQ-J等待rep wait_time时间以待REP-J的到来。MAODV草案中建议源节点在接收到第一个REP-J后记录下REP-J中包含的序列号和跳数。如果req wait_time时间内有后继的REP-J到来,源节点记录接收到的有最大序列号,最少跳数的REP-J。之后,源节点在多播路由表中把上游节点设置成将具有最大序列号,最少跳数REP-J转发给它的邻居节点,并向上游节点单播发送MACT-J。MACT-J沿REP-J传播时建立的正向路径传输。所有接收到MACT-J的节点在多播路由表中设置下游节点,这样就将连接源节点的一条枝条“嫁接”到了多播树中。
需要特别指出的是:MAODV草案建议的这种“延迟激活源节点到多播树路径”的做法在节点移动速度较快的情况下可能存在问题。因为在网络拓扑变化较快的的情况下,源节点到多播树的有效路径存在的时间较短,如果在发现路径后延迟一段时间再激活,该路径有可能早就失效了。
如果源节点在重试若干次加入请求后仍然没有接收到回复,说明该多播组在网络上不存在或者不可达。源节点成为新组的组长,并负责维护该组的信息。
(3)组联络广播:
多播组的第一个成员自动成为该组的领导。组长负责维护该组的序列号并在全网广播组联络报文(GRPH)。GRPH报文包含的信息包含该节点担任组长的所有组的IP地址和序列号。收到GRPH分组的节点据此更新自己的组长列表。由于GRPH是以广播的方式在全网传播,节点有可能重复接收到同一个GRPH分组。MAOBV草案建议缓存GRPH中的<组地址,组序列号>对来检测重复收到的GRPH。
(4)断链修复:
如果链路的上游节点检查到断链发生,节点将断链的下游节点从多播路由表中删除。如果该节点不是组成员且是树的叶子节点(没有下游节点),它将通过“自我修剪”(Self Prune)过程把自己从多播树中去除。
(5)组长选举:
树分割形成后,必须为缺组长的新树选举新的组长。如果发生断链的链路下游节点是组成员,则该节点成为分割后形成的新树的组长。
(6)退出多播组:
如果组长要退出多播组,它将多播路由表中自己的状态改成路由器,并发起组长选举。
如果组成员要退出多播组,它先将多播路由表中自己的状态改成路由器,并检查自己是否有下游节点。如果有下游节点,它必须做为路由器待在多播树中。
如果多播树的叶子节点要退出多播组,它首先将多播路由表中对应该组的路由项删除,并向上游链路发送MACT-P通知上游节点它要离开多播树。这个过程称为“自我修剪”(Self Prune)过程。接收到MACT-P的上游节点将退出多播树的下游节点从多播路由表中删除。如果上游节点删除自己的下游节点后成为叶节点且不是组成员,该节点通过“自我修剪”过程退出多播组。上述的过程会重复进行直到达到一个组成员或者非叶节点。
(7)多播树合并:
多播树合并由地址较小的组长(为了简便起见,以下简记为GL1,将GL1所在的树简记为T1)发起,由于GL1已经通过接收GRPH得到了到地址较大的组长(以下简记为GL2,将GL2所在的树简记为T2)的下一跳,GL1单播发送REQ-JR(REQ中设置J标志和R标志)到GL2请求进行树合并。REQ-JR传播的同时建立了从GL2到GL1的反向路径。
MAODV的实现
实现环境是操作系统为Red hat9,模拟工具是ns2.26,编写实现MAODV的程序如下:1)aodv.h,2)aodv.cc,3)aodv_mcast.cc,4)aodv_mtable_aux.cc,5)aodv_mtable_aux.h,6)aodv_mtabe.cc,7)aodv_mtable.h,8)aodv_packet.h,9)aodv_rqueue.cc,10)aodv_rqueue.h,11)aodv_rtable.cc,12)aodv_rtable.h,13)cmt-trace.cc,14)wireless-phy.cc,15)wireless-phy.h,16)node.cc,17)node.h,18)ns-mcast.tcl。
拷贝文件1)-12)到目录./ns-2.26/aodv/;拷贝13)到目录./ns-2.26/trace/;拷贝14)和15)到目录./ns-2.26/mac/;拷贝文件16)和17)到目录./ns-2.26/common;拷贝18)到目录./ns-2.26/tcl/mcast/。编辑ns-2.26目录下的Makefile文件,更改变量OBJ_CC的定义,添加如下行:“aodv/aodv_mcast.oaodv/aodv_mtable.oaodv/aodv_mtable_aux.o\”。在./ns-2.26/目录下编译,敲入如下命令:“make clean,make”  即可完成MAODV的安装。
总之,MAODV主要的问题在于它采用的共享双向多播树只提供一条数据源到数据接收者的路径。从而造成在网络拓扑变化较快的情况下MAODV的分组投递率很低。MAODV的一个可能的改进方向就是向ODMRP一样为数据源到数据接收者引入冗余的路径。MAODV中,节点请求加入多播组的过程其实建立了多条到多播组的路径。目前的做法是节点通过发送MACT激活其中的一条。未来可以设想可能通过激活多条路径来为节点到多播组提供备用路径。这些备用的路径应该有相同的组序列号,只是到多播组的跳数不同。这样,当节点检测到主用的路径失效时,在发送REQ-J修复多播放树之前,它可以逐个尝试到多播组的备用路径。
这样做可能带来额外的路由开销,但随着无线通信技术的发展,无线传输所能提供的带宽不断地增加,新一代的支持802.11a无线网卡达到惊人的54Mbps的传输速率。

Claims (2)

1.一种基于泛洪机制的Ad Hoc网络的路由方法,在NS2平台下实现,包括单播和多播路由方法,其特征在于:
A、基于泛洪机制的广播中继集合MPRs的构建方法是:
(1)节点X把所有的双向邻居按最后一次收到它们的数据的时间,分时间段从晚到早排序,同一时间段节点按照它们的邻居个数从多到少排序,设最后获得序列S(x)={N1,N2,…,Nk},共k个邻居,设X的所有2跳邻居的集合为Q(x),并设x的MPRs集合为M(x),初始M(x)为空;
(2)从序列S(x)中选取第一个邻居Ni(i∈{1,2,…,k}),如果这个邻居的邻居中包含了Q(x)集合中的某些节点,那么把Ni加入到M(x)中,并把Ni覆盖的Q(x)中的节点从Q(x)中删除,然后把Ni从S(x)序列中删除;
(3)如果序列S(x)为空或者集合Q(x)为空,则算法结束,所得的M(x)集合即为MPRs集合,否则返回(2)继续进行;
B、多播路由的方法是:
(1)多播树路由表的维护:
源节点向自己不是组成员的组发送数据分为两阶段:先将数据发送给多播树的一个成员,再由该成员负责将数据在多播树中传播;
(2)多播路由树的创建:
节点通过发送REQ-J发起加入多播组请求,REQ里定义了一个多播标志字段,REQ-J则是在标志字段里设置对应的J(JION)标志位;
如果该节点的组长表中有该组的项目,REQ-J以单播发送给该组的组长,否则,REQ-J以广播方式发送;
接收到REQ-J的节点在组长列表中检查是否有该组的项目,如果没有,节点将REQ-J的组地址以及REQ-J的源地址记录入组长列表;
REQ-J传播时,沿途节点在单播路由表中设置到源节点的反向路由,并重新广播REQ-J;
REQ-J最终到达多播树的某个成员,也只有多播树成员才能回复加入多播树请求;
收到REQ-J的多播树成员向源节点单播发送REP-J以回复加入请求,REP-J同样也是在REP的标志字段里设置对应的J标志;
REP-J沿REQ-J传输时建立的反向路径传送,RE-J传输时,沿途节点在多播路由表中创建对应该组的项目,并把上游节点设置成将REP-J转发给它的邻居节点;
源节点在发送完REQ-J,等待rep wait_time时间,以待REP-J的到来;
源节点在接收到第一个REP-J后记录下REP-J中包含的序列号和跳数;
如果req wait_time时间内有后继的REP-J到来,源节点记录接收到的有最大序列号,最少跳数的REP-J;之后,源节点在多播路由表中把上游节点设置成将具有最大序列号,最少跳数REP-J转发给它的邻居节点,并向上游节点单播发送MACT-J;
MACT-J沿REP-J传播时建立的正向路径传输,所有接收到MACT-J的节点在多播路由表中设置下游节点,将连接源节点的一条枝条“嫁接”到了多播树中;
如果源节点在重试若干次加入请求后,仍然没有接收到回复,说明该多播组在网络上不存在或者不可达,源节点成为新组的组长,并负责维护该组的信息;
(3)组联络广播:
多播组的第一个成员自动成为该组的领导,组长负责维护该组的序列号并在全网广播组联络报文(GRPH),(GRPH)报文包含的信息包含该节点担任组长的所有组的IP地址和序列号;
收到GRPH分组的节点据此更新自己的组长列表;缓存(GRPH)中的组序列号<组地址,组序列号>组地址继续对检测重复收到的GRPH。
(4)断链修复:
如果链路的上游节点检查到断链发生,节点将断链的下游节点从多播路由表中删除;如果该节点不是组成员且是树的叶子节点,它将通过自我修剪过程把自己从多播树中去除;
(5)组长选举:
树分割形成后,必须为缺组长的新树选举新的组长;如果发生断链的链路下游节点是组成员,则该节点成为分割后形成的新树的组长;
(6)退出多播组:
如果组长要退出多播组,它将多播路由表中自己的状态改成路由器,并发起组长选举;
如果组成员要退出多播组,它先将多播路由表中自己的状态改成路由器,并检查自己是否有下游节点,如果有下游节点,它必须做为路由器待在多播树中成为组长;
如果多播树的叶子节点要退出多播组,它首先将多播路由表中对应该组的路由项删除,并向上游链路发送MACT-P通知上游节点它要离开多播树,接收到MACT-P的上游节点将退出多播树的下游节点,从多播路由表中将其删除,如果上游节点删除自己的下游节点后成为叶节点且不是组成员,该节点通过“自我修剪”过程退出多播组;
(7)多播树合并:
多播树合并由地址较小的组长GL1发起,将GL1所在的树简记为T1,由于GL1已经通过接收GRPH得到了地址较大的组长GL2的下一跳,将GL2所在的树简记为T2,GL1单播发送REQ-JR到GL2请求进行树合并,REQ中设置J标志和R标志,REQ-JR传播的同时建立了从GL2到GL1的反向路径。
2.根据权利要求1所述的路由方法,其特征在于:单播路由发现和维护方法是:
源端将广播一个路由请求分组,MPR节点接到后将依次向周围节点广播此分组,直到该分组被送到一个知道路由信息的中间节点或目的节点,非MPR节点将不广播该分组;
当源端移动时,重新发起路由发现算法;
如果中间节点移动,那么与其相邻的节点会发现链路失效并向其上游节点发送链路失效消息并一直传到源节点,而后,源节点根据情况重新发起路由发现过程。
CNA2005100192426A 2005-08-05 2005-08-05 一种基于泛洪机制的Ad Hoc网络的路由方法 Pending CN1731760A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2005100192426A CN1731760A (zh) 2005-08-05 2005-08-05 一种基于泛洪机制的Ad Hoc网络的路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2005100192426A CN1731760A (zh) 2005-08-05 2005-08-05 一种基于泛洪机制的Ad Hoc网络的路由方法

Publications (1)

Publication Number Publication Date
CN1731760A true CN1731760A (zh) 2006-02-08

Family

ID=35964064

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005100192426A Pending CN1731760A (zh) 2005-08-05 2005-08-05 一种基于泛洪机制的Ad Hoc网络的路由方法

Country Status (1)

Country Link
CN (1) CN1731760A (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100418332C (zh) * 2006-07-14 2008-09-10 清华大学 覆盖路由网络中网络状态信息的广播方法
CN100461735C (zh) * 2007-03-20 2009-02-11 哈尔滨工业大学 无线传感器网络中基于aomdv协议的路径选择方法
CN101479999A (zh) * 2006-04-24 2009-07-08 马维尔国际贸易有限公司 改进的802.11网格体系结构
CN101184037B (zh) * 2007-10-31 2010-06-02 北京航空航天大学 基于概率有效广播系数的洪泛方法
CN101179499B (zh) * 2007-12-06 2010-07-07 上海大学 用于监控系统的无线自组网形成树形路由方法
CN101291284B (zh) * 2008-05-23 2010-11-10 西安交通大学 异类点Ad Hoc网络的一种局部拓扑感知方法
CN101547491B (zh) * 2009-04-15 2010-12-08 电子科技大学 一种移动自组织网络系统路由方法
CN101951654A (zh) * 2010-08-09 2011-01-19 哈尔滨工程大学 一种面向多水下机器人通信的节能路由方法
CN101242431B (zh) * 2008-01-21 2011-03-16 北京航空航天大学 基于跨层的移动Ad Hoc网络服务发现方法
CN102075869A (zh) * 2011-02-25 2011-05-25 北京交通大学 基于网络按需距离矢量多播路由的多播树更新方法及系统
CN102118312A (zh) * 2011-01-27 2011-07-06 南京邮电大学 一种分级aodv路由方法
CN101217498B (zh) * 2008-01-18 2011-08-24 北京科技大学 基于数据报文点点决策的自组织网络寻路方法
CN101299708B (zh) * 2007-09-20 2011-10-12 上海寰创通信科技有限公司 一种动态广播路由方法
CN101595684B (zh) * 2006-12-26 2012-06-06 索尼株式会社 无线通信系统、无线通信装置、无线通信方法及程序
WO2012088950A1 (zh) * 2010-12-29 2012-07-05 中兴通讯股份有限公司 数据信元处理方法和装置
CN101617512B (zh) * 2007-02-23 2012-10-10 阿尔卡特朗讯公司 在非指定路由器处接收多播业务
CN101436980B (zh) * 2007-11-12 2012-11-14 中国科学院计算机网络信息中心 泛洪法生成数据包转发表的方法
CN101784093B (zh) * 2009-01-15 2012-12-05 财团法人工业技术研究院 无线通信网络以及路由方法
CN104837172A (zh) * 2015-05-06 2015-08-12 天津理工大学 一种dt-maodv多播路由方法
CN105578556A (zh) * 2014-10-16 2016-05-11 北京信威通信技术股份有限公司 无线自组网系统及其路由方法
CN106060885A (zh) * 2016-05-12 2016-10-26 河海大学常州校区 基于定位系统分区域的无线传感网泛洪传播方法
CN106304229A (zh) * 2016-08-18 2017-01-04 南京邮电大学 一种基于内容存储的软件定义无线Mesh网络
CN107612828A (zh) * 2017-11-06 2018-01-19 余帝乾 一种dsr路由协议的改进方法
CN110087195A (zh) * 2019-04-22 2019-08-02 希诺麦田技术(深圳)有限公司 无线自组网中数据的传播方法、装置及存储介质
CN111245660A (zh) * 2020-02-24 2020-06-05 重庆金美通信有限责任公司 一种基于网络的设备升级自适应传输方法
CN111324719A (zh) * 2020-03-04 2020-06-23 重庆百事得大牛机器人有限公司 用于法律咨询的模糊识别系统
CN112534782A (zh) * 2018-08-17 2021-03-19 瑞典爱立信有限公司 针对蓝牙网的独立冗余路径发现
CN113422722A (zh) * 2021-06-16 2021-09-21 锐捷网络股份有限公司 路由处理方法及装置

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101479999A (zh) * 2006-04-24 2009-07-08 马维尔国际贸易有限公司 改进的802.11网格体系结构
CN101479999B (zh) * 2006-04-24 2014-05-28 马维尔国际贸易有限公司 一种无线网络设备及用于无线网络设备的方法
CN100418332C (zh) * 2006-07-14 2008-09-10 清华大学 覆盖路由网络中网络状态信息的广播方法
CN101595684B (zh) * 2006-12-26 2012-06-06 索尼株式会社 无线通信系统、无线通信装置、无线通信方法及程序
CN101617512B (zh) * 2007-02-23 2012-10-10 阿尔卡特朗讯公司 在非指定路由器处接收多播业务
CN100461735C (zh) * 2007-03-20 2009-02-11 哈尔滨工业大学 无线传感器网络中基于aomdv协议的路径选择方法
CN101299708B (zh) * 2007-09-20 2011-10-12 上海寰创通信科技有限公司 一种动态广播路由方法
CN101184037B (zh) * 2007-10-31 2010-06-02 北京航空航天大学 基于概率有效广播系数的洪泛方法
CN101436980B (zh) * 2007-11-12 2012-11-14 中国科学院计算机网络信息中心 泛洪法生成数据包转发表的方法
CN101179499B (zh) * 2007-12-06 2010-07-07 上海大学 用于监控系统的无线自组网形成树形路由方法
CN101217498B (zh) * 2008-01-18 2011-08-24 北京科技大学 基于数据报文点点决策的自组织网络寻路方法
CN101242431B (zh) * 2008-01-21 2011-03-16 北京航空航天大学 基于跨层的移动Ad Hoc网络服务发现方法
CN101291284B (zh) * 2008-05-23 2010-11-10 西安交通大学 异类点Ad Hoc网络的一种局部拓扑感知方法
CN101784093B (zh) * 2009-01-15 2012-12-05 财团法人工业技术研究院 无线通信网络以及路由方法
CN101547491B (zh) * 2009-04-15 2010-12-08 电子科技大学 一种移动自组织网络系统路由方法
CN101951654A (zh) * 2010-08-09 2011-01-19 哈尔滨工程大学 一种面向多水下机器人通信的节能路由方法
CN101951654B (zh) * 2010-08-09 2013-03-20 哈尔滨工程大学 一种面向多水下机器人通信的节能路由方法
WO2012088950A1 (zh) * 2010-12-29 2012-07-05 中兴通讯股份有限公司 数据信元处理方法和装置
US9083607B2 (en) 2010-12-29 2015-07-14 Zte Corporation Method and device for processing data cell
CN102118312A (zh) * 2011-01-27 2011-07-06 南京邮电大学 一种分级aodv路由方法
CN102075869A (zh) * 2011-02-25 2011-05-25 北京交通大学 基于网络按需距离矢量多播路由的多播树更新方法及系统
CN102075869B (zh) * 2011-02-25 2013-05-15 北京交通大学 基于网络按需距离矢量多播路由的多播树更新方法及系统
CN105578556A (zh) * 2014-10-16 2016-05-11 北京信威通信技术股份有限公司 无线自组网系统及其路由方法
CN104837172A (zh) * 2015-05-06 2015-08-12 天津理工大学 一种dt-maodv多播路由方法
CN106060885B (zh) * 2016-05-12 2019-05-24 河海大学常州校区 基于定位系统分区域的无线传感网泛洪传播方法
CN106060885A (zh) * 2016-05-12 2016-10-26 河海大学常州校区 基于定位系统分区域的无线传感网泛洪传播方法
CN106304229B (zh) * 2016-08-18 2019-08-23 南京邮电大学 一种基于内容存储的软件定义无线Mesh网络的方法
CN106304229A (zh) * 2016-08-18 2017-01-04 南京邮电大学 一种基于内容存储的软件定义无线Mesh网络
CN107612828A (zh) * 2017-11-06 2018-01-19 余帝乾 一种dsr路由协议的改进方法
CN112534782A (zh) * 2018-08-17 2021-03-19 瑞典爱立信有限公司 针对蓝牙网的独立冗余路径发现
CN112534782B (zh) * 2018-08-17 2022-08-05 瑞典爱立信有限公司 针对蓝牙网的独立冗余路径发现
US11743173B2 (en) 2018-08-17 2023-08-29 Telefonaktiebolaget Lm Ericsson (Publ) Independent redundant path discovery for Bluetooth mesh
CN110087195A (zh) * 2019-04-22 2019-08-02 希诺麦田技术(深圳)有限公司 无线自组网中数据的传播方法、装置及存储介质
CN111245660A (zh) * 2020-02-24 2020-06-05 重庆金美通信有限责任公司 一种基于网络的设备升级自适应传输方法
CN111245660B (zh) * 2020-02-24 2022-08-12 重庆金美通信有限责任公司 一种基于网络的设备升级自适应传输方法
CN111324719A (zh) * 2020-03-04 2020-06-23 重庆百事得大牛机器人有限公司 用于法律咨询的模糊识别系统
CN111324719B (zh) * 2020-03-04 2023-05-05 重庆百事得大牛机器人有限公司 用于法律咨询的模糊识别系统
CN113422722A (zh) * 2021-06-16 2021-09-21 锐捷网络股份有限公司 路由处理方法及装置
CN113422722B (zh) * 2021-06-16 2023-10-24 锐捷网络股份有限公司 路由处理方法及装置

Similar Documents

Publication Publication Date Title
CN1731760A (zh) 一种基于泛洪机制的Ad Hoc网络的路由方法
Junhai et al. A survey of multicast routing protocols for mobile ad-hoc networks
CN101489276B (zh) 一种移动Ad Hoc网络多播路由方法
CN1738292A (zh) 基于跨层设计的自组网定向路由方法
CN101068203A (zh) 一种分群自组路由方法与装置
Maqbool et al. Classification of Current Routing Protocols for Ad Hoc Networks- A Review
CN1878074A (zh) 一种基于广播中继的Ad hoc网络多播路由的建立方法
Sharma et al. Behavioral study of MANET routing protocols by using NS-2
Wang et al. An AODV-based anycast protocol in mobile ad hoc network
Ismail et al. Mobile ad hoc network overview
Lipman et al. Broadcast in ad hoc networks
CN104219156B (zh) 一种适用于层次化空中自组织网络的组播路由方法
CN105072586A (zh) 嵌入式无线自组织网络中对广播消息的转发的管理方法
Kalpana et al. Reliable broadcasting using efficient forward node selection for mobile ad-hoc networks.
CN102916876A (zh) 一种面向主从结构网络单向链路环境的路由方法
Xiang Analysis on multicast routing protocols for mobile ad hoc networks
Cheng et al. GMZRP: Geography-aided multicast zone routing protocol in mobile ad hoc networks
Liu et al. The study of effectiveness for ad-hoc wireless network
Prakash et al. Tree-on-dag for data aggregation in sensor networks
Rajeswari et al. Performance analysis of AODV, DSR, TORA and OLSR to achieve group communication in MANET
Li et al. A tree based data collection scheme for wireless sensor network
Qabajeh et al. Position-based multicast routing in Mobile Ad hoc Networks
Peng et al. A scalable code dissemination protocol in heterogeneous wireless sensor networks
Ding et al. Study of Improved OLSR Routing Protocol in UAV Swarm
Dinesh et al. Ultimate Video Spreading With Qos over Wireless Network Using Selective Repeat Algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication