CN102595504B - 一种基于链路拥塞度的动态多径olsr路由方法 - Google Patents

一种基于链路拥塞度的动态多径olsr路由方法 Download PDF

Info

Publication number
CN102595504B
CN102595504B CN201210044565.0A CN201210044565A CN102595504B CN 102595504 B CN102595504 B CN 102595504B CN 201210044565 A CN201210044565 A CN 201210044565A CN 102595504 B CN102595504 B CN 102595504B
Authority
CN
China
Prior art keywords
node
route
routing
path
lcd
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.)
Expired - Fee Related
Application number
CN201210044565.0A
Other languages
English (en)
Other versions
CN102595504A (zh
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.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
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 Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201210044565.0A priority Critical patent/CN102595504B/zh
Publication of CN102595504A publication Critical patent/CN102595504A/zh
Application granted granted Critical
Publication of CN102595504B publication Critical patent/CN102595504B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于链路拥塞度的动态多径OLSR路由方法,在原有OLSR路由算法的基础上,首先引入链路拥塞度信息来反映节点的负载状况,节点在转发数据前需参考下一跳节点的负载状况,使得该方法具有负载自适应性;其次,引入多径机制,并将其与链路拥塞度信息相融合,提出基于链路拥塞度的动态多径机制,该机制结合了按需路由的思想,在链路拥塞度信息、源节点到目的节点的数据传输量大小以及源节点一跳范围内的局部区域负载满足一定条件时动态启用多径机制按需地进行路由发现,路由发现过程可自动避开负载过重节点。采用此方法可以平衡网络负载、避免或缓解链路拥塞、增大网络吞吐量、减少端到端延时、延长网络生存时间。

Description

一种基于链路拥塞度的动态多径OLSR路由方法
技术领域
本发明涉及一种移动Ad Hoc网络的路由方法,特别是涉及一种基于链路拥塞度的动态多径OLSR路由方法。
背景技术
移动Ad Hoc网络(移动自组织网络),又称MANET(Mobile Ad Hoc Networks),是由多个带有无线收发信装置的移动节点组成的一个无线移动通信网络,它本身是临时组建的,不依赖于任何固定的基础设施。网络中的各节点之间地位平等,都参与路由发现与路由维护。移动Ad Hoc网络比有中心的无线网络更坚固耐用、具有更高的抗毁性,比较适用于会议、战场、抢险、救援、探险、危险环境中的目标监控等临时场合的通信。因此,对移动Ad Hoc网络进行研究具有重要的意义。
最优链路状态路由协议(Optimized Link State Routing Protocol,OLSR)是由因特网工程任务组(Internet Engineering Task Force,IETF)MANET工作组为无线移动Ad Hoc网络提出的一种标准化的表驱动式优化链路状态路由协议,它是为了适应无线移动自组织网的需求,对纯链路状态路由算法进行优化而形成的。OLSR实质上是先应式路由,网络中每个节点实时维护到其他节点的路由,所以在数据转发之前节点的路由表中就已经存在到目的节点的路由,这使得OLSR路由协议具有寻路时延小的优点。
OLSR路由表中存储的是单径路由信息,然而单径路由很容易造成一条路径的过度使用,这不但会导致拥塞的产生,还会导致该路径上的节点由于能量的过度消耗而失效,发生链路中断,导致拓扑结构变化;而多径路由采用多条路径进行数据量分流,将原本集中在一条路径上的负载分配到多条路径上,这样不仅可以缓解拥塞,平衡网络负载,而且还能降低由于能量消耗殆尽导致的网络分割或拓扑变化发生的概率。因此,研究OLSR多径路由协议具有重要意义。但是,多径机制下要提高网络性能必然增加节点开销,表驱动路由协议若为每个节点计算并保存到达所有其他节点的多条路径,则随着节点数目的增长,仅仅一次路由更新的开销都将是巨大的,因此,本专利的重点主要集中在保持OLSR路由协议中多径路由机制优点的基础上降低多径机制在表驱动路由协议中的开销上。
发明内容
本发明提出基于链路拥塞度的动态多径OLSR路由方法(Link CongestionDegree based Dynamic Multipath OLSR,LCDDM-OLSR),目的是在传统OLSR路由协议的基础上,通过融合链路拥塞度信息和多径机制,减少网络中拥塞的发生。本发明首先引入链路拥塞度信息来反映节点的负载状况,在节点转发数据前参考下一跳节点的负载状况,使得LCDDM-OLSR路由方法具有负载自适应性;其次,引入多径机制,并将其与链路拥塞度信息相融合,提出基于链路拥塞度的动态多径机制,该机制结合了按需路由的思想,在链路拥塞度信息、源节点到目的节点的数据传输量大小以及源节点一跳范围内的局部区域负载满足一定条件时动态启用多径机制按需地进行路由发现,路由发现过程可自动避开负载过重节点。在规模较大的网络环境中,动态多径机制能够明显减少传统多径机制在表驱动路由协议中的路由更新与维护开销。在多径机制启用之前,节点仍然采用单径机制进行数据转发。
实现本发明目的的技术解决方案为:
(1)引入链路拥塞度信息LCD(Link Congestion Degree)来反映节点的负载状况。链路拥塞度指的是节点MAC层接口缓存队列中已被占用空间与总空间的比值,即是所有未处理消息的总字节数与缓存队列容量字节数的比值,通过MAC层为网络层提供的服务接口可以获得MAC层缓存队列中已被占用空间大小以及队列总空间大小,继而计算出LCD值。
为LCD设定一个阈值Ta,Ta∈(0,1)。若LCD∈(0,Ta],则称该节点为负载正常节点;若LCD∈(Ta,1),则称该节点为即将拥塞节点,如果节点继续接收数据,那么缓冲区就会被占满,之后到来的数据包就会被丢弃;若LCD=1,则该节点为拥塞节点。
(2)对于要传输的数据而言,节点分为源节点、中间节点与目的节点。源节点是产生数据的节点,中间节点是转发数据的节点,目的节点是最终接收数据的节点。传输数据时源节点执行的是源节点路由算法,中间节点执行的是中间节点路由算法,目的节点收到数据后交付应用层进行处理。
当源节点满足多径机制的启用条件时动态启用多径机制,而中间节点采用的永远是单径机制。其中,多径机制的启用条件包括原路由下一跳节点LCD∈(Ta,1]、源节点到目的节点的同批数据量大小超过下一跳节点缓存队列总空间大小以及源节点所在的一跳范围的局部区域负载正常。
对于源节点所在的一跳范围的局部区域负载情况,引入平均链路拥塞度来反映,是节点自身的拥塞度及其所有邻居节点拥塞度的平均值,其计算方法如公式(1)所示。
LCD ‾ = 1 m + 1 ( LCD ( node ) + Σ i = 1 m LCD ( neighbour i ) ) - - - ( 1 )
其中m为节点node的邻居节点数目,LCD(node)为节点node的拥塞度,LCD(neighbouri)为节点node的第i个邻居节点neighbouri的拥塞度。
设定一个阈值Tb,Tb∈(0,1)。若则认为节点一跳范围内的局部区域负载过重,发生拥塞的可能性较高,因此不适合采用新的路由发现机制以免进一步加重网路负载,导致拥塞;否则,认为一跳范围内的局部区域负载正常,存在某一个或某几个邻居节点其负载较轻,可以通过它们寻找新的无拥塞路径以平衡网络负载,缓解拥塞状况。
(3)当源节点原路由下一跳节点负载过重而又达不到多径机制的启用条件时,启用旁路路由机制寻找可以避开下一跳即将拥塞节点的无拥塞旁路来代替原路由进行数据转发。中间节点的下一跳节点负载过重时,也采用旁路路由机制。这里的节点负载过重指的是LCD值大于Ta
本发明所涉及的数据结构介绍如下。
节点在原有OLSR协议的基础上,需要附加存储的表结构如下。
1)局部拥塞度表,格式为<节点地址,节点链路拥塞度LCD>。该表格中第一项用于记录节点自身的拥塞度信息,会定时计算更新,后面各项用于记录邻居节点的拥塞度信息,会根据来自邻居节点的Hello消息所携带的LCD值更新。
2)路由请求表,格式为<源节点地址,路由请求序列号,标志>。该表格用于保存最近收到的路由请求分组信息。
3)路由应答表,格式为<目的节点地址,路由请求序列号,标志>。该表格用于保存最近收到的路由应答分组信息。其中路由请求序列号为与该路由应答分组相对应的路由请求分组携带的路由请求序列号。
4)源路由缓存表,格式为<目的节点地址,到目的节点的完整节点地址序列,路径条目生存周期>。该表格用于保存旁路路由机制和多径路由机制寻找到的可达目的节点的无拥塞路径。每个路由条目都设有生存时间,定时删除,以保证所存路径的无拥塞性。
在原有OLSR协议的基础上,需要修改的消息格式如下。
1)将原有OLSR协议Hello消息8比特的保留字段更改为LCD字段,用于携带链路拥塞度信息,其它字段与原有OLSR协议相同。
2)路由请求分组和应答分组是在原有DSR协议的基础上,添加了一个标志Flag,用于标识产生路由请求分组的节点进行的路由发现是多径路由发现还是旁路路由发现。Flag=0为旁路路由发现,Flag=1为多径路由发现。
本发明路由方法的总体流程如下。
1)源节点要发送数据时,先查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在则表示目的节点不可达,不进行数据发送,结束;若存在路径,查看本地维护的局部拥塞度表中路径的下一跳节点的链路拥塞度LCD,若LCD≤Ta,Ta是LCD的阈值且Ta∈(0,1),则按照查找到的路径转发数据;否则转到(2);
2)若源节点到目的节点的数据量大小超过下一跳节点缓存队列总空间大小,则转到(3),否则转到(5);
3)查找本地源路由缓存表,若有到目的节点的多条路由记录,则使用这些记录中的前N条路由进行并行数据转发,N是预先设定的路径条数;否则转到(4);
4)计算源节点所在的一跳范围的平均链路拥塞度Tb的阈值且Tb∈(0,1),则启用多径路由机制寻找多条无拥塞不相交多径,并使用多条路径进行并行数据转发;否则,降低发送速率;
5)查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据转发;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
6)中间节点收到数据分组时,先查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在,丢弃数据分组,结束;若存在路径,查看本地维护的下一跳节点的链路拥塞度LCD,若LCD≤Ta,则按照查找到的路径转发数据;若LCD>Ta,查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据发送;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
7)后续转发数据的中间节点按照步骤(3)继续转发数据,直至数据包到达目的节点。
本发明与现有技术相比,其显著优点:本发明在保留多径机制本身的平衡网络负载、避免或缓解拥塞、增大网络吞吐量、减少端到端延时等优点的基础上,采用动态多径机制,只在满足启用条件时按需地进行多径路由发现与路由维护,大大降低多径机制在表驱动路由协议中路由更新与维护开销。同时,采用链路拥塞度信息、源节点到目的节点的数据传输量大小以及源节点一跳范围内的局部区域负载作为多径机制的启用条件,使得动态多径机制更加高效。另外,按需路由发现过程自动避开负载过重节点,使其不参与之后的数据转发,可以进一步平衡网络负载,避免或缓解拥塞。
附图说明
图1是本发明Hello消息结构示意图。
图2是本发明路由请求分组格式示意图。
图3是本发明路由应答分组格式示意图。
图4是本发明源节点路由算法流程图。
图5是本发明中间节点路由算法流程图。
图6是本发明旁路路由机制算法流程图。
图7是本发明多径路由机制算法流程图。
图8是本发明路由请求分组的处理流程图。
图9是本发明路由应答分组的处理流程图。
具体实施方式
本发明一种基于链路拥塞度的动态多径OLSR路由方法,
(1)源节点要发送数据时,先查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在则表示目的节点不可达,不进行数据发送,结束;若存在路径,查看本地维护的局部拥塞度表中路径的下一跳节点的链路拥塞度LCD,若LCD≤Ta,Ta是LCD的阈值且Ta∈(0,1),则按照查找到的路径转发数据;否则转到步骤(2);
(2)若源节点到目的节点的数据量大小超过下一跳节点缓存队列总空间大小,则转到步骤(3),否则转到步骤(5);
(3)查找本地源路由缓存表,若有到目的节点的多条路由记录,则使用这些记录中的前N条路由进行并行数据转发,N是预先设定的路径条数;否则转到步骤(4);
(4)计算源节点所在的一跳范围的平均链路拥塞度Tb的阈值且Tb∈(0,1),则启用多径路由机制寻找多条无拥塞不相交多径,并使用多条路径进行并行数据转发;否则,降低发送速率;
(5)查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据转发;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
(6)中间节点收到数据分组时,先查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在,丢弃数据分组,结束;若存在路径,查看本地维护的下一跳节点的链路拥塞度LCD,若LCD≤Ta,则按照查找到的路径转发数据;若LCD>Ta,查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据发送;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
(7)后续转发数据的中间节点按照步骤(3)继续转发数据,直至数据包到达目的节点。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,所述链路拥塞度LCD是节点MAC层接口缓存队列中已被占用空间与总空间的比值,即是所有未处理消息的总字节数与缓存队列容量字节数的比值;平均链路拥塞度反映节点所在的一跳范围的局部区域负载情况,是节点自身的拥塞度及其所有邻居节点拥塞度的平均值,其计算方法如公式(1)所示:
LCD &OverBar; = 1 m + 1 ( LCD ( node ) + &Sigma; i = 1 m LCD ( neighbour i ) ) - - - ( 2 )
其中m为节点node的邻居节点数目,LCD(node)为节点node的拥塞度,LCD(neighbouri)为节点node的第i个邻居节点neighbouri的拥塞度。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,
节点在原有OLSR协议的基础上,需要附加存储的表结构如下:
1)局部拥塞度表,格式为<节点地址,节点链路拥塞度LCD>;该表格中第一项用于记录节点自身的拥塞度信息,会定时计算更新,后面各项用于记录邻居节点的拥塞度信息,会根据来自邻居节点的Hello消息所携带的LCD值更新;
2)路由请求表,格式为<源节点地址,路由请求序列号,标志>;该表格用于保存最近收到的路由请求分组信息;
3)路由应答表,格式为<目的节点地址,路由请求序列号,标志>;该表格用于保存最近收到的路由应答分组信息;其中路由请求序列号为与该路由应答分组相对应的路由请求分组携带的路由请求序列号;
4)源路由缓存表,格式为<目的节点地址,到目的节点的完整节点地址序列,路径条目生存周期>;该表格用于保存旁路路由机制和多径路由机制寻找到的可达目的节点的无拥塞路径;每个路由条目均设有生存时间;
在原有OLSR协议的基础上,需要修改的消息格式如下:
5)将原有OLSR协议Hello消息8比特的保留字段更改为LCD字段,用于携带链路拥塞度信息,其它字段与原有OLSR协议相同;
6)路由请求分组和应答分组是在原有DSR协议的基础上,添加了一个标志Flag,用于标识产生路由请求分组的节点进行的路由发现是多径路由发现还是旁路路由发现;Flag=0为旁路路由发现,Flag=1为多径路由发现。
本发明基于链路拥塞度的动态多径OLSR路由方法,N表示预先设定的路径条数且N>1,n表示已经找到的路径条数且初值为0,多径路由机制的具体步骤如下:
(1)源节点启用多径路由发现过程,构造并向周围广播路由请求分组RREQ,同时启用计时器对路由发现过程进行计时,转到(2);
(2)判断计时器是否计时结束,若计时结束,转到(3),否则转到(6);
(3)查看n大小,若n=0,则路由发现失败,转到(4),否则用n条路径进行并行数据传输,结束;
(4)查看OLSR路由表中原路由是否仍然存在,若存在转到(5),否则不进行数据发送,结束;
(5)查看下一跳节点的LCD,若LCD≤Ta,则用原路由发送数据,结束;否则,降低发送速率,结束;
(6)查看是否收到路由应答分组RREP,若是,转到(7),否则转到(2);
(7)将RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并将找到的路径条数n加1,转到(8);
(8)若n<N,转到(2),否则用N条路径进行并行数据传输,结束;
其中,并行数据传输采用加权循环调度算法将数据流分配到多条不同的路径上进行传输。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,所述旁路路由机制的具体步骤如下:
(1)启用路由发现过程,向周围广播路由请求分组RREQ,同时启用计时器,对路由发现过程进行计时,转到(2);
(2)若在计时时间内收到路由应答分组RREP,转到(3),否则路由发现失败,转到(4);
(3)将该RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并采用源路由缓存表中的路由进行数据转发,结束;
(4)查看OLSR路由表中原路由是否仍然存在,若存在,转到(5),否则丢弃数据包,结束;
(5)查看原路由下一跳节点LCD,若等于1,则降低发送速率,结束;否则,按照原路由转发数据,结束。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,所述路由请求分组RREQ的处理流程如下:
(1)查看本节点的链路拥塞度信息,若LCD≤Ta,转到(2);否则不转发RREQ而直接丢弃,结束;
(2)查看该RREQ的Flag字段值,若为0,按照旁路路由请求分组处理算法进行处理,结束;若为1,按照多径路由请求分组处理算法进行处理,结束。
本发明基于链路拥塞度的动态多径OLSR路由方法,所述旁路路由请求分组的处理算法如下:
(1)检查路由请求表中是否已经有该RREQ分组的记录,若有,则直接丢弃,结束;否则转到(2);
(2)若RREQ的目的节点为节点本身,则构造并向源节点发送路由应答分组RREP,结束;否则在RREQ中加入本节点地址并继续转发该RREQ,结束。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,所述多径路由请求分组处理算法如下:
(1)若路由请求分组的目的节点为节点本身,则构造并发送路由应答分组RREP,结束;否则转到(2);
(2)检查路由请求表中是否已经有该RREQ分组的记录,若有,则直接丢弃,结束;否则在RREQ中加入该节点地址并继续转发该RREQ,结束。
本发明一种基于链路拥塞度的动态多径OLSR路由方法,所述路由应答分组RREP的处理流程如下:
(1)查看该节点是否为路由应答分组RREP的目的节点,若是,则保存RREP中携带的路由信息,结束;否则转到(2);
(2)查看RREP的Flag字段,若Flag=0,转发该RREP,结束;否则,转到(3);
(3)查看路由应答表,若路由应答表中已经记录有该RREP,丢弃该RREP,结束;否则,转发RREP,结束。
下面结合附图进一步详细说明本发明。
图1是Hello消息格式示意图。本发明在原有OLSR协议Hello消息格式的基础上,将原来的8比特的保留字段更改为LCD字段,用于携带链路拥塞度信息,其它字段与原有OLSR协议一样。节点在计算出自己的LCD值后只取小数点后两位再乘以100放到Hello消息中。这样,Hello消息中LCD字段的取值为0~100,节点收到Hello消息后取出LCD字段的值除以100写入局部拥塞度表中。本发明只对Hello消息一个字段内容作了修改,在没有增加任何额外控制开销的基础上,将本节点的链路拥塞度扩散出去。
图2和图3分别是本发明的路由请求分组和应答分组的格式示意图。本发明在原有DSR协议的路由请求和应答分组基础上,添加了一个标志Flag,用于标识产生路由请求分组的节点进行的路由发现是多径路由发现还是旁路路由发现,Flag=0为旁路路由发现,Flag=1为多径路由发现。另外,由于收到路由请求分组RREQ的中间节点不构造路由应答分组RREP,而只由目的节点构造RREP,那么RREP返回到RREQ源节点需要经过的节点序列将恰好是RREP源路由记录中从源节点到目的节点的完整节点序列的反序。
图4是源节点路由算法流程图。产生数据的节点执行源节点路由算法,其具体步骤如下。
(1)查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在则表示目的节点不可达,不进行数据发送,结束;若存在路径,则转到(2);
(2)查看本地维护的局部拥塞度表中路径的下一跳节点的拥塞度LCD,若LCD≤Ta,则按照原路径转发数据,结束;否则转到(3);
(3)若源节点到目的节点的数据量大小超过下一跳节点缓存队列总空间大小(同构网络中所有节点缓存队列容量相等,则下一跳节点缓存队列容量等于本节点缓存队列容量,本节点通过MAC层为网络层提供的服务接口就可以获得其缓存队列容量),则转到(4),否则,转到(6);
(4)查找本地源路由缓存表,若有到目的节点的多条路由记录,则使用这些记录中的前n条(n≤N)路由进行并行数据传输,结束;否则转到(5);
(5)计算源节点一跳范围内的局部区域的平均链路拥塞度。若>Tb,降低源节点发送速率,结束;否则,启用多径路由机制进行路径发现与数据发送,结束;
(6)查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据发送,结束;否则,启用旁路路由机制,寻找到目的节点的一条旁路进行数据发送,结束。
图5是中间节点路由算法流程图。数据传输过程中进行数据转发的中间节点执行中间节点路由算法,其具体步骤如下。
(1)提取数据分组中的目的节点地址,查找本地OLSR路由表中是否已经存在到达目的节点的路由,若没有表示路由已经失效,链路发生中断,丢弃数据分组,结束;若有路径,则转到(2);
(2)查看本地维护的下一跳节点的链路拥塞度LCD,若LCD≤Ta,则按照查找到的路径转发数据,结束;否则转到(3);
(3)查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据发送,结束;否则,启用旁路路由机制,寻找到目的节点的一条旁路进行数据发送,结束。
图6是旁路路由机制算法流程图。旁路路由机制的目的是寻找一条可以避开下一跳负载过重节点的到目的节点的无拥塞旁路代替原路由进行数据转发,其具体步骤如下。
(6)启用路由发现过程,向周围广播路由请求分组RREQ,同时启用计时器,对路由发现过程进行计时,转到(2);
(7)若在计时时间内收到路由应答分组RREP,转到(3),否则路由发现失败,转到(4);
(8)将该RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并采用源路由缓存表中的路由进行数据转发,结束;
(9)查看OLSR路由表中原路由是否仍然存在,若存在,转到(5),否则丢弃数据包,结束;
(10)查看原路由下一跳节点LCD,若等于1,则降低发送速率,结束;否则,按照原路由转发数据,结束。
图7是多径路由机制算法流程图。多径路由机制的目的是寻找可以避开下一跳即将拥塞节点到达目的节点的多条无拥塞路径(路径条数为N,N>1)进行数据发送,用n表示已经找到的路径数,其初值为0。多径路由机制的具体步骤如下。
(9)源节点启用多径路由发现过程,构造并向周围广播路由请求分组RREQ,同时启用计时器对路由发现过程进行计时,转到(2);
(10)判断计时器是否计时结束,若计时结束,转到(3),否则转到(6);
(11)查看n大小,若n=0,则路由发现失败,转到(4),否则用n条路径进行并行数据传输,结束;
(12)查看OLSR路由表中原路由是否仍然存在,若存在转到(5),否则不进行数据发送,结束;
(13)查看下一跳节点的LCD,若LCD≤Ta,则用原路由发送数据,结束;否则,降低发送速率,结束;
(14)查看是否收到路由应答分组RREP,若是,转到(7),否则转到(2);
(15)将RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并将找到的路径条数n加1,转到(8);
(16)若n<N,转到(2),否则用N条路径进行并行的数据传输,结束。
其中,并行数据传输采用加权循环调度算法将数据流分配到多条不同的路径上进行传输。
图8是路由请求分组RREQ的处理流程图。在源路由发现的过程中,中间节点可能会重复收到同一个RREQ,为了对此进行检测以免重复处理RREQ,每个节点需要维护路由请求表,用于保存最近收到的路由请求分组的<源节点地址,路由请求序列号,标志>,节点在收到RREQ后要先检查路由请求表中是否有对应的记录,若有,说明已经接收并处理过该RREQ,直接丢弃即可;若没有,则将该RREQ分组记录到路由请求表中,并采用如下的算法进行处理。
(3)查看本节点的链路拥塞度信息,若LCD≤Ta,转到(2);否则该节点为即将拥塞节点或者拥塞节点,不转发RREQ而直接丢弃,结束;
(4)查看该RREQ的Flag字段值,若为0,说明该RREQ为旁路路由请求分组,按照旁路路由请求分组处理算法进行处理,结束;若为1,说明该RREQ为多径路由请求分组,按照多径路由请求分组处理算法进行处理,结束。
其中旁路路由请求分组的处理算法如下。
(3)检查路由请求表中是否已经有该RREQ分组的记录,若有,说明已经接收并处理过该路由请求分组,直接丢弃,结束;否则转到(2);
(4)若RREQ的目的节点为节点本身,则构造并向源节点发送路由应答分组RREP,结束;否则在RREQ中加入本节点地址并继续转发该RREQ,结束。
多径路由请求分组处理算法如下。
(3)若路由请求分组的目的节点为节点本身,则构造并发送路由应答分组RREP,结束;否则转到(2);
(4)检查路由请求表中是否已经有该RREQ分组的记录,若有,说明已经接收并处理过该路由请求分组,直接丢弃,结束;否则在RREQ中加入该节点地址并继续转发该RREQ,结束。
图9是路由应答分组的处理流程图。节点收到路由应答分组RREP后,需要根据Flag的不同取值进行不同的处理。为了保证多径路由发现的多条路径节点不相交,每个节点需要维护一张路由应答表,用于保存最近收到的RREP的<目的节点地址,路由请求序列号,标志>,其中路由请求序列号为与该路由应答分组相对应的路由请求分组携带的路由请求序列号。节点在收到RREP后采用如下的算法进行处理。
(4)查看该节点是否为路由应答分组RREP的目的节点,若是,则保存RREP中携带的路由信息,结束;否则转到(2);
(5)查看RREP的Flag字段,若Flag=0,表示该RREP为旁路路由应答分组,转发该RREP,结束;否则,转到(3);
(6)查看路由应答表,若路由应答表中已经记录有该RREP,说明在多条路径中出现了相交节点,本发明考虑使用节点不相交多径,故丢弃该RREP,结束;否则,转发RREP,结束。

