一种具备优化网络负载的路由控制器的制作方法

文档序号:15297280发布日期:2018-08-31 19:35阅读:106来源:国知局

本发明涉及无线网络路由算法技术领域,特别涉及一种具备优化网络负载的路由控制器。



背景技术:

在无线网络中,每个节点除了发送自身的数据外还需承担其他节点数据的转发任务,这会导致每个节点电量消耗的速率不一致。整个网络拓扑的运行时间取决于最先耗尽电量的节点的工作时间。因此在构建整个网络的路由结构时有必要考虑路由上每个节点的电量情况,尽可能减少电量低于平均水平的节点的数据转发任务。另外,ieee802.15.4规定在无线传输过程中数据包的长度不应大于127字节。在采用8字节64位地址格式的情况中,数据链路层、网络层和传输层开销(包括8字节源、目的物理地址,8字节源、目的网络地址,1字节路由剩余跳数,1字节数据包类型,4字节传输序列号,2字节校验)将占用40字节。如果采用简单的aodv路由算法进行路由探索,假设rreq包每经过一个节点需要添加当前节点的8字节地址和4字节节点信息,则只能进行7跳以内的路由探索。如果由于协议字段更加复杂导致固定或动态开销增加,会更加限制网络拓扑的规模。

综合考虑路径可靠性和消耗功率,通过挖掘能量和链路关联性,并结合有效能量机制和路径的可靠性的问题,提出路径代价平衡预测函数,并将其优化函数作为选路标准,最终得到多条节点不相交且满足端到端的可靠性要求同时能量消耗少的有效路由,较全面解决了路径参量值的排序标准问题。该方案保证路由的稳定性和可靠性,同时减少网络中节点的能量消耗,但对于提出的路径代价平衡预测函数,并未具体介绍预测误差的估计,只是提出了一个预测表达式,内部的预测细节有待设计改良。存在的节点电量消耗速率不一致的问题和协议字段复杂导致网络拓扑规模受到限制的问题。



技术实现要素:

本发明实施例的目的在于提供一种具备优化网络负载的路由控制器,构建整个网络的路由结构时考虑了路由上每个节点的电量情况,在路由更新请求中包含了最优路由电量和当前节点电量,通过这些信息对网络路由进行优化,保证了整个网络的负载均衡;且采用该能量均衡路由算法能够避开数据包长度限制对网络拓扑深度的限制。

为达到上述目的,本发明实施例公开了一种具备优化网络负载的路由控制器,其特征在于,所述装置包括:

第一设置模块,用于网络中心节点设置初始的路由更新请求参数;

发送模块,用于当前节点接收网络中心节点发送的路由更新请求,其中,所述路由更新请求包括:更新所述当前节点的拓扑层数、所述当前节点到所述网络中心节点的最优路由的跳数、所述当前节点到所述网络中心节点的最优路由的最小电量、所述当前节点的电量,并标记轮次;

第一判断模块,用于当前节点判断是否为第一次收到所述路由更新请求;

第二设置模块,用于在所述第一判断模块的判断结果为是的情况下,设置所述当前节点的拓扑层数为第一预设值、设置所述当前节点到所述网络中心节点的最优路由的跳数为第二预设值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为第三预设值,并清空路由表;

第二判断模块,用于在所述第一判断模块的判断结果为否的情况下,确定接收到的更新请求中的所述拓扑层数加1后小于所述当前节点的拓扑层数的情况下,更新所述当前节点的拓扑层数;

以及,判断所述路由表中是否存在下一跳为广播路由更新请求的源节点的路由项,如果否,根据所述路由更新请求中的信息添加所述路由项;如果是,按照路由最小电量取最大者、路由最小电量相等时跳数取最小者进行更新路由项,并更新路由记录;

