基于位置信息低功耗的自组网路由方法与流程

文档序号:15359556发布日期:2018-09-05 00:28阅读:144来源:国知局

本发明属于通信技术领域,更进一步涉及无线通信技术领域中的一种基于位置信息低功耗的自组网路由方法。本发明可应用于在无线自组网中,建立一条高效、稳定的路径。



背景技术:

路由技术是自组网网络非常关键的技术,对数据转发的效率、时延以及整个系统的性能都非常重要。常见的路由技术包括aodv、dsr、lar、olsr等,其中aodv和dsr为按需路由,当有数据发送请求的时候会发起路由请求,通常需要通过节点广播泛洪路由请求包来完成路由的查找和建立,这样会导致网络中有大量的路由信息在传递,很多节点本身没有必要进行路由请求包的转发,使得全局功耗增大。

随着gps技术的发展,节点可以时时获取本节点的位置信息。在路由建立过程中,可以借助位置信息,通过限制路由请求信息的转发范围,减少了转发节点数量,有效降低全局功耗。

北京信威通信技术股份有限公司在其申请的专利文献“一种无线自组网的路由方法”(专利申请号:cn201410549579.7,公开号:cn105578558a)中提出了一种无线自组网的路由方法。该方法通过自组网的各节点互相广播其邻节点信息,根据接收到的邻节点的广播消息维护本地路由表,各节点根据收到的广播消息选择和维护自己的中转节点,并通知所述中转节点,路由消息由所述中转节点转发。该发明提出的方法可以有效缩短路由建立时间。但是,该方法仍然存在的不足之处是,由于该方法通过自组网的各节点互相广播其邻节点信息各节点,所采用的广播方式进行信息的交互,使得全局节点一直处于工作状态,导致全局功耗增大,减少了节点的使用寿命,使得整个网络不能正常工作。

电子科技大学在其申请的专利文献“基于链路生命期的分布式自组网稳定路径路由方法”(专利申请号:cn201010570906.9,公开号:cn102006651a)中提出了一种基于链路生命期的分布式自组网稳定路径路由方法。该方法通过各节点记录本地节点与邻居节点之间的链路的连通起始时刻,并据此更新路径稳定性,从而选择最稳定路径,使得路由协议能够为用户业务提供更加稳定的路径,减少路由维护开销;中间节点及目的节点在转发路径搜寻报文、路径转发报文这些控制报文时没有等时延,保证路径的快速建立。但是,该方法仍然存在的不足之处是,路由的建立只依据链路的稳定性,选取出来的路径比较冗长,不能够选取出高效的路径,在实现降低功耗方面并不理想。



技术实现要素:

本发明的目的在于针对上述现有的技术的不足,提出了一种基于位置信息低功耗的自组网路由方法。

实现本发明目的的思路是,本发明重新设定了路由协议中选取转发节点的规则,借助地理位置信息,采用了三个具有优先级的候选区,既保障了稳定性又兼顾了高效性;引入了节点位置预测的方法,进一步精准选择有效转发节点;提出了一种新的路由退化规则,避免全局泛洪,降低了全局的功耗。

本发明是在由32个节点和一个位置服务节点组成的自组网中,建立节点间的路由,32个节点中拟发送数据的节点作为源节点,32个节点中拟接收数据的节点作为目的节点,该方法的具体步骤包括如下:

(1)获取节点位置信息:

(1a)位置服务节点借助全球定位系统gps,获取自组网中的每个节点的位置信息;

(1b)位置服务节点以10s为周期,广播自组网中每个节点的位置信息,每个节点记录自身接收到的32个节点位置信息;

(2)判断源节点向目的节点发送数据时两节点间是否存在有效路由,若是,则执行步骤(23);否则,执行步骤(3);

(3)发送路由请求包rreq:

源节点将路由请求包rreq发送给邻居节点,开启源节点的计时器;

(4)判断邻居节点是否曾接收过相同的路由请求包rreq,若是,则执行步骤(22);否则,执行步骤(5);

(5)建立一条反向路由:

邻居节点用接收到的路由请求包rreq中的源节点地址、上一跳节点地址、路由请求标识、缓存路径和跳数值,在其路由表中建立一条反向路由;

