本发明涉及无线传感器网络技术领域,特别是一种无线传感网节点间的最佳单向通信路径选择方法。
背景技术:
目前无线传感器网络节点定位方法分为测距定位方法和非测距定位方法两类。
基于测距的定位方法需要利用额外的硬件来测量传感器节点之间的距离或者角度,然后根据三边或者三角测量方法计算待定位节点的位置。该类定位方法的定位精度比较高,但是由于需要额外的硬件,成本消耗比较大,所以该类方法不适合应用在大规模的无线传感器网络中。
目前的研究方向主要是基于非测距的定位方法。对于基于非测距的定位方法,定位精度低于基于测距的定位方法,但是不需要额外的辅助设施。该类方法主要基于传感器节点的连通性进行定位。比如:Slobodan等人提出的Bounding-Box方法、Dragos Nioulescu等人基于节点的跳数关系提出的DV-hop方法、Tian He等人提出的APIT方法。
Bounding-Box方法根据未知节点是否收到锚节点的信息进行定位,如果收到多个锚节点的信息,那么该未知节点的可能位置区域位于这些锚节点通信范围的交集之内,然后取这个交集的重心作为该未知节点的最终定位位置。
DV-hop方法分为三个过程:1、锚节点广播自己的信息,然后其他节点根据接收到的锚节点的信息,计算该锚节点到自身的最小跳数;2、锚节点根据其他锚节点到自己的距离总数和跳数总数计算该锚节点的平均每跳距离;3、未知节点依据锚节点到自己的跳数和距离自己最近的锚点计算所得的平均每跳距离,估计出各个锚节点到自己的距离,并利用三边或者极大似然估计算出自己的位置。
APIT方法的其核心思想是:未知节点任选三个锚点作为顶点,以这三个顶点构建三角形,并判断自身是否在三角形内部,如果自身在三角形内部,则称此三角形包含该未知节点;然后再任选3个锚点进行相同的操作,直到遍历完所有的锚点组合。最后,该未知节点计算所有自身位于其内的三角形相交区域的中心作为自身的定位位置。
尽管上述几种方法能够满足部分应用对定位精度的要求,但它们的定位精度毕竟不高,应用范围有限,主要适用于节点均匀分布、每个节点在各个方向的辐射半径相同的网络。而实际网络中的节点分布并不均匀,且每个节点的实际辐射模型差别较大,即节点各方向的辐射半径并不相等。
如果将上述的这些基于非测距的定位方法应用于节点分布不均匀的实际网络中,将会出现以下几个问题:
1、在非均匀分布网络条件下,针对每个未知节点只计算一个平均跳距并不合适;
2、由于实际网络存在节点辐射半径的对称性和非对称性,由此带来节点间通信的非对称性,上述现有的这些算法并未考虑这些因素,应用到实际网络中计算所得的平均跳距和定位位置精度有限;
3、定位算法执行过程中的相关信息并未被充分利用。
因此,很有必要改进未知节点定位方法,充分考虑到节点分布不均匀、节点各方向辐射半径不等的场景,以使之能够很好地应用于实际,以利于提升节点的定位精度,扩大非测距定位方法的应用范围。
技术实现要素:
本发明的发明目的在于:针对背景技术中所提出的技术需求,提供一种无线传感网节点间的最佳单向通信路径选择方法。将本发明算法用于无线传感器网络中的节点定位,将有助于提高未知节点的定位精度。
本发明用到的几个基本概念:
定义1、通信辐射不规则度(DOI):表示节点的无线信号在不同方向的辐射范围变化的不规则程度。假设节点存在一个最大和一个最小的辐射半径,在其最大通信辐射范围外的节点一定不能直接收到该节点的消息,在其最小通信辐射范围内的节点一定可以直接收到该节点的消息,在最大和最小辐射范围之间的节点,则不一定能够直接收到该节点的消息。随着DOI的增大,节点通信辐射模型越不规则,特别地,DOI等于0表示节点的辐射模型近似一个圆形,图1中分别表示DOI=0、DOI=0.1以及DOI=0.5时节点的通信辐射模型。
定义2、通信对称性和通信非对称性:由于受外界环境或者障碍物的干扰以及节点通信辐射不规则性的影响,节点在不同方向上的信号强度和通信能力不相等,所以两个节点之间的通信有可能并不对称。
通信对称性指两个节点之间的沿不同方向的通信路径完全相同。图2以F和G之间的通信举例,在例中,F到G的通信和G到F的通信所经过的最小中继节点集合完全相同,顺序刚好相反。显然,在这种情况下,F到G和G到F所经历的通信跳数一定相等。
通信非对称性指两个节点之间的沿不同方向的通信路径不完全相同,因此跳数也不一定相同。图3以A和C之间的通信举例,在例中,A到C的通信和C到A的通信所经过的最小中继节点集合不完全相同。并且,图3中A到C的通信跳数为2,而C到A的通信跳数为3。
定义3、相对跳数(r_hop):
如果节点A是节点B的直接邻居(即节点B能够直接收到节点A的消息),则节点A到节点B的相对跳数定义如下:其中n取2-4之间的值,为A的所有直接邻居所接收到的A的信号强度的最小值(注:也可设置为节点在A的最大通信辐射边界位置所收到的A的信号强度,或者A当前所收到的返回了接收信号强度的周边节点所接收到的A的实际信号强度的最小值),为节点B所接收到的A的信号强度。
如果一个节点不是另一个节点的直接邻居,比如图3所示,节点A不是节点C的直接邻居,则节点A到节点C的相对跳数为从节点A到节点C所经历路径的A到C通信方向的各一跳邻居间的相对跳数总和,即A到B的相对跳数与B到C的相对跳数之和。
定义4、最佳单向通信路径:由于节点间通信的非对称性,两个节点间沿不同方向的通信路径可能并不完全相同。本发明方法所称的单向通信路径指沿着该路径能够将消息从一个节点传送到另一个节点,但沿着该路径的相反方向则不一定能够将消息成功返回的通信路径。比如图3所示:A到C的单向通信路径能够将消息从A传到C、但通过该路径却不一定能够将消息从C传到A。这里的“单向”指的是只能确保消息沿一个方向传输成功,而沿相反方向传输则不一定成功。所谓最佳单向通信路径就是指能够将消息从A传到C,且在确保从A到C的通信跳数最少的前提下、从A到C的相对跳数也最少的通信路径。
定义5、节点:本发明方法谈到节点时将包含锚节点和未知节点,即节点可能属于锚节点也可能属于未知节点。在不需要明确指明其为锚节点或者未知节点时,本发明方法中的节点将用A、B、C、D、E、F、G、O、N等大写字母表示。
定义6、首发节点:某个特定的测试包、探测包等的发起节点,有时也称为消息源节点。
在机场环境下,假设节点(比如:有短程通信能力的机场设备)随机部署在机场区域内,用Ni,i∈[1,n]表示网络中的节点集合。假定所有节点均已知自己的id,比如,把自己的MAC作为自己的id。由于机场设备分布并不均匀,且每个机场设备的通信范围并非标准圆,机场设备的信号辐射半径也可能不相等,因此两个机场设备之间的通信路径具有非对称性,并随网络拓扑的变化而变化。本方案可完成任意两个机场设备之间的非对称的最佳单向通信路径的构建。需要特别说明的是:本发明方案也适用于节点均匀分布、节点的辐射范围是规则圆的理想场景。
本发明采用的技术方案是这样的:
一种无线传感网节点间的最佳单向通信路径选择方法,包括以下步骤:
第一步、节点广播“相对跳数测试包”,以便自己或者其直接邻居节点计算自己到它们的相对跳数;
第二步、节点广播“最佳单向通信路径探测包”,收到该探测包的节点将能够确定部分其他节点到自己的最小跳数、最佳单向通信路径和相对跳数,所述最佳单向通信路径指沿着该路径能够将消息从一个节点传送到另一个节点,但沿着该路径的相反方向则不一定能够将消息成功返回的通信路径,并且,消息沿着该路径从一个节点到另一个节点的过程中,在保证通信跳数最少的前提下,相对跳数也最少;
第三步、当节点新增了部分其他节点到自己的最佳单向通信路径信息以后,该节点将发送“最佳单向通信路径通知包”,以告知这些新增节点到自己的最佳单向通信路径信息;
第四步、节点通过“路径探测包请求发送消息”请求特定节点发送“最佳单向通信路径探测包”以获得该特定节点到自己的最佳单向通信路径信息。
作为优选,第一步的具体过程为:任意节点,如A,首先广播自己的相对跳数测试包测试包含节点A的id号和发射功率强度;该节点A的直接邻居节点都向其返回应答消息,应答消息中包含了该直接邻居节点接收到该测试包的信号强度值节点A将从这些应答消息中找到最小的信号强度值作为自己在一跳范围能够辐射到的最远节点所收到的最小信号强度值并将返回信号强度最小值的节点作为自己的信号能够辐射到的最远节点,并将节点A与信号强度最小值的节点之间的距离作为自己的最远一跳距离;节点在收到应答消息后,依据公式可计算出自己到周边每一个直接邻居节点的相对跳数,其中n取2-4之间的值。
对上述优选方案进行进一步优选,节点A在设置自己的最小信号强度以后,还将其广播给自己周边的直接邻居节点,则各直接邻居节点可计算出节点A到自己的相对跳数。
作为优选,第二步包括几个分步骤,具体如下:
2.1,首发节点,如A,首先构建一个“最佳单向通信路径探测包”并进行广播;首次收到源自首发节点A的探测包的任意节点,如B,将计算从A到自己,探测包所经历的跳数、路径和相对跳数,并将其作为节点A到自己的最小跳数、最佳单向通信路径和相对跳数;节点B在该探测包中加入自己的id、坐标位置并修改从节点A到自己的到达跳数和相对跳数之后,然后转发;
2.2,当节点B再次收到源自A的探测包时,B亦将首先计算从A到自己,探测包所经历的跳数、路径和相对跳数,然后与自己记录的A到自己的最小跳数相比较;如果B计算新探测包到自己的到达跳数大于自己记录的最小跳数,则舍弃新收到的探测包;如果B计算新探测包到自己的到达跳数小于自己记录的最小跳数,则B将以新探测包所经历的跳数、路径和相对跳数作为A到自己的最小跳数、最佳单向通信路径和相对跳数,并更新记录;如果B计算新探测包到自己的等于自己记录的最小跳数,则B将比较计算新探测包从A到自己的相对跳数与自己记录的从A到自己的相对跳数,并以相对跳数较小者及其对应的通信路径作为A到B的相对跳数和最佳单向通信路径,并更新自己的相关记录;节点B在该探测包中加入自己的id、坐标位置并修改从A到自己的到达跳数和相对跳数之后,然后转发;
2.3,不断重复步骤2.2,一直到节点B所记录的相对跳数和最佳单向通信路径不再变化。
作为优选,第三步的具体过程为:节点,如B,向“最佳单向通信路径探测包”的首发节点,如A,发出的“最佳单向通信路径通知包”中包含A到自己的最佳单向通信路径信息,此后,A将可选择该最佳通信路径向B传送数据和消息。
对上述第三步的优选进行进一步优选,节点B所发出的“最佳单向通信路径探测包”中还包含A到自己的最小跳数和相对跳数。
对上述第三步的优选进行进一步优选,节点B发出的“最佳单向通信路径通知包”中还包含节点B不曾通知过的所有已经知道B到自己的最佳单向通信路径的节点。
在第四步中,还不知道特定节点,如D,到自己的最佳单向通信路径的节点,如C,向D发送“请求广播路径探测包消息”,D收到该信息后,根据情况自行决定是否按照第二步发送探测包。
还不知道自己到特定节点,如D,的最佳单向通信路径的节点,如C,自行决定按照第二步、第三步来获得特定节点D到C的最佳单向通信路径。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、针对现有的选路方法未充分考虑节点通信辐射范围的不规则性以及节点分布的不均匀性等问题对通信选路的影响,提出了结合利用最小通信跳数和相对跳数来选择节点间的单向通信路径以实现通信跳数最少且欧氏距离最短(相对跳数可用于衡量通信距离的长短)的选路方法,实现了最佳单向通信路径选择,且性能稳定、开销减少;
2、提出了节点间相对跳数的概念和计算方法,并将相对跳数应用于最佳单向通信路径选择方法中;
3、节点可通过“路径探测包请求发送消息”请求特定节点发送“最佳单向通信路径探测包”从而获知特定节点到自己的最佳单向通信路径,并可通过“最佳单向通信路径通知包”通知对方该最佳单向通信路径,并利用该路径向自己发送数据;
4、节点也可自行决定是否发送“最佳单向通信路径探测包”,以让特定节点获知自己到该节点的最佳单向通信路径,从而实现了任意两个节点间的最佳单向通信路径选择。
附图说明
图1为DOI=0、DOI=0.1以及DOI=0.5时节点的通信辐射模型;
图2为通信对称性的举例;
图3为通信非对称性的举例;
图4为本发明方法的流程图。
具体实施方式
下面结合附图,对本发明作详细的说明。
最佳实施例:
一种无线传感网节点间的最佳单向通信路径选择方法,包括以下步骤:
第一步、节点广播“相对跳数测试包”,以便自己或者其直接邻居节点计算自己到它们的相对跳数。
第一步的具体过程为:任意节点,如A,首先广播自己的相对跳数测试包测试包含节点A的id号和发射功率强度;该节点A的直接邻居节点都向其返回应答消息,应答消息中包含了该直接邻居节点接收到该测试包的信号强度值节点A将从这些应答消息中找到最小的信号强度值作为自己在一跳范围能够辐射到的最远节点所收到的最小信号强度值并将返回信号强度最小值的节点作为自己的信号能够辐射到的最远节点,并将节点A与信号强度最小值的节点之间的距离作为自己的最远一跳距离;节点在收到应答消息后,依据公式可计算出自己到周边每一个直接邻居节点的相对跳数,其中n取2-4之间的值。
对于节点A的最远一跳距离,本发明方法无须测试该距离,提出该最远一跳距离是为了便于理解A距离其信号能够直接辐射到的节点B的相对跳数,即节点A与B之间的距离和节点A所能辐射的最远一跳距离之间的比值。
节点A在设置自己的最小信号强度以后,还将其广播给自己周边的直接邻居节点,则各直接邻居节点可计算出节点A到自己的相对跳数。
为了减少测量误差等,节点A可广播两个标准信号强度,并以接收节点B收到这两个信号的差异来校正B返回的信号强度值,B也可据此校正自己的AGC和RSSI精度。
经过该步骤,所有节点都将知道直接邻居节点到自己,以及自己到直接邻居节点的相对跳数。
第二步、节点广播“最佳单向通信路径探测包”,收到该探测包的节点将能够确定部分其他节点到自己的最小跳数、最佳单向通信路径和相对跳数r_hop,所述最佳单向通信路径指沿着该路径能够将消息从一个节点传送到另一个节点,但沿着该路径的相反方向则不一定能够将消息成功返回的通信路径,并且,消息沿着该路径从一个节点到另一个节点的过程中,在保证通信跳数最少的前提下,相对跳数也最少。
第二步包括几个分步骤,具体如下:
2.1,首发节点,如A,首先构建一个“最佳单向通信路径探测包”并进行广播,该包包含节点A以及该探测包途经的每一跳节点的id、坐标位置以及从节点A到探测包接收节点的到达跳数a_hop和相对跳数r_hop等,并且,未知节点的坐标位置设为空,以此表示其为未知节点,初始时,该探测包的到达跳数a_hop和相对跳数r_hop均设置为0;首次收到源自首发节点A的探测包的任意节点,如B,将计算从A到自己,探测包所经历的跳数(上一跳的a_hop+1)、路径(上一跳的路径+自己的ID+自己的坐标位置)和相对跳数(上一跳时的相对跳数+上一跳到自己的相对跳数),并将其作为节点A到自己的最小跳数、最佳单向通信路径和相对跳数;节点B在该探测包中加入自己的id、坐标位置并修改从节点A到自己的到达跳数和相对跳数之后,然后转发;
2.2,当节点B再次收到源自A的探测包时,B亦将首先计算从A到自己,探测包所经历的跳数、路径和相对跳数,然后与自己记录的A到自己的最小跳数相比较;如果B计算新探测包到自己的到达跳数大于自己记录的最小跳数,则舍弃新收到的探测包;如果B计算新探测包到自己的到达跳数小于自己记录的最小跳数,则B将以新探测包所经历的跳数、路径和相对跳数作为A到自己的最小跳数、最佳单向通信路径和相对跳数,并更新记录;如果B计算新探测包到自己的等于自己记录的最小跳数,则B将比较计算新探测包从A到自己的相对跳数与自己记录的从A到自己的相对跳数,并以相对跳数较小者及其对应的通信路径作为A到B的相对跳数和最佳单向通信路径,并更新自己的相关记录;节点B在该探测包中加入自己的id、坐标位置并修改从A到自己的到达跳数和相对跳数之后,然后转发;
2.3,不断重复步骤2.2,一直到节点B所记录的相对跳数和最佳单向通信路径不再变化。
一旦确定了节点A到节点B的最佳单向通信路径,则该最佳单向通信路径上的所有节点到B的最佳单向通信路径都将被确定。事实上,经过该步骤,网络上的任意节点都将获得A到自己的最佳单向通信路径,同时该最佳单向通信路径上的其他节点到自己的最佳单向通信路径也将被确定。在此特别要注意,从A到B的最佳通信路径不一定能够实现从B到A的通信。
同理,如果让B广播同样的“最佳单向通信路径探测包”后,则网络中的任意节点将获得B到自己的最佳单向通信路径,同时获得了该路径上的任意节点到自己的最佳单向通信路径。
注:如任意选择数个节点广播“最佳单向通信路径探测包”,则网络上的任意节点都将知道大部分其他节点到自己的最佳单向通信路径。
第三步、当节点新增了部分其他节点到自己的最佳单向通信路径信息以后,该节点将发送“最佳单向通信路径通知包”,以告知这些新增节点到自己的最佳单向通信路径信息。
第三步的具体过程为:节点,如B,向“最佳单向通信路径探测包”的首发节点,如A,发出的“最佳单向通信路径通知包”中包含A到自己的最佳单向通信路径信息,此后,A将可选择该最佳通信路径向B传送数据和消息。节点B发出的“最佳单向通信路径通知包”中还包含节点B不曾通知过的所有已经知道B到自己的最佳单向通信路径的节点。节点B所发出的“最佳单向通信路径探测包”中还包含A到自己的最小跳数和相对跳数。收到该通知包的节点将知悉自己到达该通知包发送节点的最佳单向通信路径等信息。此后,这些节点将可选择相应的通信路径向该发送节点传送数据和消息。
第四步、节点通过“路径探测包请求发送消息”请求特定节点发送“最佳单向通信路径探测包”以获得该特定节点到自己的最佳单向通信路径信息。
经过第二步和第三步以后,网络上的任意节点将知道大部分其他节点到自己的最佳单向通信路径,也可能知道自己到大部分节点的最佳单向通信路径。但不排除部分节点(比如C)并不知道特定节点(比如D)到自己,或者自己到特定节点的最佳单向通信路径。
如果还有节点尚不知道特定节点(比如D)到自己的最佳单向通信路径,节点C可以向特定节点D发送“请求广播路径探测包消息”(该消息中包含请求者和被请求者的ID)直接请求对方发送一个“最佳单向通信路径探测包”。收到该请求消息后,节点D将根据情况自行决定是否按照第2步操作发送探测包。
然后再检测是否还有节点(比如C)尚不知道自己到特定节点(比如D)的最佳单向通信路径,如果有,节点C可根据需要自行决定是否按照第二步的操作来广播“最佳单向通信路径探测包”,以获得自己到特定节点的最佳单向通信路径。
如果“最佳单向通信路径探测包”得以发送,获知了新的最佳单向通信路径信息的节点将再次执行第三步。
藉此,任意两个想实现相互通信的节点将相互知道对方到自己和自己到对方的最佳单向通信路径信息。
本发明整个方法的流程如图4所示。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。