一种用于无线传感器网络的实时通信路由方法

文档序号:7765148阅读:548来源:国知局
专利名称:一种用于无线传感器网络的实时通信路由方法
技术领域
本发明涉及一种无线传感器网络技术,尤其是涉及一种用于无线传感器网络的实 时通信路由方法。
背景技术
目前,无线传感器网络已开始应用于环境监测、战场实时跟踪和交通控制等领域。 这些应用通常对网络的实时性都有较高的要求,需要保证网络中的传感器节点采集到的数 据能够实时地发送到基站节点。以无线传感器网络应用于森林防火为例,由部署在监控区域的传感器节点负责监 测是否有火灾发生。当监控区域内环境温度正常时,传感器节点采集到温度数据后,以非实 时地传输方式将这些数据发送到基站;而当传感器节点监测到环境温度异常时,监控区域 有可能发生了火灾,需要将该异常温度信息实时地发送到基站节点以便采取相应的措施。 另外,由于包含异常温度信息的数据包非常重要,因此在向基站发送数据包时除了保证实 时性外,还需要保证数据包的可靠传输。如果数据包在实时传输过程中发生了丢失,将可能 导致整个传感器网络应用的失败。目前,研究人员已经针对如何实现无线传感器网络中数据包的实时传输展开了研 究,并设计实现了若干无线传感器网络的实时通信路由方法。下面将详细分析一些实时通 信路由方法。路由访间协议(Route Access Protocol,简称RAP协议)根据数据包的时延要求 以及节点地理位置信息提出了速度单调调度策略。节点利用该策略在时间域进行服务区 分,优先满足实时性要求高的数据传输。但是RAP协议要求网络的流量周期已知,显然大多 数无线传感器网络应用不能满足上述条件。Tian He等人设计了一个基于反馈控制和无状态算法的支持实时通信的路由协议 (简称SPEED协议)。SPEED协议是地理位置信息相关的路由协议,它面向实时应用提供端到 端数据包传输速率保证。在满足网络传输速率要求的前提下,数据包的传输延迟与源节点 和目的节点之间的距离成正比。该协议中还实现了网络拥塞控制、负载平衡以及路由空洞 避免机制,能有效提高数据传输成功率、节省能量消耗、延长网络寿命。由于该协议是无状 态的结构,节点只需保存其邻居节点信息,无须保存路由表全局信息,有很好的扩展性。但 该协议只提出了一个广义的网络速度概念,不能满足不同实时应用要求的数据包的传输。Emad Felemban等人在SPEED协议的基础上提出了一个支持多路径、多速度的实 时路由协议(multipath Multi-SPEED,简称MMSPEED协议)。MMSPEED协议的一个主要目标 是在实时性和可靠性两个方面为网络应用提供QoS服务区分。网络中的数据包可根据应用 的实时性、可靠性需求选择合适的服务选项组合。针对服务区分中的实时性,MMSPEED协议 提供了多种网络传输速度保证的选择,对只支持单一传输速度保证的SPEED协议进行了扩 充。而针对可靠性,MMSPEED协议根据数据包的可靠性要求,利用传感器网络节点的冗余性 实现了数据包多路径转发。另外,为了补偿局部转发选择的不准确性,MMSPEED协议还提出了动态补偿策略,通过这种方法,能够较好地满足应用端到端数据包传输的可靠需求。Chipara等人提出了实时相关功率控制路由协议(Real-time Power-Aware Routing,简称RPAR协议)。网络中的待传输的数据包都由应用赋予了一个软时限,表示该 数据包在传输时端到端的延迟时限。在不增加能量消耗的前提下,提高满足延迟要求的数 据包传输成功比例。RPAR协议能够根据数据包的延迟需求和网络负载情况,动态调整节点 的传输功率和路由选择。RPAR协议还设计了高效的邻居管理器能够快速发现满足延迟需要 的下一跳节点。以上实时通信路由协议均采用了基于ACK反馈的方法来估计单跳节点的延迟。在 基于ACK反馈的方法中,发送节点通过计算发送数据包与其接收到下一跳节点返回的ACK 数据包的时间差作为节点间数据传输的延迟估计,即RTT(Roimd Trip Time)时间。该方法 可以较好地估计一跳邻居节点间的通信延迟,并利用到目的节点的距离差计算邻居节点间 的“速度”。发送节点将从前趋邻居节点中选择满足应用速度要求的节点作为下一跳,实现 数据的实时传输。但是该方法忽略了下一跳节点的链路及负载状况,使用该方法可能将数 据包发送到负载较重或前趋链路状况较差的节点。如果下一跳节点的负载较重,数据包将 在下一跳节点缓冲队列中的排队时延较长;而如果下一跳节点与其前趋邻居的链路状况较 差,将导致单个数据包的服务时间较长。以上两种情况都将增加数据包的排队延迟,使得部 分数据包可能因为超时而丢失,降低了数据包的实时传输可靠性。另外,由于无线传感器网络的网络拓扑动态的特点,使得网络数据传输路径中容 易形成路由空洞。当数据包实时传输到路由空洞区域时,如果不采取相关策略将导致数据 包的丢失。由于仅采用贪婪策略无法解决上述问题,目前基于地理信息的路由协议普遍采 用空洞环绕等机制沿空洞边界节点传输数据包。上述的用于无线传感器网络的实时通信路 由协议都是基于地理信息的,但基本未针对当网络中出现路由空洞时如何继续保证数据的 实时可靠传输提出相应的解决方法。尽管MMSPEED协议通过多路径方式为数据包可靠传输 提供了支持,但其主要解决了无线链路干扰和不稳定性所造成的数据包丢失问题,没有解 决当路由空洞出现时实时数据如何可靠传输的问题。RPAR协议对路由空洞问题进行了讨 论,认为可以通过加大空洞边界节点发射功率的方法绕过空洞,但并没有给出具体实现的 方法。SPEED协议中虽然实现了基于反向压力信标的路由空洞避免机制,但是其仍存在很大 的不足一方面由于SPEED协议不允许出现“负速度”,抵达路由空洞的数据包将被丢弃;另 一方面利用反向压力信标通知的上游节点仍然可能通过其它路径将数据包继续向路由空 洞区域发送,导致数据包丢失率很高。下面将结合实例介绍SPEED协议中的路由空洞避免 机制。SPEED协议中,当数据包发送到空洞节点时,将采用与处理网络拥塞类似的方法。 空洞节点发送反向压力信标通知上游节点重新选择路由,避免数据包再次进入空洞区域, 当前空洞节点接收到的数据将直接丢弃。图1给出了一个例子,假设图1中的传感器节点2 是一个空洞节点,当传感器节点1发送的数据包到达传感器节点2后,由于传感器节点2的 前趋转发邻居表为空,它将发送一个反向压力信标Back Pressure,该反向压力信标包括当 前空洞节点的标识号、目标节点的标识号和平均延迟,其中,平均延迟被设为⑴。传感器节 点1在接收到该反向压力信标后,将前趋转发邻居表中的传感器节点2的平均延迟设为⑴, 并不再向传感器节点2继续发送数据包,而是选择前趋转发邻居表中的另一个满足实时要求的节点作为下一跳节点,如选择满足实时要求的节点3作为下一跳节点,最后传输到作 为基站节点target的传感器节点5。如果某传感器节点没有其他的前趋邻居节点,那么该 传感器节点将继续向上游节点转发反向压力信标。但是通过分析发现,利用上述SPEED协议中的路由空洞避免机制,空洞节点在发 送反向压力信标后,实时数据包仍然可能继续向空洞节点发送。如图2a所示,当传感器节 点2接收到来自传感器节点1的数据包后,它将广播一个反向压力信标通知其通信范围内 的所有传感器节点。当传感器节点1和3接收到该反向压力信标后,将前趋转发邻居表中 的传感器节点2的平均延迟设为⑴。传感器节点4由于不在传感器节点2的广播通信范围 内,将无法接收到该反向压力信标。而当传感器节点4有数据包要传输时,它将可能选择传 感器节点3作为下一跳节点。而传感器节点1在接收到反向压力信标后,将在前趋转发邻 居表中选择另外一个满足延迟要求的节点作为下一跳节点进行数据包的传输。假设传感器 节点1也选择了传感器节点3作为下一跳节点,由于传感器节点3的前趋转发邻居表中唯 一的传感器节点2的平均传输延迟为无穷大,因此没有合适的下一跳节点可以满足应用延 迟的需求,所有传感器节点3接收到的数据包都将被丢弃,造成能量的浪费。造成这一现象 的主要原因是,尽管反向压力信标可以有效地通知上游节点有路由空洞的存在,但却无法 通知其他传感器节点不要发送数据包给如传感器节点3这样的准空洞节点,从而造成了数 据包的丢失。而如图2b所示的路由空洞避免机制实例,如果传感器节点1的前趋邻居节点只有 空洞节点2,那么源节点0所监测到的所有数据包都无法传输成功,显然这对火灾监测等实 时应用来说是无法接受的。通过在J-Sim平台的仿真实验说明,当网络中出现空洞节点时, SPEED协议的路由空洞避免机制尽管采用了反向压力信标,但是因为路由空洞而造成数据 包的严重丢失,从而降低了网络数据抵达率,同时浪费了很多网络能量。