Claims (9)

1.一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:
1)源节点要发送数据时,先查看本地最优链路状态路由协议OLSR路由表中是否已经存在到达目的节点的路径,若不存在则表示目的节点不可达,不进行数据发送,结束;若存在路径,查看本地维护的局部拥塞度表中路径的下一跳节点的链路拥塞度LCD,若LCD≤Ta,Ta是LCD的阈值且Ta∈(0,1),则按照查找到的路径转发数据;否则转到步骤(2);
2)若源节点到目的节点的数据量大小超过下一跳节点缓存队列总空间大小,则转到步骤(3),否则转到步骤(5);
3)查找本地源路由缓存表,若有到目的节点的多条路由记录,则使用这些记录中的前N条路由进行并行数据转发,N是预先设定的路径条数;否则转到步骤(4);
4)计算源节点所在的一跳范围的平均链路拥塞度Tb的阈值且Tb∈(0,1),则启用多径路由机制寻找多条无拥塞不相交多径,并使用多条路径进行并行数据转发;否则,降低发送速率;
5)查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据转发;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
6)中间节点收到数据分组时,先查看本地OLSR路由表中是否已经存在到达目的节点的路径,若不存在,丢弃数据分组,结束;若存在路径,查看本地维护的下一跳节点的链路拥塞度LCD,若LCD≤Ta,则按照查找到的路径转发数据;若LCD>Ta,查找本地源路由缓存表,若有到目的节点的路由记录,则使用表中第一条记录中的路由进行数据发送;否则,启用旁路路由机制寻找到目的节点的一条旁路进行数据转发;
7)后续转发数据的中间节点按照步骤(3)继续转发数据,直至数据包到达目的节点。
2.根据权利要求1所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:所述链路拥塞度LCD是节点MAC层接口缓存队列中已被占用空间与总空间的比值,即是所有未处理消息的总字节数与缓存队列容量字节数的比值;平均链路拥塞度反映节点所在的一跳范围的局部区域负载情况,是节点自身的拥塞度及其所有邻居节点拥塞度的平均值,其计算方法如公式(1)所示:
LCD &OverBar; = 1 m + 1 ( LCD ( node ) + &Sigma; i = 1 m LCD ( neighbour i ) ) - - - ( 1 )
其中m为节点node的邻居节点数目,LCD(node)为节点node的拥塞度,LCD(neighbouri)为节点node的第i个邻居节点neighbouri的拥塞度。
3.根据权利要求1所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:
节点在原有OLSR协议的基础上,需要附加存储的表结构如下:
1)局部拥塞度表,格式为<节点地址,节点链路拥塞度LCD>;局部拥塞度表中第一项用于记录节点自身的拥塞度信息,会定时计算更新,后面各项用于记录邻居节点的拥塞度信息,会根据来自邻居节点的Hello消息所携带的LCD值更新;
2)路由请求表,格式为<源节点地址,路由请求序列号,标志>;路由请求表用于保存最近收到的路由请求分组信息;
3)路由应答表,格式为<目的节点地址,路由请求序列号,标志>;路由应答表用于保存最近收到的路由应答分组信息;其中路由请求序列号为与该路由应答分组相对应的路由请求分组携带的路由请求序列号;
4)源路由缓存表,格式为<目的节点地址,到目的节点的完整节点地址序列,路径条目生存周期>;源路由缓存表用于保存旁路路由机制和多径路由机制寻找到的可达目的节点的无拥塞路径;每个路由条目均设有生存时间;
在原有OLSR协议的基础上,需要修改的消息格式如下:
1)将原有OLSR协议Hello消息8比特的保留字段更改为LCD字段,用于携带链路拥塞度信息,其它字段与原有OLSR协议相同;
2)路由请求分组和应答分组是在原有动态源路由协议DSR协议的基础上,添加了一个标志Flag,用于标识产生路由请求分组的节点进行的路由发现是多径路由发现还是旁路路由发现;Flag=0为旁路路由发现,Flag=1为多径路由发现。
4.根据权利要求1所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:N表示预先设定的路径条数且N>1,n表示已经找到的路径条数且初值为0,多径路由机制的具体步骤如下:
(1)源节点启用多径路由发现过程,构造并向周围广播路由请求分组RREQ,同时启用计时器对路由发现过程进行计时,转到(2);
(2)判断计时器是否计时结束,若计时结束,转到(3),否则转到(6);
(3)查看n大小,若n=0,则路由发现失败,转到(4),否则用n条路径进行并行数据传输,结束;
(4)查看OLSR路由表中原路由是否仍然存在,若存在转到(5),否则不进行数据发送,结束;
(5)查看下一跳节点的LCD,若LCD≤Ta,则用原路由发送数据,结束;否则,降低发送速率,结束;
(6)查看是否收到路由应答分组RREP,若是,转到(7),否则转到(2);
(7)将RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并将找到的路径条数n加1,转到(8);
(8)若n<N,转到(2),否则用N条路径进行并行数据传输,结束;
其中,并行数据传输采用加权循环调度算法将数据流分配到多条不同的路径上进行传输。
5.根据权利要求1所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:所述旁路路由机制的具体步骤如下:
a)启用路由发现过程,向周围广播路由请求分组RREQ,同时启用计时器,对路由发现过程进行计时,转到b);
b)若在计时时间内收到路由应答分组RREP,转到c),否则路由发现失败,转到d);
c)将该RREP中“应答分组路由”字段携带的路由信息保存到源路由缓存表中,并采用源路由缓存表中的路由进行数据转发,结束;
d)查看OLSR路由表中原路由是否仍然存在,若存在,转到e),否则丢弃数据包,结束;
e)查看原路由下一跳节点LCD,若等于1,则降低发送速率,结束;否则,按照原路由转发数据,结束。
6.根据权利要求4或5所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:所述路由请求分组RREQ的处理流程如下:
A.查看本节点的链路拥塞度信息,若LCD≤Ta,转到A;否则不转发RREQ而直接丢弃,结束;
B.查看该RREQ的Flag字段值,若为0,按照旁路路由请求分组处理算法进行处理,结束;若为1,按照多径路由请求分组处理算法进行处理,结束。
7.根据权利要求6所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:所述旁路路由请求分组的处理算法如下:
i.检查路由请求表中是否已经有该RREQ分组的记录,若有,则直接丢弃,结束;否则转到ii;
ii.若RREQ的目的节点为节点本身,则构造并向源节点发送路由应答分组RREP,结束;否则在RREQ中加入本节点地址并继续转发该RREQ,结束。
8.根据权利要求6所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:所述多径路由请求分组处理算法如下:
一、若路由请求分组的目的节点为节点本身,则构造并发送路由应答分组RREP,结束;否则转到二;
二、检查路由请求表中是否已经有该RREQ分组的记录,若有,则直接丢弃,结束;否则在RREQ中加入该节点地址并继续转发该RREQ,结束。
9.根据权利要求4或5所述的一种基于链路拥塞度的动态多径OLSR路由方法,其特征在于:
所述路由应答分组RREP的处理流程如下:
(一)查看该节点是否为路由应答分组RREP的目的节点,若是,则保存RREP中携带的路由信息,结束;否则转到(二);
(二)查看RREP的Flag字段,若Flag=0,转发该RREP,结束;否则,转到(三);
(三)查看路由应答表,若路由应答表中已经记录有该RREP,丢弃该RREP,结束;否则,转发RREP,结束。
CN201210044565.0A 2012-02-24 2012-02-24 一种基于链路拥塞度的动态多径olsr路由方法 Expired - Fee Related CN102595504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210044565.0A CN102595504B (zh) 2012-02-24 2012-02-24 一种基于链路拥塞度的动态多径olsr路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210044565.0A CN102595504B (zh) 2012-02-24 2012-02-24 一种基于链路拥塞度的动态多径olsr路由方法