更新模块,用于在所述当前节点的拓扑层数被更新、当前的最优路由比更新前的最优路由能提供更大的路由最小电量、者相同的路由最小电量及更小的跳数、相同的路由最小电量和跳数及更大的下一跳节点电量的任一种情况下,则根据所述当前节点的拓扑层数和最优路由记录广播同轮次路由更新请求,同时返回重复执行当前节点判断是否为第一次收到所述路由更新请求的步骤。

可选的,所述更新路由记录,包括:

路由项更新完毕后按照路由最小电量取最大者、路由最小电量相等时跳数取最小者、路由最小电量和跳数相等时下一跳节点电量取最大者的规则更新最优路由记录。

可选的,所述设置所述当前节点的拓扑层数为第一预设值、设置所述当前节点到所述网络中心节点的最优路由的跳数为第二预设值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为第三预设值,包括:

设置所述当前节点的拓扑层数为预设极大值、设置所述当前节点到所述网络中心节点的最优路由的跳数为预设极大值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为预设极小值。

可选的,所述网络中心节点设置初始的路由更新请求参数,包括:

所述网络中心节点设置当前节点的拓扑层数为0、所述当前节点到所述网络中心节点的最优路由的跳数为0、所述当前节点到所述网络中心节点的最优路由的最小电量为预设极大值、所述当前节点的电量为预设极大值。

可选的,所述方法还包括:

在新节点加入所述网络中心节点创建的网络的情况下,发送路由获取请求;

确定所述新节点的邻居节点;

所述邻居节点发送自身的最优路由至所述新节点。

可选的,所述确定所述新节点的邻居节点,包括:

根据邻居节点查找算法,确定所述新节点的邻居节点。

应用本发明实施例,在构建整个网络的路由结构时考虑了路由上每个节点的电量情况,在路由更新请求中包含了最优路由电量和当前节点电量,通过这些信息对网络路由进行优化,保证了整个网络的负载均衡。同时,采用能量均衡路由算法能够避开数据包长度限制对网络拓扑深度的限制。仿真试验表明,本发明所提方法,提高了整个网络传送的数据包轮数,降低了数据包平均传输能耗,使得所有路由得到充分均衡地利用。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的改进路由方法流程示意图。

图2为数据传输轮数与能量均衡程度之间的关系。

图3为数据传输轮数与能量均衡程度关系图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1为本发明实施例提供的改进路由方法流程示意图,主要包括如下步骤:

step1:网络中心节点通过广播路由更新请求发起全网路由更新。

step2:邻居节点受到路由更新请求。

step3:判断是否首次受到路由更新请求,是则转step4,否则转step5。

step4:将节点的拓扑层数和最优路由记录的跳数设为极大值、将最优路由记录的最小电量设为极小值并清空路由表。

step5:按照规则更新拓扑层数、路由表和最优路由记录。

step6:判断是否符合广播条件,符合则转step7,否则转step8。

step7:构造并广播路由更新记录,转step2。

step8:算法结束。

具体的,基于上述步骤提供的一种基于aodv的改进路由方法,所述方法包括步骤:

s101,当前节点接收网络中心节点发送的路由更新请求,其中,所述路由更新请求包括:更新所述当前节点的拓扑层数、所述当前节点到所述网络中心节点的最优路由的跳数、所述当前节点到所述网络中心节点的最优路由的最小电量、所述当前节点的电量,并标记轮次。

网络中心节点设置初始的路由更新请求参数。所述网络中心节点设置当前节点的拓扑层数为0、所述当前节点到所述网络中心节点的最优路由的跳数为0、所述当前节点到所述网络中心节点的最优路由的最小电量为预设极大值、所述当前节点的电量为预设极大值。节点电量的预设极大值大于网络中节点拥有的电量最大值,该参数根据实际情况设置。

s102,当前节点判断是否为第一次收到所述路由更新请求;如果是,执行s103;如果否,执行s104。

当当前节点在每次收到路由更新请求的时候进行判定,是否为该轮的第一次收到该路由请求,如果是执行s103;如果否,执行s104。