发明内容
本发明所要解决的技术问题是提供一种能够有效防止数据包丢失,且具有较高实 时性的用于无线传感器网络的实时通信路由方法。本发明提供的用于无线传感器网络的实时通信路由方法,无线传感器网络包括多 个部署在监控区域内的传感器节点和基站节点,所述传感器节点和所述基站节点能够获取 自己的地理位置信息,所述传感器节点知晓所述基站节点的地理位置信息,所述传感器节 点将包含有采集到的信息的数据包发送给所述基站节点;其中当前节点接收到上游节点发 往所述基站节点的数据包后,根据当前节点与该当前节点的前趋邻居节点之间的通信延迟 以及前趋邻居节点的排队延迟,计算得到当前节点与该当前节点的所有前趋邻居节点之间 的数据包传输速度,并将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中 选择下一跳节点进行数据包的转发;所述前趋邻居节点为当前节点的所有邻居节点到基站 节点的距离小于当前节点到基站节点的距离的传感器节点,所述前趋转发邻居表为由当前 节点的前趋邻居节点构成的集合,所述当前节点、邻居节点、上游节点、下一跳节点均为传 感器节点。所述根据当前节点与该当前节点的前趋邻居节点之间的通信延迟以及前趋邻居 节点的排队延迟,计算得到当前节点与该当前节点的所有前趋邻居节点之间的数据包传输速度包括如下步骤Al.设当前节点为i,当前节点i的前趋邻居节点为j(n),n = 1,2,…,N,N为当 前节点i的前趋转发邻居表中的前趋邻居节点的个数;假设当前节点i欲向第一个前趋邻 居节点j(l)转发数据包,设前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘,缓 冲队列的平均长度为;A2.当前节点i向第一个前趋邻居节点j (1)转发数据包,前趋邻居节点j (1)接收 到原发送节点i发送的数据包后,该数据包进入前趋邻居节点j (1)的缓冲队列中等待处理 和发送,同时,前趋邻居节点j(l)向原发送节点i返回一个ACK数据包,该ACK数据包中包 含有前趋邻居节点j(l)成功发送一个数据包的平均延迟‘和缓冲队列的平均长度lj(1);A3.根据ACK反馈方法,获取当前节点i与前趋邻居节点j(l)之间的通信延迟 HopDelayf);A4.根据前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘和缓冲队 列的平均长度为lj(1,计算得到数据包在前趋邻居节点j(l)的排队延迟QueueDelay^), QueueDelayj⑴=Sj⑴·1Κ1);Α5.当前节点i根据前趋邻居节点j(l)的排队延迟QueUeDelayj(1)和当前节点 i与前趋邻居节点j(l)之间的通信延迟HopDelay丨(1)计算得到当前节点i与前趋邻居节点 j ⑴之间的总延迟DelayfD,Delayf1) =QueueDelayjw +HopDelayf1);A6.当前节点i接收到ACK数据包后,根据指数加权平均方法更新当前节点i中对 ‘和的估计得到当前节点i成功发送一个数据包的平均延迟Si和缓冲队列的平均长 度 Ii 的估计值,Si = α X Sold+(1-α) XSsample, Ii = α X l。ld+(1_ α ) X Isample,其中,S。ld、Iold 表示原估计值,Ssample、Isample为新的采样值,α为动态调节参数;当前节点i每隔T采样时 间更新平均延迟Si和缓冲队列的平均长度Ii的估计值,并通过更新后的Si和Ii计算新的 通信延迟、排队延迟和总延迟;A7.当前节点i采用上述相同的方法更新和计算当前节点i的前趋转发邻居表中 的所有前趋邻居节点的通信延迟、排队延迟和总延迟;A8.根据总延迟计算当前节点i与前趋邻居节点j (r之间的速度 S ρ e ) (Dest , Speedf1) (Destination) =竺,其中 L 表示当前节点 i 到基站
节点的距离,L_next表示前趋邻居节点j(n)到基站节点的距离,Delayfn)表示当前节点i与 前趋邻居节点j (η)之间的总延迟,η = 1,2,…,N,N为前趋邻居节点的个数;所述将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择下一 跳节点进行数据包的转发包括如下步骤Α9.计算标准应用速度S_。mt =^JZT-,其中Ls为源节点到基站节点的欧式
Uelay application
距离,Delayappli。ati。n为标准应用总延迟,将当前节点i与前趋邻居节点j (η)之间的总延迟 Del^w和标准应用总延迟D e Ia寻y i记录到数据包中,并通过S ρ e^ } ( D e ^t Is 9 , 从前趋邻居节点j(n)中选择下一跳节点进行数据包的转发;所述的源节点为第一次发送数据包的传感器节点。当空洞节点或空洞区域节点接收到数据包后,向其所有的邻居节点广播自己为空 洞节点或空洞区域节点,并利用路由空洞双向边界环绕操作将接收到的数据包继续转发; 所述空洞节点为前趋转发邻居表为空的传感器节点,所述空洞区域节点为前趋转发邻居表 中前趋邻居节点为空洞节点或空洞区域节点的传感器节点。当空洞节点或空洞区域节点接收到数据包后,通过路由空洞传播操作向其所有的 邻居节点广播自己为空洞节点或空洞区域节点,此时接收到数据包的空洞节点或空洞区域 节点为当前节点,所述路由空洞传播操作包括如下步骤当前节点向其所有的邻居节点广播一个空洞信标;该空洞信标包括当前节点的标 识号、基站节点的标识号、当前节点与基站节点之间的距离和当前节点的平均发送时延;当前节点的上游节点接收到空洞信标后,上游节点更改自己的前趋转发邻居表; 当上游节点的前趋转发邻居表中的前趋邻居节点都为空洞节点或空洞区域节点时,该上游 节点为空洞区域节点,该上游节点更新其空洞信标中的当前节点与基站节点之间的距离的 值,并向其所有的邻居节点广播该空洞信标。所述路由空洞双向边界环绕操作包括如下步骤当空洞节点或空洞区域节点接收 数据包后,将数据包进行备份,再根据左手规则和右手规则分别选择下一跳节点,将两种传 输方式分别记录到数据包和备份数据包中,并将数据包和备份数据包沿两条路径分别同时 向各自的下一跳节点发送;下一跳节点接收到数据包或备份数据包后,根据记录在数据包 或备份数据包中的传输方式继续发送数据包或备份数据包。所述的传输方式包括左手规则传输方式和右手规则传输方式。所述的源节点在发送时对每个数据包进行编号,当基站节点接收到数据包和备份 数据包后将丢弃数据包或备份数据包。与现有技术相比,本发明的优点在于该实时通信路由方法在满足无线传感器网络 实时应用需求的同时,在选择下一跳节点时,既考虑了传感器节点间的通信延迟,也考虑了 下一跳节点的负载及链路状况可能影响的排队延迟,有效地保证了数据包在实时转发过程 中选择更高效的路径进行转发,降低了数据包的传输时延,同时提高了数据包的传输可靠 性;当网络中出现路由空洞时,当空洞节点或空洞区域节点接收到数据包后,向其所有的邻 居节点广播自己为空洞节点或空洞区域节点,并利用路由空洞双向边界环绕方法将接收到 的数据包继续转发,有效保证了数据包的继续实时可靠传输;通过仿真实验表明,相比现有 的SPEED协议,当网络中出现路由空洞时,在保证网络开销的前提下,利用本发明的实时通 信路由方法,实现数据包的传输成功率平均提高了 30%,延迟平均降低了 20% ;此外,本发 明还适用于大规模、高密度、能量资源受限的无线传感器网络的多跳可靠实时通信。


图1为无线传感器网络应用于森林防火的示意图;图2为采用现有的SPEED协议的路由空洞避免机制的实例示意图一;图2a为采用现有的SPEED协议的路由空洞避免机制的实例示意图二 ;图2b为采用现有的SPEED协议的路由空洞避免机制的实例示意图三;图3为本发明用于无线传感器网络的实时通信路由方法的一实施流程图4a为采用本发明的空洞传播方法的实例示意图一;图4b为采用本发明的空洞传播方法的实例示意图二 ;图4c为采用本发明的空洞传播方法的实例示意图三;图4d为采用本发明的空洞传播方法的实例示意图四;图4e为采用本发明的空洞传播方法的实例示意图五;图4f为采用本发明的空洞传播方法的实例示意图六;图5a为采用本发明的空洞双向边界环绕方法的实例示意图一;图5b为采用本发明的空洞双向边界环绕方法的实例示意图二 ;图6为采用本发明的实时通信路由方法与采用现有的SPEED协议的数据包抵达率 的比较示意图;图7为采用本发明的实时通信路由方法与采用现有的SPEED协议的平均延迟的比 较示意图;图8为采用本发明的实时通信路由方法与采用现有的SPEED协议的控制数据包开 销的比较示意图。
具体实施例方式以下结合附图实施例对本发明作进一步详细描述。无线传感器网络包括多个部署在监控区域内的传感器节点和基站节点;传感器节 点和基站节点能够通过公知的定位装置(如GPS等)或相关的定位算法获取自己的地理 位置信息;每个传感器节点在获取自身的地理位置信息后,将向全网广播一个信标帧,该信 标帧包含有传感器节点的地理位置信息,当传感器节点发生变化或者间隔一段固定的时间 后,将更新信标帧,并向全网重新广播更新后的信标帧;基站节点的通信范围能够覆盖全 网,并在传感器网络初始化阶段广播包含基站节点的地理位置信息的信标帧,即传感器网 络中的所有的传感器节点都能知晓基站节点的地理位置信息,传感器节点将包含有采集到 的信息的数据包发送给基站节点。在描述本发明用于无线传感器网络的实时通信路由方法之前,首先对基本概念进 行描述。(1)、源节点第一次发送数据包的传感器节点。(2)、邻居节点当两个传感器节点之间的距离小于或等于传感器节点的通信半径 时,两个传感器节点之间直接互相通信,这两个传感器节点互为邻居,其中一个传感器节点 为另一个传感器节点的邻居节点。(3)、邻居节点表由邻居节点构成的集合。传感器网络中的每个传感器节点都维 持有一个邻居节点表,当传感器节点接受到邻居节点的信标帧后,将在该邻居节点表中添 加相应的传感器节点,并将传感器节点的地理位置信息记录在邻居节点表中。(3)、上游节点当前节点将数据包发送给下一跳节点,相对于下一跳节点而言,该 当前节点为下一跳节点的上游节点。(4)、前趋邻居节点当前节点的所有邻居节点到基站节点的距离小于当前节点到 基站节点的距离的传感器节点。(5)、前趋转发邻居表由前趋邻居节点构成的集合。传感器网络中每个传感器节点都维持有一个前趋转发邻居表,该前趋转发邻居表根据基站节点以及邻居节点表中邻居 节点的地理位置信息,选择距离基站节点相对自身更近的邻居节点添加到前趋转发邻居表 中。(6)、空洞节点前趋转发邻居表为空的传感器节点。当当前节点到基站节点的前 趋转发邻居表为空时,该当前节点为空洞节点;(7)、空洞区域节点前趋转发邻居表中的前趋邻居节点为空洞节点或空洞区域节 点的传感器节点。当当前节点的前趋转发邻居表的所有前趋邻居节点都为空洞节点或空洞 区域节点时,该当前节点为空洞区域节点,该当前节点同时广播一个空洞信标通知其所有 的邻居节点,表明自己是空洞区域节点。(8)、路由空洞当某一传感器节点的所有邻居节点距基站节点的距离都比该传感 器节点自身距基站节点的距离远时,此时传感器网络出现了路由空洞。本发明提供的用于无线传感器网络的实时通信路由方法,当前节点接收到上游节 点发往所述基站节点的数据包后,采用延迟估计算法计算得到当前节点与该当前节点的所 有前趋邻居节点之间的数据包传输速度,并将得到的数据包传输速度作为转发选择标准, 在前趋转发邻居表中选择下一跳节点进行数据包的转发。延迟估计算法包括根据当前节 点与该当前节点的前趋邻居节点之间的通信延迟以及前趋邻居节点的排队延迟,计算得到 当前节点与该当前节点的所有前趋邻居节点之间的数据包传输速度。本发明使用的延迟估计方法,在考虑传感器节点之间通信延迟的基础上,充分估 计了下一跳(转发)节点的链路及负载状况,将有效保证数据包在实时转发过程中选择更 高效的路径进行转发,不仅降低了数据的传输延迟,而且提高了数据传输的成功率。当无线传感器网络中出现路由空洞时,为避免传感器网络中的空洞节点的上游节 点通过其他路径继续将数据包发送到其他空洞节点,本发明用于无线传感器网络的实时通 信路由方法还包括如下步骤当空洞节点或空洞区域节点接收到数据包后,向其所有的邻 居节点广播自己为空洞节点或空洞区域节点,并利用路由空洞双向边界环绕方法将接收到 的数据包继续转发。当当前节点为空洞节点或空洞区域节点时,当前节点接收到数据包后,向其所有 的邻居节点广播自己为空洞节点或空洞区域节点,并利用路由空洞双向边界环绕方法将接 收到的数据包继续转发。当被选的下一跳节点为空洞节点或空洞区域节点时,被选的下一跳节点接收到数 据包后,向其所有的邻居节点广播自己为空洞节点或空洞区域节点,并利用路由空洞双向 边界环绕方法将接收到的数据包继续转发。上述情况可以采用示意图3进行描述。步骤1、当前节点接收到上游节点发往所述基站节点的数据包;步骤2、判断当前节点是否为空洞节点或空洞区域节点,如果是,执行步骤6 ;否则 执行步骤3 ;步骤3、采用延迟估计算法计算得到当前节点与该当前节点的所有前趋邻居节点 之间的数据包传输速度;步骤4、并将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择 下一跳节点进行数据包的转发;
步骤5、判断被选的下一跳节点是否为空洞节点或空洞区域节点,如果是,执行步 骤;否则执行步骤3 ;步骤6、向其所有的邻居节点广播自己为空洞节点或空洞区域节点,并利用路由空 洞双向边界环绕方法将接收到的数据包继续转发。下面对延迟估计操作、路由空洞传播操作以及路由空洞双向边界环绕操作的具体 实例进行详细描述。(1)、延迟估计操作,包括以下步骤Al.设当前节点为i,当前节点i的前趋邻居节点为j(n),n = 1,2,…,N,N为当 前节点i的前趋转发邻居表中的前趋邻居节点的个数;假设当前节点i欲向第一个前趋邻 居节点j(l)转发数据包,设前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘,缓 冲队列的平均长度为;A2.当前节点i向第一个前趋邻居节点j (1)转发数据包,前趋邻居节点j (1)接 收到原发送节点i发送的数据包后,该数据包将进入前趋邻居节点j (1)的缓冲队列中等待 处理和发送,同时,前趋邻居节点j (1)向原发送节点i返回一个ACK数据包,该ACK数据 包中包含有前趋邻居节点j(l)成功发送一个数据包的平均延迟‘和缓冲队列的平均长 度lj(1);传感器节点的MAC层协议使用了 802. IlDCF模式,本发明为提高数据包传输的可靠 性,接收到数据包的传感器节点将返回一个ACK数据包给发送的传感器节点,表示数据包 以接收到;A3.可以采用公知的ACK反馈方法,获取当前节点i与前趋邻居节点j (1)之间的 通信延迟HopDelayf ; ACK反馈方法为在发送端,发送节点在发送数据包时记录下该数据 包的发送时间;在接收端,接收节点在接收到该数据包后将发送ACK数据包返回给发送节 点;接收节点处理ACK数据包的时间由ACK捎带;发送节点在接收到该数据包的ACK后,将 从收发时间差中减去接收端的处理时间得到邻居节点间的通信延迟;发送节点在计算得到 该通信延迟后,将通过与原通信延迟值进行指数加权平均来更新通信延迟值;A4.根据前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘和缓冲队 列的平均长度为lj(1,计算得到数据包在前趋邻居节点j(l)的排队延迟QueueDelayw), QueueDelay^ =‘·1κυ ;排队延迟是就下一跳节点的负载及链路状况可能影响数据包传输 的实时性的问题考虑的;Α5.当前节点i根据前趋邻居节点j(l)的排队延迟QueUeDelayj(1)和当前节点 i与前趋邻居节点j(l)之间的通信延迟HopDelayf计算得到当前节点i与前趋邻居节点 j (1)之间的总延迟Delayf1),Delayf) = QueueDelayj⑴ + HopDelayf);A6.当前节点i接收到ACK数据包后,根据指数加权平均方法更新当前节点i中对 ‘和的估计得到当前节点i成功发送一个数据包的平均延迟Si和缓冲队列的平均长 度 Ii 的估计值,Si = α X Sold+(1-α) XSsample, Ii = α X l。ld+(1_ α ) X Isample,其中,S。ld、Iold 表示原估计值,Ssample、Isample为新的采样值,α为动态调节参数;当前节点i每隔T采样时 间更新平均延迟Si和缓冲队列的平均长度Ii的估计值,并通过更新后的Si和Ii计算新的 通信延迟、排队延迟和总延迟;当前节点i每隔T采样时间,再重新更新和计算新的通信延迟、排队延迟和总延迟; A7.同样,当前节点i采用上述相同的方法更新和计算当前节点i的前趋转发邻居 表中的所有前趋邻居节点的通信延迟、排队延迟和总延迟;
QueueDelayJ(n) = α XQueueDeIayj(n) (old) + (l-a ) XQueueDeIayj(n) (new); HopDelayjfo) = α XHopDelayJ(n) (old) + (l-a ) XHopDelayJ(n) (new);
Delayfn) =axDelayfn)(old) +(l-a)xDelayfn)(new) ; n=l,2,…,N;
N为前趋邻居节点的个数;
A8.根据上述计算得到的总延迟计算当前节点i与前趋邻居节点j(n)之间的速 度Speecf)(Destination, Speed,(Destination) =,其中 L 表示当前节点 i 到基
站节点的距离,L_next表示前趋邻居节点j(n)到基站节点的距离,Delayfn)表示当前节点i 与前趋邻居节点j (η)之间的总延迟,η = 1,2,…,N,N为前趋邻居节点的个数。将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择下一跳节 点进行数据包的转发包括如下步骤Α9.定义标准应用速度S_。mt="p^^-,其中Ls为源节点到基站节
Uelay application
点的欧式距离,Delayapplication为标准应用总延迟,将当前节点i与前趋邻居节点 j(n)之间的总延迟Dela>fn)和标准应用总延迟D e Uy1记录到数据包中,并通过 Speed产>(Destination) MsetprantW前趋邻居节点j (η)中选择速度最快的传感器节点作为下一 跳节点进行数据包的转发。当空洞节点或空洞区域节点接收到数据包后,通过路由空洞传播方法向其所有的 邻居节点广播自己为空洞节点或空洞区域节点,此时接收到数据包的空洞节点或空洞区域 节点为当前节点。(2)路由空洞传播操作,包括如下步骤①当前节点向其所有的邻居节点广播一个空洞信标;该空洞信标包括当前节点 的标识号、基站节点的标识号、当前节点与基站节点之间的距离和当前节点的平均发送时 延;②当前节点的上游节点接收到空洞信标后,上游节点更改自己的前趋转发邻居 表;当上游节点的前趋转发邻居表中的前趋邻居节点都为空洞节点或空洞区域节点时,该 上游节点为空洞区域节点,该上游节点更新其空洞信标中的当前节点与基站节点之间的距 离的值,并向其所有的邻居节点广播该空洞信标。下面将结合具体的例子对路由空洞传播方法进行详细的描述。如图4a 4f所示,各图中白色圈点表示传感器网络中的传感器节点;黑色圈点表 示基站节点Base Station ;传感器节点旁边的数字表示当前节点到基站节点的距离;节点 之间的黑色箭头表示节点互为邻居,彼此能够互相通信;箭头方向所指的传感器节点为前 趋邻居节点。如图4a所示,由于传感器节点E到基站节点的前趋转发邻居表为空,即传感 器节点E没有前趋邻居节点,所以传感器节点E为空洞节点。传感器节点C发送的数据包 到达传感器节点E后,由于传感器节点E没有前趋邻居节点,将无法继续传输数据包。如果采用现有的SPEED协议的基于反向压力信标的路由空洞避免机制,传感器节点E将广播一 个反向压力信标通知其上游节点到达当前节点的延迟为⑴,传感器节点C接收到反向压力 信标后不再向传感器节点E发送数据包,而是选择前趋转发邻居表中的另一个满足要求的 传感器节点D作为下一跳节点,而传感器节点D的前趋转发邻居表中唯一的前趋邻居节点E 的延迟估计为⑴,此时,当传感器节点B和C继续向传感器节点D发送数据包时,传感器节 点D只能将数据包丢弃。而采用本发明的空洞传播方法将避免现有的SPEED协议中发生的情况,如图4a所示,当空洞节点E接收到其他传感器节点发送的数据包后,将广播一个 空洞信标,该空洞信标的格式为(X,Destination, MaxD, MaxT),其中χ表示当前节点E的 标识号,Destination表示基站节点的标识号,MaxD表示当前节点E距离基站节点的距离, MaxT表示当前节点E的平均发送时延。传感器节点E将空洞信标中的MaxD和MaxT两个域 分别设为无穷大,而在实际实验时,可将MaxD设为当前无线传感器网络的覆盖区域最长的 路径值,可将MaxT设为应用要求的最大延迟。上游节点在接收到该空洞信标后,将更改其 空洞信标中相应的值。如果前趋转发邻居表中还有其他非空洞节点满足要求,则选择延迟 最小的传感器节点作为下一跳节点继续传输数据包。如果前趋转发邻居表中只有空洞节点 和空洞区域节点,根据空洞区域节点定义,当前节点也是空洞区域节点,它将继续广播一个 空洞信标,该空洞信标的值为(X,Destination,MaxD-I,MaxT),即当前节点距离基站节点的 距离相比上一个空洞节点的距离减1,平均发送时延仍为无穷大。如图4b所示,传感器节点D在接收到传感器节点E发送的空洞信标后,发现除空 洞节点E外自己的前趋转发邻居表为空,满足空洞区域节点的定义。传感器节点D将自己 到基站节点的距离设为MaxD-I,并广播空洞信标(D,Destination, MaxD-I,MaxT)。而传感 器节点C在收到来自传感器节点E的空洞信标时,由于其前趋转发邻居表中仍然有传感器 节点D,因此它不符合空洞区域节点的定义。而当传感器节点C接收到来自传感器节点D的 空洞信标后,其前趋邻居节点均为空洞节点或空洞区域节点。此时,传感器节点C也符合空 洞区域节点的定义。传感器节点C将根据传感器节点D发送的空洞信标将其到基站节点的 距离改为MaxD-2,并广播空洞信标(C,Destination, MaxD-2,MaxT)。以此类推,传感器节 点B和G到基站节点的距离更新为Max-3,完成所有的更新,更新过程如图4b 4f所示。(3)、路由空洞双向边界环绕操作,包括以下步骤当更新完成后,接收到上游节点发送的数据包的传感器节点(空洞节点或空洞区 域节点)将数据包进行备份,本发明中假设源节点在发送数据包时对每个数据包进行编 号,这样当基站节点接收到数据包和备份数据包后将丢弃数据包或备份数据包。再根据左 手规则和右手规则分别选择下一跳节点,将两种传输方式分别记录到数据包和备份数据包 中,并将数据包和备份数据包沿两条路径分别同时向各自的下一跳节点发送,双向发送提 高了数据包的传输可靠性,减少了传输延迟。下一跳节点接收到数据包或备份数据包后,根 据记录在数据包或备份数据包中的传输方式继续发送数据包或备份数据包,传输方式包括 左手规则传输方式和右手规则传输方式。利用上述左手规则传输数据包的主要程序代码为LEFT-HAND-FORWARD (ρ,njbin = NORM (ATAN2 (self. 1. y-nin. y, slef. 1. x_nin. x))
14
δ =0
L vvy」max wfor each (α , 1) in Ndo if a == ninthen continue5b = N0RM(ba-bin)if δ b > δ fflaxthen δ·= 5bamin = areturn amin上述程序代码中,ρ表示传感器网络正在传输的数据包,riin表示发送该数据包 的上一跳邻居节点(是指上游节点还是指上游节点的上游),bin表示上游节点与接收 到数据包的当前节点之间的相位,b-表示当前节点与其他邻居节点之间的相位。在利 用左手规则选择下一跳节点时,将选择bin_b。ut的值最大的邻居节点作为下一跳节点进 行数据包的转发。左手规则中所有的相位必须在W,2 π]之间,上述程序代码中语句 NORM(ATAN2(seli.lriy η .y,We1C. 1.通过对加2 π将所有的相位标准化到
之间,其中,ATAN2(y,x)表示计算y/x的arctan弧度,self表示当前节点,α表示当前节 点的编号,1表示当前节点的地理位置。对于传感器网络中存在交叉边的非平面图形,本发 明仍然采用GPSR中的no-crossing heuristic算法去除交叉边。根据GPSR的实验证明, 上述算法能够发现所有路由路径中99. 5%的路径。如图5a和图5b所示,假设传感器节点D是目的(基站)节点,X是空洞节点。在 GPSR中采用右手规则环绕空洞节点时,将沿路径X-W-V-D抵达目的节点。而采用左手规则 环绕空洞节点时,将沿路径X-Y-Z-D抵达目的节点。错误!未找到引用源。是使用左手规 则环绕空洞的一个例子。当有数据从y抵达到ζ时,下一跳选择的路径将是从ζ点开始边 (y,ζ)顺时针旋转遇到的第一条边,即(ζ, χ)。对采用本发明的实时通信路由FT-SPEED的方法和采用现有的SPEED的方法分别 进行仿真实验,将从数据包抵达率(数据包传输可靠性)、平均延迟和控制数据包开销等网 络性能参数进行分析对比。该仿真实验在J-Sim仿真平台上进行,传感器网络仿真环境参 数设置如表1所示。表1网络仿真环境参数设置表
权利要求
一种用于无线传感器网络的实时通信路由方法,无线传感器网络包括多个部署在监控区域内的传感器节点和基站节点,所述传感器节点和所述基站节点能够获取自己的地理位置信息,所述传感器节点知晓所述基站节点的地理位置信息,所述传感器节点将包含有采集到的信息的数据包发送给所述基站节点;其特征在于,当前节点接收到上游节点发往所述基站节点的数据包后,根据当前节点与该当前节点的前趋邻居节点之间的通信延迟以及前趋邻居节点的排队延迟,计算得到当前节点与该当前节点的所有前趋邻居节点之间的数据包传输速度,并将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择下一跳节点进行数据包的转发;所述前趋邻居节点为当前节点的所有邻居节点到基站节点的距离小于当前节点到基站节点的距离的传感器节点,所述前趋转发邻居表为由当前节点的前趋邻居节点构成的集合,所述当前节点、邻居节点、上游节点、下一跳节点均为传感器节点。
2.根据权利要求1所述的用于无线传感器网络的实时通信路由方法,其特征在于,所 述根据当前节点与该当前节点的前趋邻居节点之间的通信延迟以及前趋邻居节点的排队 延迟,计算得到当前节点与该当前节点的所有前趋邻居节点之间的数据包传输速度包括如 下步骤Al.设当前节点为i,当前节点i的前趋邻居节点为j(n),n= 1,2,…,N,N为当前节 点i的前趋转发邻居表中的前趋邻居节点的个数;假设当前节点i欲向第一个前趋邻居节 点j(l)转发数据包,设前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘,缓冲队 列的平均长度为、ω ;Α2.当前节点i向第一个前趋邻居节点j (1)转发数据包,前趋邻居节点j (1)接收到原 发送节点i发送的数据包后,该数据包进入前趋邻居节点j (1)的缓冲队列中等待处理和发 送,同时,前趋邻居节点j(l)向原发送节点i返回一个ACK数据包,该ACK数据包中包含有 前趋邻居节点j(l)成功发送一个数据包的平均延迟‘和缓冲队列的平均长度lj(1);A3.根据ACK反馈方法,获取当前节点i与前趋邻居节点j(l)之间的通信延迟 HopDelayf);A4.根据前趋邻居节点j(l)成功发送一个数据包的平均延迟为‘和缓冲队列 的平均长度为lj(1),计算得到数据包在前趋邻居节点j(l)的排队延迟QueueDelay^), QueueDelayj⑴=Sj⑴·1Κ1);Α5.当前节点i根据前趋邻居节点j(l)的排队延迟QueueDelaym)和当前节点i与前 趋邻居节点j(l)之间的通信延迟HopDelay^计算得到当前节点i与前趋邻居节点j (1) 之间的总延迟 Delayf1),Delayf1) = QueueDelay」⑴ + HopDelayf1);A6.当前节点i接收到ACK数据包后,根据指数加权平均方法更新当前节点i中对ζ;和的估计得到当前节点i成功发送一个数据包的平均延迟Si和缓冲队列的平均长度 Ii 的估计值,Si = α X Sold+(1-α ) X Ssample,Ii = α X Iold+(1-α ) X Isample,其中,Sold, Iold 表 示原估计值,Ssample、Isample为新的采样值,α为动态调节参数;当前节点i每隔T采样时间 更新平均延迟Si和缓冲队列的平均长度Ii的估计值,并通过更新后的Si和Ii计算新的通 信延迟、排队延迟和总延迟;A7.当前节点i采用上述相同的方法更新和计算当前节点i的前趋转发邻居表中的所 有前趋邻居节点的通信延迟、排队延迟和总延迟;A8.根据总延迟计算当前节点i与前趋邻居节点j (r之间的速度S ρ e ) (Dest , Speedf) (Destination) =竺,其中 L 表示当前节点 i 到基站节点的距离,L_next表示前趋邻居节点j(n)到基站节点的距离,Delayfn)表示当前节点i 与前趋邻居节点j (η)之间的总延迟,η = 1,2,…,N,N为前趋邻居节点的个数。
3.根据权利要求2所述的用于无线传感器网络的实时通信路由方法,其特征在于,所 述将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择下一跳节点进行 数据包的转发包括如下步骤Α9.计算标准应用速度S-^z^j^^-,其中Ls为源节点到基站节点的欧式Uelay application距离,Delayappli。ati。n为标准应用总延迟,将当前节点i与前趋邻居节点j (η)之间的 总延迟Del^w和标准应用总延迟D e Ia^y1记录到数据包中,并通过S ρ e^ )( D e ^t Is9 ,.从前趋邻居节点j (η)中选择下一跳节点进行数据包的转发;所述的源节点为 第一次发送数据包的传感器节点。
4.根据权利要求1-3任一所述的用于无线传感器网络的实时通信路由方法,其特征在 于,当空洞节点或空洞区域节点接收到数据包后,向其所有的邻居节点广播自己为空洞节 点或空洞区域节点,并利用路由空洞双向边界环绕方法将接收到的数据包继续转发;所述 空洞节点为前趋转发邻居表为空的传感器节点,所述空洞区域节点为前趋转发邻居表中前 趋邻居节点为空洞节点或空洞区域节点的传感器节点。
5.根据权利要求4所述的用于无线传感器网络的实时通信路由方法,其特征在于,当 空洞节点或空洞区域节点接收到数据包后,通过路由空洞传播方法向其所有的邻居节点广 播自己为空洞节点或空洞区域节点,此时接收到数据包的空洞节点或空洞区域节点为当前 节点,所述路由空洞传播方法包括如下步骤当前节点向其所有的邻居节点广播一个空洞信标;该空洞信标包括当前节点的标识 号、基站节点的标识号、当前节点与基站节点之间的距离和当前节点的平均发送时延;当前节点的上游节点接收到空洞信标后,上游节点更改自己的前趋转发邻居表;当上 游节点的前趋转发邻居表中的前趋邻居节点都为空洞节点或空洞区域节点时,该上游节点 为空洞区域节点,该上游节点更新其空洞信标中的当前节点与基站节点之间的距离的值, 并向其所有的邻居节点广播该空洞信标。
6.根据权利要求4所述的一种用于无线传感器网络的实时通信路由方法,其特征在 于,所述路由空洞双向边界环绕方法包括如下步骤当空洞节点或空洞区域节点接收数据 包后,将数据包进行备份,再根据左手规则和右手规则分别选择下一跳节点,将两种传输方 式分别记录到数据包和备份数据包中,并将数据包和备份数据包沿两条路径分别同时向各 自的下一跳节点发送;下一跳节点接收到数据包或备份数据包后,根据记录在数据包或备 份数据包中的传输方式继续发送数据包或备份数据包。
7.根据权利要求6所述的一种用于无线传感器网络的实时通信路由方法,其特征在 于,所述的传输方式包括左手规则传输方式和右手规则传输方式。
8.根据权利要求6所述的一种用于无线传感器网络的实时通信路由方法,其特征在 于,所述的源节点在发送时对每个数据包进行编号,当基站节点接收到数据包和备份数据 包后将丢弃数据包或备份数据包。
全文摘要
本发明公开了一种用于无线传感器网络的实时通信路由方法,该实时通信路由方法中,当前节点接收到上游节点发往所述基站节点的数据包后,根据当前节点与该当前节点的前趋邻居节点之间的通信延迟以及前趋邻居节点的排队延迟,计算得到当前节点与该当前节点的所有前趋邻居节点之间的数据包传输速度,并将得到的数据包传输速度作为转发选择标准,在前趋转发邻居表中选择下一跳节点进行数据包的转发。本发明的实时通信路由方法,能够有效地保证了数据包在实时转发过程中选择更高效的路径进行转发,降低了数据包的传输时延,同时提高了数据包的传输可靠性。
文档编号H04W84/18GK101984712SQ20101054326
公开日2011年3月9日 申请日期2010年11月15日 优先权日2010年11月15日
发明者刘良华, 徐志烽, 徐济惠, 李丽, 郑哲, 郭双宙 申请人:宁波城市职业技术学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1