基于地理位置面向低功耗远距离物联网的多径路由算法的制作方法

文档序号:20918967发布日期:2020-05-29 13:53阅读:201来源:国知局
基于地理位置面向低功耗远距离物联网的多径路由算法的制作方法

本发明涉及基于地理位置的多跳转发网络场景中路由路径技术,特别涉及低功耗的多径路由选取技术。



背景技术:

对于在野外部署的大规模远距离网络场景中,具有以下特点:节点位置相对固定,单点通信距离较远(5-15km),每个节点都装有gps设备,能够准确获取节点的地理位置。由于网络的部署范围非常广,单点通信的距离达不到要求,所以必须要采用多跳转发的方式。而实现多跳转发必须考虑采用适用高效的路由协议。

综合考虑野外大规模远距离网络场景的特殊性,由于每个节点都能通过gps设备获取自身的位置,且定位误差相对传输距离可以忽略不计,所以基于地理位置的路由协议最适合该网络场景。

目前,已提出的基于地理位置的路由协议应用于本网络场景均存在以下缺点:只存在唯一路径,造成选定路径节点负载高,链路利用率低,一旦路径节点故障,整个网络便会瘫痪,而且没有低电量保护,关键路径节点电能耗尽。

参见申请号为cn201210014693.0,其公开了一种基于平面区域划分的adhoc网络多径路,具体公开的是:源节点计算自身与目的节点间的距离,将网络中所有节点所在平面划分成不相交的区域,确定区域个数及相应的曲线条数,计算各曲线方程的系数;源节点将自身与目的节点的地理位置信息及曲线方程系数写入数据包头部,根据路由转发策略向下一跳节点转发;转发节点收到数据包后,从包头部取出源节点与目的节点的地理位置信息及曲线方程系数,判断自身所在区域,根据路由转发策略继续转发;后续转发节点按上述方法继续转发,直至数据包到达目的节点。本发明利用节点位置信息在划分的不相交区域构造多条路径,既考虑了节点的不相交性,又避免了简单泛洪带来的路由发现开销,提高了路由寻找效率。

但是基于平面区域划分的adhoc网络多径路需要确定源节点与目的节点网络中所有节点,并需要确定源节点与目的节点之间区域个数及相应的曲线条数,计算各曲线方程的系数,而源节点与目的节点之间的节点个数繁多,需要计算的曲线以及各曲线方程的系数也就更多,造成路径计算繁琐。



技术实现要素:

本发明的目的是提供一种基于地理位置面向低功耗远距离物联网的多径路由算法,能够解决目前已提出的基于地理位置的路由协议应用于多跳转发网络场景存在的以下问题:只存在唯一路径,造成选定路径节点负载高,链路利用率低,一旦路径节点故障,整个网络便会瘫痪,而且没有低电量保护,关键路径节点电能耗尽;并且,现有计算路由路径的方法中因源节点与目的节点之间的节点个数繁多,需要计算的曲线以及各曲线方程的系数也就更多,造成路径计算繁琐。

本发明解决其技术问题,采用的技术方案是:基于地理位置面向低功耗远距离物联网的多径路由算法,包括如下步骤:

步骤1、以源节点作为原点,以源节点与目的节点连线作为x轴,建立路由平面直角坐标系,每个节点配备gps设备获取对应的地理位置信息,所述地理位置信息至少包括对应节点的经度和纬度,所有节点根据经度和纬度量化到平面直角坐标系,用此坐标系中的坐标表示节点的地理位置信息;

步骤2、以单个节点最远通信距离为半径r,分别以源节点和目的节点为圆心做圆,连接两个圆的切线以及分别连接两个圆与对应切线接触的点,形成母矩形区域,在该母矩形区域内以半径r为间距将矩形区域依次均匀划分为多个长为r宽为2r的子矩形区域,子矩形区域的个数记为n,n为大于等于2的正整数,从源节点到目的节点,各个子矩形区域中的节点数记为nodenumi,取源节点和目的节点间的最大预估路径数记为maxpathnum,则

maxpathnum=min{nodenum1,nodenum2,…nodenumi…nodenumn}

其中i取1到n之间的任意正整数;

步骤3、根据需要选择路由路径数routpathnum,所述路由路径数小于等于最大预估路径数;