(6)判断路由请求目的节点地址序号是否与本节点地址序号相等,若是,则执行步骤(12);否则,执行步骤(7);

(7)判断接收到路由请求包rreq的邻居节点是否满足转发条件,若是,则执行步骤(8);否则,执行步骤(22);

(8)判断接收到路由请求包rreq的邻居节点是否位于三个候选区中的第一候选区中,若是,则执行步骤(11);否则,执行步骤(9);

(9)将接收到的路由请求包rreq缓存到第二或第三候选区的邻居节点中;

(10)第二或第三候选区的邻居节点延迟时间0.5s,判断在0.5s时间内是否接收到第一候选区转发出的路由请求包rreq,若是,则直接丢弃,并删除缓存的路由请求包rreq,不再转发;否则,执行步骤(11);

(11)将路由请求包rreq中的跳数值加1,用接收路由请求包rreq的节点地址更新上一跳节点地址,将路由请求包rreq广播发送给邻居节点后,执行步骤(4);

(12)发送路由回复包rrep:

目的节点将路由回复包rrep发送给经查询路由表得到的下一跳节点;

(13)判断接收到的路由回复包rrep中的目的节点地址序号是否与接收节点的地址相等,若是,则执行步骤(23);否则,执行步骤(14);

(14)处理路由回复包rrep:

用路由回复包rrep中的源节点地址、上一跳节点地址和跳数值,在其路由表中建立一条新的正向路由;将路由回复包rrep消息中的跳数值加1,用接收节点地址更新上一跳节点地址,将路由回复包rrep发送给经查询路由表得到的下一跳节点后执行步骤(13);

(15)判断源节点计时器计时达到10s触发中断时,源节点是否收到路由回复包rrep,若是,则执行步骤(23);否则,执行步骤(16);

(16)源节点重新设置重路由请求包rrreq中的请求区域后,将重路由请求包rrreq广播发送给邻居节点,重置计时器;

(17)判断邻居节点是否曾接收过相同的重路由请求包rrreq,若是,则执行步骤(22);否则,执行步骤(18);

(18)邻居节点用接收到的重路由请求包rrreq中的源节点地址、上一跳节点地址、路由请求标识、缓存路径和跳数值,在其路由表中建立一条新的反向路由;

(19)判断路由请求目的节点地址是否为本邻居节点地址,若是,执行步骤(12);否则,执行步骤(20);

(20)判断本邻居节点是否位于从重路由请求包rrreq中提取的请求区域内,若是,则执行步骤(21);否则,执行步骤(22);

(21)将重路由请求包rrreq消息中的跳数值加1,用本邻居节点地址更新上一跳节点地址,将重路由请求包rrreq发送给邻居节点后,执行步骤(17);

(22)丢弃接收到的路由包;

(23)完成路由建立,源节点通过查询路由表,向目的节点发送数据。

本发明与现有技术相比具有以下优点:

第一,本发明通过判断接收到路由请求包rreq的邻居节点是否位于三个候选区中的第一候选区中,位于第一候选区中的节点具有稳定高效的特点,优先选择出第一候选区中的邻居节点作为建立链路的节点,克服了现有技术中选取出的链路比较冗长、低效的问题,使得本发明有效的选取出稳定、高效的链路,降低了路由建立所消耗的功耗。

第二,本发明通过判断位于第二或第三候选区中的节点在收到路由请求包rreq后的0.5s时间内,是否能够收到第一候选区转发出的路由请求包rreq,决定本区域节点的转发操作,克服了现有技术中路由请求包rreq的重复发送的问题,使得本发明减少了无效工作的节点数,提高全局节点工作的效率。

第三,本发明通过在初次建立路由失败后,采用重新设置请求区域,再发起路由建立的方法,克服了现有的直接退化为广播泛洪的问题,使得本发明避免了泛洪广播,降低了全局资源消耗。

附图说明

图1是本发明的流程图;

图2是本发明请求区域的示意图;

图3是本发明预测节点位置步骤的流程图;

图4是本发明三个候选区的示意图。

具体实施方式

下面结合附图本发明做进一步的详细描述。

参照图1,对本发明的具体步骤作进一步的详细描述。

本发明由32个节点和一个位置服务节点组成的自组网中,建立节点间的路由,32个节点中拟发送数据的节点作为源节点,32个节点中拟接收数据的节点作为目的节点,具体步骤包括如下:

