无线传感器网络路由方法与流程

文档序号:12134654阅读:1134来源:国知局
无线传感器网络路由方法与流程

本发明涉及无线传感器网络路由技术领域,尤其是涉及无线传感器网络路由方法。



背景技术:

无线传感器网络由具有感知计算和通信能力的传感器节点组成,节点以自组织方式组成多对一的通信网络,并把采集的数据通过多跳的方式发送到汇聚点。由于传感器节点主要依靠电池供电,能量有限且难以补充。因此节约并均衡节点的能量消耗,最大限度延长网络生存时间是无线传感器网络路由方法的主要设计目标之一。

然而,在某些场景下如用电信息采集、输电线路检测等,节点可由线路持续供电,能量持续,以往的路由算法有可能导致选路不合理,甚至造成网络能量的浪费。与此同时,无线传感器网络因具有节点部署密度大、集中式数据收集、多跳数据传输、多对一流量模式等特征,在实际应用中极易发生拥塞,而以往协议却忽视了这个问题。拥塞会引起网络延迟和丢包率的增加,这不仅影响网络的性能,由此导致的大量数据重传还会无谓的的能量损耗。因此通过设计合理的路由方法以提高网络能量利用率和均衡网络的流量负载是无线传感器网络路由设计的关键。



技术实现要素:

基于此,有必要针对传统无线传感器网络极易发生拥塞,造成网络延迟,并引起丢包率的增加,不仅影响网络的性能,还导致的大量数据重传还会无谓的能量损耗的缺陷,提供一种无线传感器网络路由方法。

一种无线传感器网络路由方法,包括:

接收数据包,解析所述数据包;

根据所述数据包获取当前节点的多个前向节点,以及汇聚节点;

获取所述当前节点和多个所述前向节点之间的多个第一距离、所述当前节点和所述汇聚节点之间的第二距离以及多个所述前向节点和所述汇聚节点之间的多个第三距离;

根据所述第一距离、所述第二距离和所述第三距离生成轮廓曲线;

计算所述轮廓曲线的伸缩率、轮廓长度和轮廓曲率;

根据所述轮廓长度,计算获得基于所述伸缩率和所述轮廓曲率的内力参数,以及计算获得基于所述当前节点和所述前向节点之间的网络性能参数的外力参数;

根据所述内力参数和所述外力参数计算合力参数,根据所述合力参数由多个所述前向节点中确定下一跳节点。

在一个实施例中,所述根据所述数据包获取汇聚节点和当前节点的多个前向节点的步骤包括:

根据所述数据包获取所述汇聚节点;

获取最大通信半径;

从与所述当前节点相邻的节点中,获取与所述当前节点之间的距离小于所述最大通信半径的相邻的节点为邻居节点;

从所述邻居节点中确定所述前向节点。

在一个实施例中,所述从所述邻居节点中确定所述前向节点的步骤包括:

从所述邻居节点中,获取与所述汇聚节点之间的距离小于所述当前节点和所述汇聚节点之间的距离的所述邻居节点,确定为所述前向节点。

在一个实施例中,所述从所述邻居节点中确定所述前向节点的步骤之后包括:

检测是否所述前向节点中是否包括所述汇聚节点,如是,则确定所述汇聚节点为所述下一跳节点,否则,执行所述获取所述第一距离、所述第二距离以及所述第三距离的步骤。

在一个实施例中,所述从所述邻居节点中,获取与所述汇聚节点之间的距离小于所述当前节点和所述汇聚节点之间的距离的所述邻居节点,确定为所述前向节点的步骤之后还包括:

检测所述前向节点的集合是否为空集,如是,则确定所述邻居节点为所述前向节点。

在一个实施例中,所述计算获得基于所述伸缩率和所述轮廓曲率的内力参数的步骤包括:

根据所述伸缩率和所述轮廓长度计算获得弹性力参数;

根据所述轮廓曲率和所述轮廓长度计算获得刚性力参数;

根据所述弹性力参数和所述刚性力参数计算获得内力参数。

在一个实施例中,所述网络性能参数包括所述当前节点的第一缓存占用率、所述前向节点的第二缓存占用率以及所述当前节点和所述前向节点之间的链路质量参数值;

所述计算获得基于所述当前节点和所述前向节点之间的网络性能参数的外力参数的步骤包括:

根据所述第一缓存占用率、所述第二缓存占用率、所述链路质量参数值以及所述轮廓长度计算获得所述外力参数。

在一个实施例中,所述计算获得基于所述当前节点和所述前向节点之间的网络性能参数的外力参数的步骤之前包括:

获取所述当前节点向所述前向节点发送数据的所述丢包率;

根据所述丢包率计算获得所述当前节点向所述前向节点的链路质量参数值。

在一个实施例中,根据所述内力参数和所述外力参数计算合力参数的步骤包括:

将所述内力参数和所述外力参数分别加权,计算所述内力参数和所述外力参数的加权之和,获得所述合力参数。

在一个实施例中,所述根据所述内力参数和所述外力参数计算合力参数,根据所述合力参数由多个所述前向节点中确定下一跳节点的步骤包括:

根据所述合力参数,由多个所述前向节点中确定合力参数最大的一个所述前向节点为所述下一跳节点。

上述的无线传感器网络路由方法,通过根据当前节点、前向节点和汇聚节点之间的距离生成的轮廓曲线,并将基于当前节点和前向节点之间的轮廓路径参数和网络性能参数,结合该轮廓曲线的长度,计算出虚拟的内力参数和外力参数,最终根据内力参数和外力参数计算出合力参数,以此根据该合力参数选择下一跳节点,使得下一跳节点的选择更为合理,避免无谓的能量损耗,有效避免网络拥塞,避免网络延迟,使得网络性能更佳,降低丢包率。

附图说明

图1A为一实施例的无线传感器网络路由方法的流程示意图;

图1B为另一实施例的无线传感器网络路由方法的流程示意图;

图1C为另一实施例的无线传感器网络路由方法的流程示意图;

图1D为另一实施例的无线传感器网络路由方法的流程示意图;

图2为另一实施例的无线传感器网络路由方法的流程示意图;

图3为一实施例节点i到节点j的轮廓C的示意图;

图4为一实施例基于轮廓的节点i到节点j的前进距离的路径示意图;

图5为不同算法下网络吞吐率与节点个数的关系的仿真结果示意图;

图6为不同算法下数据包平均能耗与节点个数的关系的仿真结果示意图;

图7为不同算法下数据包平均时延与节点个数的关系的仿真结果示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以某大型省级电网为实施例,结合附图对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1A所示,一个实施例的无线传感器网络路由方法,包括:

步骤120,接收数据包,解析所述数据包。

在本实施例中,该数据包为无线传感器网络中的数据包,该数据包在无线传感器网络中传输,该数据包携带了源地址和目的地址等信息,例如,该源地址为源节点,例如,该源节点为当前节点,例如,该目的地址为目的节点,例如,该目的节点为汇聚节点。通过解析该数据包,获取到源地址和目的地址,从而获取该数据包的发送方向,或者获取到该数据目的位置。例如,解析所述数据包,获取汇聚节点。

步骤140,根据所述数据包获取当前节点的多个前向节点,以及汇聚节点。例如,根据所述数据包获取当前节点、汇聚节点、以及当前节点的多个前向节点。

本实施例中,汇聚节点为目的节点,即该数据包传输的目的地址,当前节点为数据包当前所在节点,即该当前节点为接收数据包的节点,该前向节点为与当前节点相邻的节点,例如,该前向节点为当前节点的邻居节点。本步骤中,通过解析获得数据包内携带的汇聚节点的信息,并根据该汇聚节点的信息,获取到当前节点的多个前向节点的信息,以使得当前节点能够确定数据包的发送方向,进而明确将该数据包发送至哪一个节点。

步骤160,获取所述当前节点和多个所述前向节点之间的多个第一距离、所述当前节点和所述汇聚节点之间的第二距离以及多个所述前向节点和所述汇聚节点之间的多个第三距离。其中,所述当前节点和多个所述前向节点之间的多个第一距离,即,所述当前节点和每个所述前向节点之间的距离,亦称第一距离,因存在多个所述前向节点,因此得到多个所述第一距离,每一所述第一距离为一所述前向节点与所述当前节点之间的距离;同样的,多个所述前向节点和所述汇聚节点之间的多个第三距离,即,所述汇聚节点和每个所述前向节点之间的距离,亦称第三距离,因存在多个所述前向节点,因此得到多个所述第三距离,每一所述第三距离为一所述前向节点与所述汇聚节点之间的距离。