s103,设置所述当前节点的拓扑层数为第一预设值、设置所述当前节点到所述网络中心节点的最优路由的跳数为第二预设值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为第三预设值,并清空路由表。

进一步的,设置所述当前节点的拓扑层数为预设极大值、设置所述当前节点到所述网络中心节点的最优路由的跳数为预设极大值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为预设极小值。其中,节点拓扑层数的预设极大值大于网络中节点到中心节点的最大跳数值,该参数根据实际情况设置;节点路由跳数的预设极大值大于网络中所有节点拥有路由的最大跳数值,该参数根据实际情况设置;节点电量的预设极小值一般设为0。

s104,a、确定接收到的更新请求中的所述拓扑层数加1后小于所述当前节点的拓扑层数的情况下,更新所述当前节点的拓扑层数;

b、判断所述路由表中是否存在下一跳为广播路由更新请求的源节点的路由项,如果否,根据所述路由更新请求中的信息添加所述路由项;如果是,按照路由最小电量取最大者、路由最小电量相等时跳数取最小者进行更新路由项,并更新路由记录。

示例性的,如果不是第一次接收到路由更新请求,当前节点在确定接收到的更新请求中的所述拓扑层数加1后小于所述当前节点的拓扑层数的情况下,更新所述当前节点的拓扑层数,如由更新请求中的拓扑层数为3,当前解节点的拓扑层数为5,由于3+1<5,所以更新当前节点的拓扑层数。

示例性的,在路由表中是否存在下一跳为广播路由更新请求的源节点的路由项,根据所述路由更新请求中的信息添加所述路由项;否则,按照路由最小电量取最大者、路由最小电量相等时跳数取最小者进行更新路由项。

进一步的,可以在路由项更新完毕后按照路由最小电量取最大者、路由最小电量相等时跳数取最小者、路由最小电量和跳数相等时下一跳节点电量取最大者的规则更新最优路由记录。

s105,在所述当前节点的拓扑层数被更新、当前的最优路由比更新前的最优路由能提供更大的路由最小电量、者相同的路由最小电量及更小的跳数、相同的路由最小电量和跳数及更大的下一跳节点电量的任一种情况下,则根据所述当前节点的拓扑层数和最优路由记录广播同轮次路由更新请求,同时返回重复执行当前节点判断是否为第一次收到所述路由更新请求的步骤。

实际应用中,需要判断是否进行广播路由更新请求,在如下:当前节点的拓扑层数被更新、当前的最优路由比更新前的最优路由能提供更大的路由最小电量、者相同的路由最小电量及更小的跳数、相同的路由最小电量和跳数及更大的下一跳节点电量任意一种的情况下,广播同轮次路由更新请求,执行s102;则停止广播。

进一步的,所述方法还包括:在新节点加入所述网络中心节点创建的网络的情况下,发送路由获取请求;确定所述新节点的邻居节点;所述邻居节点发送自身的最优路由至所述新节点。

进一步的,可以根据邻居节点查找算法,确定所述新节点的邻居节点。

在实际的无线传输过程中,发送数据包的能量消耗符合eτx(l,d)=l*eelec+l*εd2,接收数据包的能量消耗符合eγx(l,d)=l*eelec,即在数据包的多跳传输过程中路由上各节点接收数据包消耗的能量只与数据包的长度线性相关,而发送消耗的能量除了与数据包的长度线性相关外还与路由中前后两点间的物理距离相关。该仿真实验的目的是验证能量均衡路由算法对网络节点电量的均衡效果,所搭建的仿真场景只是设置节点之间的逻辑连通性,并不关注节点间的实际物理距离以及实际的电量消耗数值,因此只保留eτx(l,d)中与距离无关的部分,即eτx(l,d)=eγx(l,d),并以单位比特接收能量消耗为基准单位对节点的总电量进行量化。