步骤4、在源节点与目的节点的连线为弧中线的45°定向弧区域内定向向第一个字矩形区域内发送路由请求报文rreq,若此45°定向弧区域内活跃的节点数大于等于所述选择的路由路径数,则根据路由系数选定最大预估路径数个活跃节点作为源节点的下一跳节点,并将选定的活跃节点的状态置于选中状态,不能再作为路由的下一跳节点,并分别赋予选定的活跃节点不同的路径编号,避免转发过程产生干扰;若此45°定向弧区域内活跃节点数小于所述选择的路由路径数,则依次增大定向弧区域为60°、90°寻找满足条件的最大预估路径数个活跃节点作为源节点的下一跳转节点;

若定向弧区域增大到90°依然不能找到最大预估路径数个活跃节点,则取当前90°定向弧区域内活跃节点数更新所述选择的路由路径数的值,并选取该90°定向弧区域内的所有活跃节点作为源节点的下一跳节点;

步骤5、源节点的下一跳转节点分别进行路径寻找,记源节点的第j个下一跳节点为nj,再以nj与目的节点的连线为弧中线的45°定向弧区域内定向向下一个子矩形区域内转发路由请求报文rreq,根据该转发区域内节点发回的路由响应报文rrep计算路由系数选择最优节点作为预选节点并置状态为被路径预选中状态preselect_state,若发生节点争用则根据节点争用原则选择最佳路径方案,如果当前区域没有活跃节点,则依次放大定向弧区域的角度为60°、90°,直到找到活跃节点为止;

如果该定向弧区域的角度为90°依然没有找到活跃节点,则当前节点按反向路由回发通知源节点销毁此条路径,并更新最大预估路径数maxpathnum的值为maxpathnum-1;

按本步骤依次寻找路由路径,直到到达目的节点为止。

具体地,步骤4和/或步骤5中,所述路由请求报文rreq的内容包括:源节点序列号、目的节点地理位置信息、路径编号、跳数计数和前驱节点。

进一步地,所述前驱节点用于建立反向路由,如果此条路径出现路由空洞,此条路径无法正常到达目的节点,则根据反向路由告知源节点销毁当前路径。

具体地,所述目的节点地理位置信息用于确定当前节点和目的节点的方向,并根据当前节点维护的邻居节点表确定定向弧区域转发内的节点。

再进一步地,步骤5中,所述路由响应报文rrep的内容包括:节点序列号、节点当前状态、节点当前剩余电量和节点地理位置信息。

具体地,所述节点当前状态反映该节点是否为正常状态,能否加入新路径。

再进一步地,所述节点当前剩余电量及节点地理位置信息用于计算该节点的路由系数。

具体地,步骤4和/或步骤5中,所述路由系数为节点剩余电量与节点到目的节点的距离的比值。

再进一步地,步骤5中,当发生节点争用时,节点争用原则为:路由寻找下一跳转节点分为两个过程:

第一步,向节点定向弧区域内邻居节点发送路由请求报文rreq,并根据路由响应报文rrep计算路由系数,将路由系数最优节点作为预选节点,并发送rrcreq报文请求生成路径,预选节点收到rrcreq报文后置状态为被路径预选中状态preselect_state;

第二步,如果预选节点在规定时间pre_wait_time内没有被另一路径节点选中,则回复上一跳转节点报文rack确认生成路径,并置状态为被路径选中状态select_state,该节点在此后的路由过程中不能作为备选节点用于生成其他路径,避免某一节点被多条路径选中,形成多条路径的交叉,造成路由环路和增加关键路径的负载;如果预选节点在规定时间pre_wait_time内被另一路径预选中作为该路径的下一跳转节点,则该预选节点向预选源节点发送争用响应报文rrcrep,源节点收到争用响应报文rrcrep后发送优先级信息报文rrcrpreq给预选节点,预选节点比较多个争用源节点优先级,选择优先级更高节点作为自己的前驱节点,回复报文rack确认生成路径并置状态为被路径选中状态select_state。

具体地,所述前驱节点的优先级由前驱节点定向弧区域内的次优节点确定,具有更小路由系数的次优节点优先级越高,若节点定向弧区域内没有其他备选节点,则优先级最高,若多个源节点都只有唯一备选节点,则路由系数越高的优先级越高,所述次优节点的是指前驱节点定向弧区域内小于最优节点的路由系数的节点。