步骤1,获取节点位置信息。

位置服务节点借助全球定位系统gps,获取自组网中的每个节点的位置信息。

位置服务节点以10s为周期广播自组网中的32个节点的位置信息,每个节点用自身接收到的32个节点位置,记录对应的节点位置信息。

所述位置服务节点是指,除了32个节点之外的,一个专门用于收集和分发网络中32个节点位置信息的节点。

步骤2,判断源节点向目的节发送数据时两节点间是否存在有效路由,若是,则执行步骤23;否则,执行步骤3。

所述的源节点是指32个节点中发送数据的节点,目的节点是指32个节点中接收数据的节点。

步骤3,发送路由请求包rreq。

源节点将构建的路由请求包rreq发送给邻居节点,开启源节点的记时器。

所述的路由请求包rreq的消息格式组成包括消息类型、跳数、路由请求标识、源节点地址、目的节点地址、上一跳节点地址、请求区域、缓存路径,上一跳节点地址为源节点地址。

所述的邻居节点是指,位于发送节点通信半径范围内的所有节点。

路由请求包rreq是专门用来请求路由建立的分组,路由请求包rreq是通过广播的方式进行转发。

步骤4,判断邻居节点是否曾接收过相同的路由请求包rreq,若是,则执行步骤22;否则,执行步骤5。

判断是否接受过相同的路由请求包rreq是通过查询rreq缓存表来完成的。rreq缓存表是用来记录所有曾经接收到过的路由请求包rreq,以防止同一个路由请求包rreq被反复接收和转发,造成广播风暴。路由请求标识和源节点地址可以确定一个唯一的路由请求包rreq。

步骤5,邻居节点用接收到的路由请求包rreq中的源节点地址、上一跳节点地址、路由请求标识、缓存路径和跳数值,在其路由表中建立一条反向路由。

步骤6,判断路由请求目的节点地址序号是否与本节点地址序号相等,若是,则执行步骤12;否则,执行步骤7。

步骤7,判断接收到路由请求包rreq的邻居节点是否满足转发条件,若是,则执行步骤8;否则,执行步骤22。

所述的转发条件是指,满足以下两种条件之一的情形:

条件1,邻居节点位于请求区域内;

条件2,邻居节点的预测位置位于请求区域内,所述的预测位置是依据差分自回归移动平均模型arima运动轨迹预测得到的;

参照图2的请求区域示意图,对上述条件1、2中所述请求区域做进步一步的描述。

图2中的节点s为源节点,节点d为目的节点。请求区域是指,由源节点s和目的节点d的期望区域确定的一个矩形区域,即包含源节点和期望区域且两条边分别平行于横轴和纵轴的最小矩形。所述期望区域是指一段时间后目的节点可能位于的位置区域。假设源节点s知道目的节点d在t0时刻的位置(xd,yd),节点d的平均移动速度v。在t1时刻节点s发起新的到节点d的路由查找,节点s就可以确定在t1时刻目标节点d的期望区域为以(xd,yd)为圆心,r=v(t1-t0)为半径的圆形区域。

参照图3的预测节点位置步骤的流程图,对步骤7中判断路由请求包rreq转发条件中的节点预测位置的具体实现步骤做进一步的描述。

通过差分自回归移动平均模型arima对节点的位置进行预测:

第一步,根据时间序列的散点图、自相关函数和偏自相关函数图以adf单位根检验其均值、方差、趋势,对序列的平稳性进行识别。

第二步,对原时间序列进行平稳性检验,如果序列不满足平稳性条件,可以通过差分变换或者其他变换,如对数差分变换使序列满足平稳性的条件。将非平稳时间序列转化为平稳时间序列,实现短期的均衡,是对非平稳时间序列进行arima分析的必要前提。

第三步,根据时间序列模型的识别规则,通过计算能够描述时间序列特征的一些统计量,如自相关系数(ac)和偏自相关系数(pac),以确定arima模型的阶数p和q。若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合ar模型;若平稳序列的偏相关函数是拖尾的,而自相关函数足截尾的,则可断定序列适合ma模型;若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合arma模型。

第四步,对模型的未知参数进行估计。