具体地,由于该当前节点可能存在多个前向节点,因此,需要一一获取当前节点与多个前向节点的距离,例如,分别获取当前节点与每一前向节点的第一距离,例如,获取每一前向节点与汇聚节点的第三距离,例如,该第一距离、第二距离和第三距离为欧式距离(euclidean metric,又称欧几里得度量,m维空间中两点之间的实际距离)。该多个第一距离分别表示当前节点和每一前向节点之间的距离,该第二距离表示当前节点和汇聚节点之间的距离,该多个第三距离分别表示每一前向节点和汇聚节点之间的距离。

步骤180,根据所述第一距离、所述第二距离和所述第三距离生成轮廓曲线。例如,对于各个前向节点,分别根据所述第一距离、所述第二距离和所述第三距离生成该前向节点的轮廓曲线。

例如,以所述第一距离、所述第二距离和所述第三距离作为三角形的三个边长,生成三角形,该三角形的三个顶点位于轮廓曲线上,例如,该轮廓曲线为圆形的弧线,该三角形的三个顶点即为当前节点、汇聚节点和前向节点,当前节点、汇聚节点和前向节点组成三角形,例如,以当前节点、汇聚节点和前向节点作圆,当前节点、汇聚节点和前向节点均设置在该圆的圆弧上,该圆弧即为轮廓曲线,即该轮廓曲线用于连接当前节点、汇聚节点和前向节点。例如,根据所述第一距离、所述第二距离和所述第三距离生成三角形,根据所述三角形生成轮廓曲线。该轮廓曲线能够很好地体现当前节点、汇聚节点和前向节点之间的位置关系和距离关系。

例如,当前节点与汇聚节点为三角形的两个顶点,第二距离即为该两个顶点的连接线,即三角形的一条固定边;某一前向节点为该前向节点所对应的三角形的第三顶点,通过该前向节点所对应的第一距离与第三距离,可以通过数学制图确定该前向节点的位置,生成该前向节点所对应的一个三角形,依此类推,可以得到各个前向节点的位置,从而生成某一前向节点的、包括当前节点、汇聚节点和该前向节点的轮廓曲线。例如,某一前向节点的轮廓曲线为一段圆弧,位于当前节点、汇聚节点和该前向节点的外接圆上;例如为该外接圆从当前节点经该前向节点到汇聚节点的圆弧线。

步骤200,计算所述轮廓曲线的伸缩率、轮廓长度和轮廓曲率。例如,分别计算各所述轮廓曲线的伸缩率、轮廓长度和轮廓曲率。

本步骤中,计算连接当前节点、汇聚节点和前向节点三者的圆弧的长度,该圆弧的长度即为轮廓曲线的长度。并计算获取该轮廓曲线的伸缩率和轮廓曲线的轮廓曲率。例如,根据第一距离、第二距离和第三距离计算获得轮廓曲线的伸缩率、轮廓长度和轮廓曲率。

步骤220,根据所述轮廓长度,计算获得基于所述伸缩率和所述轮廓曲率的内力参数,以及计算获得基于所述当前节点和所述前向节点之间的网络性能参数的外力参数。例如,对于各个前向节点,分别计算获得基于所述当前节点和该前向节点之间的网络性能参数的外力参数。

具体地,所述伸缩率表示单跳前进距离占最大前进距离的比例,所述伸缩率越大,数据包转发到下一跳节点后向汇聚节点的靠近程度越大,从而使在节点的一跳范围内使数据传输的能耗更小。而轮廓曲线则很好地体现当前节点经过前向节点到达汇聚节点路径或者距离,该轮廓曲率为轮廓曲线上某个点的切线方向角对弧长的转动率,以此来表达轮廓曲线偏离最短路径的平均程度,即轮廓曲线的弯曲程度可看作靠近最短路径的程度,弯曲程度越小,越靠近最短路径。该内力参数为基于伸缩率和轮廓曲率计算得出的参数,该内力参数能够很好地反应当前节点至前向节点的路径的合理性。

该网络性能参数用于反映当前节点至前向节点网络性能,例如,该网络性能参数包括节点的缓存占用率和链路质量参数,例如,该链路质量参数包括丢包率,该外力参数为基于该网络性能参数计算得出的参数,进而使得能够合理地避开网络性能较差的线路。