本发明的有益效果是,通过上基于地理位置面向低功耗远距离物联网的多径路由算法,首先根据各个节点的地理位置信息建立源节点和目的节点之间的路由平面直角坐标系,其次根据节点密度确定源节点和目的节点间的最大预估路径数,然后根据需要选择路由路径数,最后基于定向弧区域转发和区域角度递增寻找原则,以路由系数为参考从源节点开始依次选取后继节点。

本发明能够选择路径节点,既能保证各个节点的负载均衡,又能使数据在选择的路径传输中保证最优的传输性能,避免了以往路径节点出现故障,造成整个网络瘫痪的问题。

附图说明

图1为实施例中确认最大预估路径数maxpathnum的示意图;

图2为实施例中源节点寻找下一跳节点的示意图;

图3为实施例中源节点寻找的下一跳节点寻找其下一跳节点的示意图;

图4为实施例中各条路径依次向下寻找后继节点,最终得到三条路径的示意图;

其中,x表示x轴,y表示y轴,o表示坐标轴的原点,s表示源节点,e表示目的节点。

具体实施方式

下面结合实施例及附图,详细描述本发明的技术方案。

本发明所述基于地理位置面向低功耗远距离物联网的多径路由算法,包括如下步骤:

步骤1、以源节点作为原点,以源节点与目的节点连线作为x轴,建立路由平面直角坐标系,每个节点配备gps设备获取对应的地理位置信息,其中,地理位置信息至少包括对应节点的经度和纬度,所有节点根据经度和纬度量化到平面直角坐标系,用此坐标系中的坐标表示节点的地理位置信息;

步骤2、以单个节点最远通信距离为半径r,分别以源节点和目的节点为圆心做圆,连接两个圆的切线以及分别连接两个圆与对应切线接触的点,形成母矩形区域,在该母矩形区域内以半径r为间距将矩形区域依次均匀划分为多个长为r宽为2r的子矩形区域,子矩形区域的个数记为n,n为大于等于2的正整数,从源节点到目的节点,各个子矩形区域中的节点数记为nodenumi,取源节点和目的节点间的最大预估路径数记为maxpathnum,则

maxpathnum=min{nodenum1,nodenum2,…nodenumi…nodenumn}

其中i取1到n之间的任意正整数;

步骤3、根据需要选择路由路径数routpathnum,所述路由路径数小于等于最大预估路径数;

步骤4、在源节点与目的节点的连线为弧中线的45°定向弧区域内定向向第一个字矩形区域内发送路由请求报文rreq,若此45°定向弧区域内活跃的节点数大于等于所述选择的路由路径数,则根据路由系数选定最大预估路径数个活跃节点作为源节点的下一跳节点,并将选定的活跃节点的状态置于选中状态,不能再作为路由的下一跳节点,并分别赋予选定的活跃节点不同的路径编号,避免转发过程产生干扰;若此45°定向弧区域内活跃节点数小于所述选择的路由路径数,则依次增大定向弧区域为60°、90°寻找满足条件的最大预估路径数个活跃节点作为源节点的下一跳转节点;

若定向弧区域增大到90°依然不能找到最大预估路径数个活跃节点,则取当前90°定向弧区域内活跃节点数更新所述选择的路由路径数的值,并选取该90°定向弧区域内的所有活跃节点作为源节点的下一跳节点;

步骤5、源节点的下一跳转节点分别进行路径寻找,记源节点的第j个下一跳节点为nj,再以nj与目的节点的连线为弧中线的45°定向弧区域内定向向下一个子矩形区域内转发路由请求报文rreq,根据该转发区域内节点发回的路由响应报文rrep计算路由系数选择最优节点作为预选节点并置状态为被路径预选中状态preselect_state,若发生节点争用则根据节点争用原则选择最佳路径方案,如果当前区域没有活跃节点,则依次放大定向弧区域的角度为60°、90°,直到找到活跃节点为止;

如果该定向弧区域的角度为90°依然没有找到活跃节点,则当前节点按反向路由回发通知源节点销毁此条路径,并更新最大预估路径数maxpathnum的值为maxpathnum-1;

按本步骤依次寻找路由路径,直到到达目的节点为止。