第五步,检验模型的有效性。对模型的残差序列进行白噪声检验,若残差序列不是白噪声序列,回到步骤③和④重新进行模式识別、走阶、估计和检验。若残差序列是白噪声序列,则选择该模型。

第六步,利用已通过检验的模型进行预测分析,以证实所得模型确实与观察到的数据特征相符。

步骤8,判断接收到路由请求包rreq的邻居节点是否位于三个候选区中的第一候选区中,若是,则执行步骤11;否则,执行步骤9。

参照图4三个候选区的示意图,对三个候选区做进一步描述。

所述的三个候选区是指,以节点为中心,以节点一跳最大传输距离的四分之一为间隔,将距离节点一倍到三倍间隔的区域划分为第一候选区,将距离节点一倍间隔范围内的区域划分为第二候选区,将距离节点三倍到四倍间隔的区域划分为第三候选区。

步骤9,将路由请求包rreq缓存于第二或第三候选区的邻居节点中。

步骤10,位于第二或第三候选区的邻居节点延迟时间0.5s,判断在0.5s时间内是否接收到第一候选区转发出的路由请求包rreq,若是,则直接丢弃,并删除缓存的路由请求包rreq,不再转发;否则,执行步骤11。

步骤11,将路由请求包rreq中的跳数值加1,上一跳节点地址更改为接收路由请求包rreq的节点地址,将rreq消息广播发送给邻居节点,执行步骤4。

步骤12,发送路由回复包rrep。

目的节点将路由回复包rrep发送给经查询路由表得到的下一跳节点。

所述的路由回复包rrep的消息格式组成包括类型、跳数、路由回复标识、路由回复发起节点地址、路由回复目的节点地址、上一跳节点地址,此时跳数值为0,上一跳节点地址为目的节点地址,路由回复目的节点地址为源节点地址。

步骤13,判断接收到的路由回复包rrep中的目的节点地址序号是否与接收节点的地址一致,若是,则执行步骤23;否则,执行步骤14。

步骤14,处理路由回复包rrep。

用路由回复包rrep中的源节点地址、上一跳节点地址、路由请求标识和跳数值,在其路由表中建立一条新的正向路由;将路由回复包rrep消息中的跳数值加1,用接收节点地址更新上一跳节点地址,将路由回复包rrep发送给经查询路由表得到的下一跳节点后,执行步骤13。

步骤15,对路由进行退化处理。

判断源节点计时器计时达到10s触发中断时,源节点是否收到路由回复包rrep,若是,则执行步骤23;否则,执行步骤16。

步骤16,源节点重新设置重路由请求包rrreq中的请求区域后,将重路由请求包rrreq广播发送给邻居节点,重置计时器。

所述重新设置的请求区域是指,以源节点和目的节点之间的连线做准线,对源节点做一条垂直线,该垂直线将整个自组网的网络区域划分为两部分,将包含目的节点的那一部分网络区域作为重新设置的请求区域。

步骤17,判断邻居节点是否曾接收过相同的重路由请求包rrreq,若是,则执行步骤22;否则,执行步骤18。

判断是否接受过相同的重路由请求包rrreq是通过查询rrreq缓存表来完成的。rrreq缓存表是用来记录所有曾经接收到过的重路由请求包rrreq,以防止同一个重路由请求包rrreq被反复接收和转发,造成广播风暴。路由请求标识和源节点地址可以确定一个唯一的重路由请求包rrreq。

步骤18,邻居节点用接收到的重路由请求包rrreq中的源节点地址、上一跳节点地址、路由请求标识、缓存路径和跳数值,在其路由表中建立一条新的反向路由。

步骤19,判断路由请求目的节点地址是否为本邻居节点地址,若是,执行步骤12;否则,执行步骤20。

步骤20,判断本邻居节点是否位于从重路由请求包rrreq中提取的请求区域内,若是,则执行步骤21;否则,执行步骤22。

步骤21,修改重路由请求包rrreq。

将重路由请求包rrreq消息中的跳数值加1,用本邻居节点地址更新上一跳节点地址,将重路由请求包rrreq消息广播发送给邻居节点后,执行步骤17。

步骤22,丢弃接收到的路由包。

步骤23,完成路由建立,源节点通过查询路由表,向目的节点发送数据。

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