步骤240,根据所述内力参数和所述外力参数计算合力参数,根据所述合力参数由多个所述前向节点中确定下一跳节点。例如,对于各个前向节点,分别计算合力参数,根据各所述合力参数由多个所述前向节点中确定下一跳节点,例如,选取合力参数最大的一个所述前向节点为所述下一跳节点。

例如,根据所述内力参数和所述外力参数之和计算所述合力参数,例如,将所述内力参数和所述外力参数分别加权,计算所述内力参数和所述外力参数的加权之和,获得所述合力参数。例如,根据所述合力参数,由多个所述前向节点中确定合力参数最大的一个所述前向节点为所述下一跳节点。该下一跳节点为当前节点发送数据包的下一跳的节点,即当前节点确定下一跳节点后,将所述数据包发送至下一跳节点。

例如,每一前向节点对应一内力参数和外力参数,例如,每一前向节点对应一合理参数,该合力参数能够很好地反映当前节点与前向节点之间的链路质量、长度等,因此,根据该合力参数确定的下一跳节点,使得下一跳节点的选择更为合理,使得网络性能更佳,避免无谓的能量损耗,有效避免网络拥塞,避免网络延迟,降低丢包率。

例如,步骤240之后还包括:将所述数据包发送至下一跳节点。

本实施例中,通过根据当前节点、前向节点和汇聚节点之间的距离生成的轮廓曲线,并将基于当前节点和前向节点之间的轮廓路径参数和网络性能参数,结合该轮廓曲线的长度,计算出虚拟的内力参数和外力参数,最终根据内力参数和外力参数计算出合力参数,以此根据该合力参数选择下一跳节点,使得下一跳节点的选择更为合理,使得网络性能更佳,避免无谓的能量损耗,有效避免网络拥塞,避免网络延迟,降低丢包率。

为了提高前向节点的获取效率,提高下一跳节点获取的精度,在一个实施例中,如图1B所示,步骤140包括:

步骤142,根据所述数据包获取所述汇聚节点。

例如,该汇聚节点为目标节点,由解析的数据包内获得。

步骤144,获取最大通信半径。

具体地,最大通信半径为当前节点向外发送信号或者发送数据包所能达到的最大距离,大于该最大通信半径的节点,则可视为不可达。因此,本步骤中需要确定最大通信半径,以明确发送数据包的下一跳地址。

步骤146,从与所述当前节点相邻的节点中,获取与所述当前节点之间的距离小于所述最大通信半径的相邻的节点为邻居节点。

具体地,当前节点具有相邻的节点,该相邻的的节点为候选节点,相邻的节点即为与当前节点连接的节点,例如,该当前节点具有多个相邻的节点,而并不是所有的相邻的节点都可达,因此,需要在多个相邻的节点中,选取与当前节点之间的距离小于最大通信半径的节点作为邻居节点,以使得该数据包可达。通过上述过程获取到邻居节点,并获取到邻居节点的集合,该邻居节点的集合包括多个邻居节点。

步骤148,从所述邻居节点中确定所述前向节点。

本步骤中,进一步从邻居节点中确定前向节点,进一步减小下一跳节点的筛选范围,使得下一跳节点更为精确。

在一个实施例中,步骤148包括:从所述邻居节点中,获取与所述汇聚节点之间的距离小于所述当前节点和所述汇聚节点之间的距离的所述邻居节点,确定为所述前向节点。

例如,检测各邻居节点与汇聚节点之间的距离是否小于当前节点和汇聚节点之间的距离,是则确定该邻居节点为前线节点。

具体地,由于数据包发送至汇聚节点,因此,需要经过距离汇聚节点更近的节点进行数据的转发,当前节点以这些更为靠近汇聚节点的邻居节点作为前向节点,因此,本步骤中,从多个邻居节点中,选取与汇聚节点的距离小,且小于当前节点与汇聚节点之间距离的邻居节点作为前向节点,进而使得选取的前向节点更为靠近汇聚节点,提高前向节点的转发效率。

在一个实施例中,步骤148之后包括:检测是否所述前向节点中是否包括所述汇聚节点,如是,则确定所述汇聚节点为所述下一跳节点,否则,执行步骤160。