上述方法的步骤4和步骤5中,路由请求报文rreq的内容优选包括:源节点序列号、目的节点地理位置信息、路径编号、跳数计数和前驱节点等;前驱节点用于建立反向路由,如果此条路径出现路由空洞,此条路径无法正常到达目的节点,则根据反向路由告知源节点销毁当前路径;目的节点地理位置信息用于确定当前节点和目的节点的方向,并根据当前节点维护的邻居节点表确定定向弧区域转发内的节点。

步骤5中,路由响应报文rrep的内容优选包括:节点序列号、节点当前状态、节点当前剩余电量和节点地理位置信息等;节点当前状态反映该节点是否为正常状态,能否加入新路径;节点当前剩余电量及节点地理位置信息用于计算该节点的路由系数。

步骤4和/或步骤5中,路由系数为节点剩余电量与节点到目的节点的距离的比值。

步骤5中,当发生节点争用时,节点争用原则为:路由寻找下一跳转节点分为两个过程:

第一步,向节点定向弧区域内邻居节点发送路由请求报文rreq,并根据路由响应报文rrep计算路由系数,将路由系数最优节点作为预选节点,并发送rrcreq报文请求生成路径,预选节点收到rrcreq报文后置状态为被路径预选中状态preselect_state;

第二步,如果预选节点在规定时间pre_wait_time内没有被另一路径节点选中,则回复上一跳转节点报文rack确认生成路径,并置状态为被路径选中状态select_state,该节点在此后的路由过程中不能作为备选节点用于生成其他路径,避免某一节点被多条路径选中,形成多条路径的交叉,造成路由环路和增加关键路径的负载;如果预选节点在规定时间pre_wait_time内被另一路径预选中作为该路径的下一跳转节点,则该预选节点向预选源节点发送争用响应报文rrcrep,源节点收到争用响应报文rrcrep后发送优先级信息报文rrcrpreq给预选节点,预选节点比较多个争用源节点优先级,选择优先级更高节点作为自己的前驱节点,回复报文rack确认生成路径并置状态为被路径选中状态select_state;其中,前驱节点的优先级由前驱节点定向弧区域内的次优节点确定,具有更小路由系数的次优节点优先级越高,若节点定向弧区域内没有其他备选节点,则优先级最高,若多个源节点都只有唯一备选节点,则路由系数越高的优先级越高,所述次优节点的是指前驱节点定向弧区域内小于最优节点的路由系数的节点。

实施例

本发明实施例基于地理位置面向低功耗远距离物联网的多径路由算法具体包括如下步骤:

步骤一:根据源节点s和目的节点e地理位置,以源节点s为坐标轴的原点o,以源节点s和目的节点e连线为x轴x建立直角坐标系,并垂直于x轴x向上做y轴y,根据分块区域节点密度确认最大预估路径数maxpathnum,其示意图参见图1,其中,根据maxpathnum=min{nodenum1,nodenum2,…nodenumi…nodenumn},优选地,n取7,也就是说,绝策最大预估路径数maxpathnum为7。

步骤二:用户配置路由路径数routpathnum,本实施例routpathnum为3。

步骤三:源节点s寻找下一跳节点,其示意图参见图2,其中,源节点s在45°定向区域内得到p1n1、p2n1、p1n1三个后继节点,p1n1、p2n1、p3n1三个节点分别寻找后继节点,p2n2被p2n1、p3n1两个节点争用,而p2n1节点优先级更高,所以p2n2被选定作为p2n1的后继节点,p3n2被p1n1、p3n1两个节点争用,而p3n1优先级更高,所以p3n2被选定作为p3n1的后继节点,p1n1选定p2n1作为自己的后继节点。

步骤四:p1n2、p2n2、p3n2三个节点分别寻找后继节点,源节点s寻找的下一跳节点p1n2、p2n2、p3n2寻找其下一跳节点的示意图参见图3,其中,p1n2选定p1n3作为自己的后继节点,p3n2选定p3n3作为自己的后继节点,p2n2在45°定向区域内没有找到满足要求的点,依次扩大定向区域为60°、90°找到后继节点p2n3。

步骤五:各条路径依次向下寻找后继节点,最终得到三条路径,其示意图参见图4,本例中,最终得到的三条路径分别为:s-p1n1-p1n2-p1n3-p1n4-p1n5-e,s-p2n1-p2n2-p2n3-p2n4-p2n5-e,s-p3n1-p3n2-p3n3-p3n4-p3n5-e。

实际应用过程中,可以选择利用得到的这个三条路径进行数据传输。

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