Publications (2)

Publication Number Publication Date
CN102595504A CN102595504A (zh) 2012-07-18
CN102595504B true CN102595504B (zh) 2014-11-12

Family

ID=46483603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210044565.0A Expired - Fee Related CN102595504B (zh) 2012-02-24 2012-02-24 一种基于链路拥塞度的动态多径olsr路由方法

Country Status (1)

Country Link
CN (1) CN102595504B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312603B (zh) * 2013-05-29 2017-02-15 龙芯中科技术有限公司 网络拥塞信息传输方法和装置
TWI513260B (zh) * 2013-12-13 2015-12-11 Inventec Corp 路由控制方法與裝置
CN104754649B (zh) * 2015-03-06 2019-03-26 广州杰赛科技股份有限公司 一种数据传输方法与无线Mesh节点
CN105007570B (zh) * 2015-06-19 2018-11-20 北京理工大学 一种基于olsr协议的移动自组织网络拥塞控制方法
CN105764084A (zh) * 2016-02-05 2016-07-13 南京邮电大学 一种无线传感网多径路由协议的实现方法
CN108306827B (zh) * 2017-01-12 2021-06-01 华为技术有限公司 传输数据的方法和服务器
US10455012B2 (en) * 2017-02-10 2019-10-22 Sony Corporation Routes discovery in wireless networks with directional transmissions
CN109104366B (zh) * 2018-08-29 2020-10-16 重庆大学 一种链路持续时间计算方法、mpr节点选择方法及路由协议
CN109639588B (zh) * 2019-01-22 2022-08-30 中国人民解放军空军工程大学 一种面向航空集群的网络拥塞控制路由方法
CN109818866B (zh) * 2019-03-22 2021-04-16 武汉大学 一种能量意识和多维参数感知的服务质量保障路由方法
CN111600752B (zh) * 2020-05-12 2022-08-02 广东电网有限责任公司电力调度控制中心 一种电力通信业务可靠性优化方法及相关装置
CN112533262B (zh) * 2020-10-15 2022-12-30 广州大学 一种可充电无线传感器网络的多路径按需路由方法
CN113891399B (zh) * 2021-10-13 2023-08-01 北京慧清科技有限公司 一种面向负载均衡的多径加权调度olsr路由方法
CN114598398B (zh) * 2022-02-22 2023-12-22 中国船舶重工集团公司第七一五研究所 基于自适应重传的水声网络数据传输方法
CN115150914A (zh) * 2022-06-23 2022-10-04 四川大学 一种基于多径路由的高效路由机制

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1788509A (zh) * 2003-03-27 2006-06-14 哈里公司 建立通信链路,估计定向链路的总体质量,并向通信系统中的olsr报告的方法和设备
CN101110784A (zh) * 2007-09-05 2008-01-23 杭州华三通信技术有限公司 一种无线网状网中混合路由方法及设备
CN101765178A (zh) * 2008-12-25 2010-06-30 上海寰创通信科技有限公司 一种用于无线mesh网络的多径路由的通讯方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074177A (ja) * 2005-09-06 2007-03-22 Hitachi Ltd モバイルアドホックネットワークシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1788509A (zh) * 2003-03-27 2006-06-14 哈里公司 建立通信链路,估计定向链路的总体质量,并向通信系统中的olsr报告的方法和设备
CN101110784A (zh) * 2007-09-05 2008-01-23 杭州华三通信技术有限公司 一种无线网状网中混合路由方法及设备
CN101765178A (zh) * 2008-12-25 2010-06-30 上海寰创通信科技有限公司 一种用于无线mesh网络的多径路由的通讯方法