具体地,由于数据包是发送至汇聚节点,如多个前向节点中包括汇聚节点,则将数据包直接发送至汇聚节点,进而提高了发送效率,例如,从多个相邻节点中选取邻居节点,检测多个邻居节点中是否包括汇聚节点,如是,则确定所述汇聚节点为所述下一跳节点,例如,从多个邻居节点中选取前向节点,检测多个前向节点中是否包括汇聚节点,如是,则确定所述汇聚节点为所述下一跳节点,否则,则执行步骤160。即在前向节点中不包含汇聚节点,则根据上述过程计算得出最佳的下一跳节点,将数据包发送至该下一跳节点,并由下一跳节点转发至汇聚节点。

在一个实施例中,步骤148之后进一步包括:检测所述前向节点的集合是否为空集,如是,则确定所述邻居节点为所述前向节点。

具体地,检测各邻居节点是否存在与汇聚节点之间的距离是否小于当前节点述汇聚节点之间的距离,是则获取该邻居节点,并确定该邻居节点为前线节点。通过上述过程获取到前向节点,并获取到前向节点的集合,该前向节点的集合包括多个前向节点。如各邻居节点与汇聚节点之间的距离均大于当前节点和汇聚节点之间的距离,则该前向节点的集合为空集,即邻居节点中不包含前向节点,则确定邻居节点为前向节点,例如,确定所有的邻居节点为前向节点。由于各邻居节点与汇聚节点之间的距离均大于当前节点和汇聚节点之间的距离,因此,邻居节点中并不存在较为靠近汇聚节点的节点,因此,各邻居节点均可作为下一跳的候选节点。

在一个实施例中,如图1C所示,步骤220包括:

步骤222,根据所述伸缩率和所述轮廓长度计算获得弹性力参数。

可以理解,数据包在从当前节点向前向节点输送,并经前向节点转发至汇聚节点,其在传输过程中可看作是沿着轮廓曲线传输,该数据包相当于受到一个弹性力而沿着轮廓曲线运动,例如,弹性力参数与所述伸缩率正相关。因此,在本实施例中,该弹性参数用于表示作用于该轮廓曲线的弹性力,轮弹性参数越大,数据包转发到下一跳节点后向汇聚节点的靠近程度越大,从而使在节点的一跳范围内使数据传输的能耗更加小,则经过该前向节点至汇聚节点的链路的优先级越高。因此,该数据包发送至下一跳节点的信号强度更高。应该理解的是,信号在网络中传输时,其信号强度会随着距离的增加而衰减,这部分信号的衰减即为能量损耗,能量损耗越小,则送到的信号强度则越高。

步骤224,根据所述轮廓曲率和所述轮廓长度计算获得刚性力参数。

具体地,轮廓曲率为轮廓曲线上某个点的切线方向角对弧长的转动率,以此来表达轮廓曲线偏离最短路径的平均程度,即轮廓曲线的弯曲程度可看作靠近最短路径的程度,弯曲程度越小,越靠近最短路径。例如,该刚性力参数与所述轮廓曲率正相关。

数据包沿着轮廓曲线传输可看作是数据包受到一个刚性力作用,刚性力控制轮廓曲线的弯曲程度,即靠近最短路径的程度,弯曲程度越小,其刚性力越大,驱使数据包尽量转发到最短路径上的某个节点。因此,该刚性力参数越大,则使得数据包能够以最短路径发送至下一跳节点,则经过该前向节点至汇聚节点的链路的优先级越高。

步骤226,根据所述弹性力参数和所述刚性力参数计算获得内力参数。

具体地,由该弹性力参数和该刚性力参数计算获得的内力参数,能够使得数据包的发送更为高效,能够以最短路径发送至汇聚节点,且能够有效降低数据包发送时的能量损耗。

在一个实施例中,所述网络性能参数包括所述当前节点的第一缓存占用率、所述前向节点的第二缓存占用率以及所述当前节点和所述前向节点之间的链路质量参数值。本实施例中,步骤220还包括::

根据所述第一缓存占用率、所述第二缓存占用率、所述链路质量参数值以及所述轮廓长度计算获得所述外力参数。