图2为数据传输轮数与能量均衡程度之间的关系,仿真针对给定的网络节点布局,对比采用aodv(adhocon-demanddistancevectorrouting,无线自组网按需平面距离向量路由协议)算法和改进后的aodv算法的运行效果,改进后的aodv算法又称之为能量均衡算法。

本发明实施例的能量均衡路由算法的目标是避开数据包长度限制对网络拓扑深度的限制,并根据网络当前各节点的电量和邻居节点连通性构建均衡网络电量消耗的路由。aodv路由算法与能量均衡路由算法的对比结果如下。

场景由1个网络中心节点、60个普通网络节点和8段障碍组成,如图2所示。无线信号传播设定为沿直线传播,传播距离为10个单位长度;传输的数据包长度为100bit,ack为50bit,每个普通网络节点的电量设定为108单位能量。图2是在网络中出现失效节点前整个网络传送的数据包轮数与能量均衡程度之间的关系图。

从图中可以看出,在该场景中,在采用能量均衡算法后,网络传输数据包的轮数能够提升至采用aodv算法的8倍,原因是能量均衡算法会在所有可选路由中避开那些经过相对低电量节点的路由项,按照路由能够承载的数据包总量的顺序进行寻路,使得所有可用路由都充分均衡地利用。但通过提高路由更新频率不断细化能量均衡的粒度,并不能显著提升能量均衡的效果。

图3为数据传输轮数与能量均衡程度关系图,是在网络中出现失效节点前数据包平均传输能耗与能量均衡程度之间的关系图。从图中可以看出,在该场景中,采用能量均衡算法后,数据包平均传输能耗相比于aodv算法提升了近50%,原因是网络节点在选择路由时并不是优先选择最短路径,而是优先选择最大最低电量的路由,这使得数据包的传输会经过更多节点,使得传输的平均耗能增加。当提高路由更新频率不断细化能量均衡的粒度时,只是更频繁地在多条可选路由中切换,传输的平均耗能增加不会显著变化。

基于图1所示的实施例,提供了一种具备优化网络负载的路由控制器,包括:

第一设置模块201,用于网络中心节点设置初始的路由更新请求参数;

发送模块202,用于当前节点接收网络中心节点发送的路由更新请求,其中,所述路由更新请求包括:更新所述当前节点的拓扑层数、所述当前节点到所述网络中心节点的最优路由的跳数、所述当前节点到所述网络中心节点的最优路由的最小电量、所述当前节点的电量,并标记轮次;

第一判断模块203,用于当前节点判断是否为第一次收到所述路由更新请求;

第二设置模块204,用于在所述第一判断模块的判断结果为是的情况下,设置所述当前节点的拓扑层数为第一预设值、设置所述当前节点到所述网络中心节点的最优路由的跳数为第二预设值、设置所述当前节点到所述网络中心节点的最优路由的最小电量为第三预设值,并清空路由表;

第二判断模块205,用于在所述第一判断模块的判断结果为否的情况下,确定接收到的更新请求中的所述拓扑层数加1后小于所述当前节点的拓扑层数的情况下,更新所述当前节点的拓扑层数;

以及,判断所述路由表中是否存在下一跳为广播路由更新请求的源节点的路由项,如果否,根据所述路由更新请求中的信息添加所述路由项;如果是,按照路由最小电量取最大者、路由最小电量相等时跳数取最小者进行更新路由项,并更新路由记录;

更新模块206,用于在所述当前节点的拓扑层数被更新、当前的最优路由比更新前的最优路由能提供更大的路由最小电量、者相同的路由最小电量及更小的跳数、相同的路由最小电量和跳数及更大的下一跳节点电量的任一种情况下,则根据所述当前节点的拓扑层数和最优路由记录广播同轮次路由更新请求,同时返回重复执行当前节点判断是否为第一次收到所述路由更新请求的步骤。

需要说明的是,在本发明实施例中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1