Also Published As

Publication number Publication date
CN102595504A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102595504B (zh) 一种基于链路拥塞度的动态多径olsr路由方法
CN100399772C (zh) 基于负载均衡的自组网并发多径路由方法
CN101415248B (zh) 基于负载均衡的跨层动态源路由协议的建立方法
CN101420379B (zh) 一种移动ad hoc网络低开销多路径路由方法
CN104010289B (zh) 一种无线自组网邻居节点相互发现的通信方法
CN103476086B (zh) 基于节点拥塞度预测的动态多径aodv路由方法
CN101568164B (zh) 一种Ad hoc网络机会路由的实现方法
CN101932062B (zh) 一种Ad Hoc网络环境下的多路径路由方法
Chaba et al. Simulation based performance analysis of on-demand routing protocols in MANETs
CN103856399B (zh) 一种基于稳定性的Ad Hoc备份路由算法
CN103402234B (zh) 一种无线传感器网络数据汇聚方法
CN101594379A (zh) 一种无线传感器网络中的能量有效性机会路由协议
CN106851727A (zh) 基于多路径路由协议实现自组网拥塞控制的方法
Yitayal et al. A balanced battery usage routing protocol to maximize network lifetime of MANET based on AODV
CN107846706A (zh) 一种拥塞避免的编码感知无线mesh网络多路径路由方法
JP2012217164A5 (zh)
CN104009913A (zh) 移动Ad Hoc网络中基于距离和能量均衡的广播方法
CN102170660A (zh) 一种以aodv为基础的多路径路由的建立方法和系统
CN108495338A (zh) 应用于tdma自组网的跨层路由协议实现方法
CN102802230A (zh) 一种能量高效的无线传感器网络路由算法
CN108449271A (zh) 一种监测路径节点能量和队列长度的路由方法
CN114339661A (zh) 基于鲸鱼优化的飞行器自组织网络多径路由机制
CN101309217B (zh) 一种基于双向路由重建的ad hoc的网络多径路由方法
CN103298057A (zh) 基于ZigBee技术的并发多径路由方法
CN105636144A (zh) 一种延长zigbee网络生命周期的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141112

Termination date: 20170224

CF01 Termination of patent right due to non-payment of annual fee