具体地,该缓存占用率反映了节点当前数据包的队列,反映了节点当前的负载情况,本实施例中,当前节点优先选择缓存占用率较低的节点作为下一跳节点,例如,优先选择缓存占用率较当前节点的缓存占用率低的邻居节点作为下一跳节点,例如,优先选择第一缓存占用率大于所述第二缓存占用率的邻居节点,例如,第一缓存占用率和所述第二缓存占用率之差与外力参数呈正相关,这样,能够使得该数据包在下一跳节点能够迅速转发,提高数据包的发送效率。

而该链路质量参数值则反映了当前节点向前向节点发送数据,并经该前向节点转发至汇聚节点的网络质量。例如,该外力参数与链路质量参数呈负相关。

在一个实施例中,如图1D所示,步骤220之前包括:

步骤218,获取所述当前节点向所述前向节点发送数据的所述丢包率。

步骤219,根据所述丢包率计算获得所述当前节点向所述前向节点的链路质量参数值。

例如,该链路质量参数值与该丢包率为正相关,即该丢包率反映了链路质量。该外力参数与丢包率负相关,也就是丢包率越高,则该外力参数越小,则经过该前向节点至汇聚节点的链路的优先级越低;该丢包率越小,则该外力参数越大,则经过该前向节点至汇聚节点的链路的优先级越高。

如图2所示,下面是一个具体的实施例:

步骤301,接收数据包,解析数据包。

步骤302,根据数据包获取汇聚节点和前向节点集。

具体地,首先从当前节点中的相邻的候选节点中获取邻居节点。

当前节点i的邻居节点集可表示为:

N(i)={j|di,j≤Rtx} (1)

其中,di,j表示节点i,j之间的距离,Rtx表示节点的最大通信半径,本实施例中,di,j为第一距离。

随后,从邻居节点中获取前向节点。

当前节点i的前向节点集可表示为:

FN(i)={j|j∈N(i),dj,s<di,s} (2)

其中,di,s,dj,s分别表示节点i,j到汇聚节点(sink节点)的欧式距离,本实施例中,di,s,dj,s分别为第二距离和第三距离。

步骤303,生成轮廓曲线,计算轮廓曲线的长度。

本实施例中,生成轮廓曲线即生成轮廓模型。

节点i到节点j的轮廓定义为C,如图3所示,若当前节点i转发数据包至邻居节点j,经过节点i,j,sink作圆,设圆心(x0,y0),则弧i.j即为轮廓C。p是轮廓C曲线参数,其上任意一点可记为:

C(p)=(x(p),y(p)) (3)

假设节点i,j,sink的曲线参数分别为p0,p1,p2,则轮廓所在圆弧对应的圆心计算公式如下:

将C上任意一点C(p)的导数记作Cp=(xp,yp)。进而轮廓C所对应的弧微分可表示为:

通过对ds进行积分可得到节点i到节点j的轮廓曲线的长度为:

步骤304,根据轮廓曲线,计算内力参数和外力参数。

本实施例中,内力参数即为内力,弹性力参数为弹性力,刚性力参数为刚性力,外力参数为外力。

考虑节点传输范围受限等原因,大多数节点往往不能直接与基站进行通信,而需要依靠其余节点采用多跳转发的方式转发数据。为此,综合考虑当前节点、邻居节点和汇聚节点间的距离,定义轮廓曲线所受的内力,从提高网络能量有效性的角度出发建立数据包在无线传感器网络中的转发路径。轮廓所受内力包括弹性力和刚性力,二者的共同作用将驱使数据包尽可能沿着最短路径转发到下一跳节点。

计算弹性力过程如下:

在自由空间模型下,在节点的一跳通信范围内选择单跳长距离传输的能量消耗更有效。因此,在数据传输时,数据源节点或转发节点应在其一跳通信范围内选择到数据节点更近的邻居节点作为转发节点。如图4所示,为了精确量化这一规律,定义节点i到节点j的前进距离为:

节点i处的数据包要想到达汇聚节点需要被转发至i的前向节点,为决定这下一跳邻居节点,定义一个作用于该轮廓曲线上的弹性力,它基于节点i到邻居节点j的前进距离。对于前向节点j定义该弹性力为:

其中,αi,j为弹性力系数,其控制轮廓曲线C的伸缩率,将其定义为单跳前进距离占最大前进距离的比例,即

可见,轮廓的弹性系数越大,数据包转发到下一跳节点后向数据节点的靠近程度越大,从而使在节点的一跳范围内使数据传输的能耗更加有效。

计算刚性力过程如下:

由传感器节点的能耗模型可知,在自由空间模型下传感器节点发送数据的能耗与传输距离的平方成正比例关系。若使数据传输路径上的每一个中转节点都处在从数据源节点到数据节点的连线上,则数据传输过程中消耗的总能量最少。但一跳通信范围内的邻居节点并不一定处在从源节点到数据节点的连线上,因此轮廓曲线的弯曲程度也应作为节点能量优化的参数之一,为此定义一个作用在轮廓曲线C上的刚性力

其中,βi,j为促使轮廓曲线靠近最短路径的刚性系数定义为:

βi,j=di,s/(di,j+dj,s) (11)

由上述定义可知,0<βi,j≤1,当节点j在i到数据节点的连线上时,βi,j取得最大值1。

Ki,j为轮廓曲线的曲率,如图3所示,即曲线上某个点的切线方向角对弧长的转动率,以此来表达轮廓偏离最短路径的平均程度,其计算公式为:

其中,Δγ为轮廓曲线的切线转过角度,Δs为对应弧长,R为轮廓曲线所在的圆弧对应的圆半径。

根据式(10)可知,刚性力控制轮廓曲线的弯曲程度,即靠近最短路径的程度,弯曲程度越小,其刚性力越大,驱使数据包尽量转发到最短路径上的某个节点。

因此,轮廓C受到的内力可表示为:

由式(13)可知,在内力的作用下,传感器节点的数据包在最大内力的驱使下将沿着最短距离路径(梯度最大)流向汇聚节点。当轮廓曲线只受到这一种力作用时,最短路径一旦确定,就不再发生变化。然而处于转发路径上的节点,尤其是靠近数据节点或某些中转节点转发任务重,流量负载大,容易产生拥塞,导致传输时延增大甚至数据包的丢弃,严重影响网络的传输质量。为了提高网络的传输质量,还需要从流量均衡的角度出发,构建其他作用力,使其具有流量感知的功能以均衡网络的流量负载。

计算外力过程如下:

基于事件驱动的无线传感器网络中的数据传输具有明显的“多对一”特性,在流量突发的情况下,这种特性会使网络中产生热点,引起拥塞进而造成时延和传输成功率的恶化,同时由此造成的数据包重传也会造成无谓的能量浪费。由于节点的缓冲区占用情况是一个可靠的拥塞检测指标,为此在建立路由时考虑这一指标避开缓存占用大的节点从而将流量负载转移到空闲或负载较轻的节点,实现无线网络资源的公平利用。

节点i的缓存占用率可表示为:

Vi=qi/qmax (14)

其中,qi为节点i的当前队列长度,qmax为节点缓冲区最大队列长度。可见队列占用率可有效表示节点的负载轻重。

当节点i向其某一前向节点j转发数据包时,将二者之间的势函数定义为:

其中,costi,j为节点i与邻居节点j间的链路质量。如果使用链路丢包率来衡量链路质量,那么则有

其中,Lossi,j为上一轮节点i向邻居节点j发送数据的丢包率。

为了将数据包转移至负载较轻的节点,基于当前节点i与下一跳备选节点j之间的负载差异和链路质量,定义一个作用在轮廓上的外力,其计算公式如下:

在外力的作用下,数据包在当前节点i的前向发送范围内选择负载轻且链路质量好的邻居节点进行转发,改变了只有内力作用下数据包总是沿着最短距离路径转发的单一路由方案,从而实现节点能量有效性和流量均衡性的均衡匹配。

步骤305,根据内力参数和外力参数计算合力参数。

本实施例中,合力参数为合力。

综合考虑节点的能耗和流量负载,式(13)和式(17)分别定义了轮廓所受的内力和外力。二者对路由选择的影响最终决定于其融合方式。无论采用何种路由方式,最终的路由选择将决定于三个因素:内外力的取值、融合方式以及融合表达式中各项系数。实际上后两项共同决定内外力对路由选择的影响程度。简单起见,将上述内力和外力进行线性加权得到该轮廓曲线所受到的合力为:

其中,λ和μ为正调和系数,且:

λ+μ=1 (19)

由式(18)知,调和系数的取值将很大程度影响路由协议的具体性能。为了确定内外力对轮廓曲线的各自作用,消除随机性,采用如下的调和系数计算方法:

λ=σint/(σintext) (20)

μ=σext/(σintext) (21)

其中,σint和σint分别为节点i到其前向节点所构成轮廓模型所受内力和为外力的标准差,其可以有效调和轮廓所受内力和外力的不均衡程度。

合力的作用不仅保证数据包选择其前向节点中负载较轻且流量汇聚节点的最短路径方向上的节点作为下一跳,而且保证在避免路由回传、环路的情况下,绕过拥塞节点并流经较短路径到达汇聚节点,实现率全网节点能量有效和流量均衡的结合。

步骤306,选择合力参数最大的前向节点作为下一跳节点,将数据包发送至该下一跳节点:

下面是基于上述实施例的一个路由方法:

1)选取需要转发信息的传感器节点i的邻居节点集和前向节点集。首先以d0为通信半径,确定与i之间有边存在的邻居节点集合Nbr(i),在其中选出距离汇聚节点比i近的节点,则这些节点组成了i的前向节点集合FNbr(i)。

2)确定节点i和前向节点间的轮廓模型。并根据式(6)计算出轮廓曲线的长度Ci,j

3)分别计算轮廓所受的弹性力和刚性力,根据式(13)计算出内力

4)根据式(17)计算当前节点i与每一个下一跳节点间轮廓所受的外力

5)将步骤3)和4)中的参量代入式(18),求轮廓模型所受到的合力,然后根据式(22)选择下一跳节点;

6)若FNbr(i)为空集,则直接在Nbr(i)中比较各轮廓模型所受合力,选择合力最大的节点作为下一跳;若Nbr(i)仍为空集,则丢弃该数据包。

7)若当前向节点集合包含汇聚节点时,直接将数据转发给汇聚节点,完成整个数据传输过程。

为了检验算法的性能,本文采用Matlab对VFTR与GPSR、TADR三种协议进行对比,其中VFTR即为本发明的无线传感器网络路由方法,仿真过程中,所有传感器普通节点同构:具有相同的存储能力、计算能力和传输半径,同时所有节点能量不受限制,随机分布在100m*100m的正方形区域内,所有节点一旦放置就不再移动。具体仿真参数如表1所示,仿真参数并不恒定,可以根据不同需要改变某些参数。

在无线传感器网络中,评价一个路由算法的性能指标很多,本文选择网络吞吐率、数据包平均能耗和数据包平均时延这三项指标来衡量各算法的性能。网络吞吐率定义为仿真过程中sink节点接收到的数据包的个数与源节点发送的数据包个数的比值,该指标能够有效反映网络传输的可靠性。数据包平均能耗定义为sink节点每收到一个数据包平均所消耗的能量,因此其能够有效地衡量网络的能量效率。数据包时延定义为从源节点发送到sink节点接收所用的时间,因此平均时延即所有数据包时延之和与sink节点接收到数据包个数之比。

表1 仿真参数

(1)网络吞吐率

如图5所示,为采用VFTR与GPSR、TADR三种不同的路由算法,当节点数量从50到300变化时对应的无线传感器网络吞吐率对比结果。从图中可以看出,VFTR算法与GPSR、TADR算法相比有效提高了网络吞吐率。

(2)数据包平均能耗

数据包平均能耗衡量一个数据包由源节点转发至sink节点时所消耗的平均能量,其有效反映了无线传感器网络的能量效率。取各路由算法运行至400s时sink节点接收到的每个数据包的平均能耗进行比较与分析。如图6所示,其展示了不同拓扑设置场景下的仿真结果。可以看出VFTR算法相较其他算法拥有最低的数据包平均能耗。同时,与其他路由节能算法相比其性能受到网络规模变化的影响也最小。

(3)平均时延

如图7所示,对GPSR、TADR和本文的VFTR三种算法在不同的节点个数下的数据包平均时延进行了对比,从图7中可以反应出:GPSR时延最高,TADR次之,而VFTR时延最低。

上述各实施例,通过对无线传感网络中的数据传输机制进行详细分析通过建立轮廓模型,随后从降低节点能耗和均衡网络负载的角度出发,基于节点的地理位置和队列占用率分别定义轮廓曲线的内力和外力,使数据包依据合力最大的原则选择下一跳节点,从而提高了无线传感网络数据传输的自组织性,保证了节点能量的高效利用,并有效均衡了网络的流量负载。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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