传输层的可靠性方案通常基于中继(Retransmission)。数据片段由源节点重发,或有时由中间节点(有以前没有发送成功的数据片段)重发。要做到这点,主要有两个挑战:
1)检测一个数据片段没有被成功发送,例如数据片段在传输中丢失或混乱;
2)初始化数据片段中继。
可由源节点或目的节点检测一次失败的传送。若接收数据的节点总是给出成功传送的应答,称为正应答(Positive Acknowledgement)。使用正应答方案时,若源节点没接收到传输片段的应答,说明数据片段没有传送成功,或者应答信息丢失。在这类方案中,源节点担负探测的责任。对应地,负应答(Negative Acknowledge-ment)方案中,目的节点可以报告一次失败的信息传送。
若数据片段顺序传送,每一片段赋予一个序列号,通过对最后一个片段序列号的应答,目的节点可以对包括最后收到的多个片段产生应答。因特网传输控制协议(TCP)基于多个片段的正向应答,以满足端到端可靠性。
满足端到端可靠性的TCP方法也可用到无线自组织网络和Mesh网络。然而,由于传感器网络有严格的功耗约束和大量的单跳,源节点片断应答和对每一丢失片段的重传代价太高。传感器网络的流量模式是一对多、多对一和多对多。这也有别于因特网和传统的自组织网络。另外,传感器网络的最终目标是感知利益相关事件。因为传感器节点的感知范围通常会重叠,所以相同的事件往往会被多个传感器节点报告。事件的成功通知对传感器网络很重要。数据包丢失可以容忍,除非它阻碍事件的通知。为克服这些差异,无线传感器网络需要其他端到端可靠的方案。
可靠多片段传输方案(Reliable Multisegment Transport,RMST)(Stann and Wag-ner,2003)为定向传播提供端到端可靠的数据包传输。RMST是选择性负应答(Se-lective Negative Acknowledgement,NACK)协议,有两种模式:缓存模式(CachingMode)和非缓存模式(Noncaching Mode)。缓存模式中,许多节点沿着一条增强路径,例如定向传播协议用于传输数据到汇聚节点的路径,被赋给RMST节点。每个RMST节点缓存数据流片段,并为每个数据流维护看门狗定时器(Watchdog Tim-er)。若定时器到时而数据片段没收到,一个负应答会沿增强路径回溯方向发出。拥有路径中丢失片段的第一个RMST节点重传片段。汇聚节点担当最后一个RMST节点,在非缓存模式下变成唯一的RMST节点。
缓发快取(Pump Slowly,Fetch Quickly,PSFQ)方案(Wan et al.,2003)与RMST方案(Stann and Wagner,2003)相似。PSFQ方案包括三个功能:消息转播(Pump操作)、转播发起的错误纠正(Fetch操作)和选择性状态报告(Report操作)。PSFQ方案中每个中间节点维护一个数据缓存。收到数据包的节点,与本地缓存对照检查包的内容,丢弃任一重复的数据包。若收到的数据包是新的,包中的TTL字段值递减。若递减后TTL字段值大于0,而且包序列号之间没有间隔,则数据包被安排转发。数据包会在随机时间Tmin到Tmax之间延迟,然后转播。一旦探测到序列号有间隔,节点会转到fetch模式。fetch模式下的节点请求从邻居节点重传丢失的数据包。(www.xing528.com)
PSFQ和RMST方案设计用于增强端到端数据包传输的可靠性。事件到汇聚节点的可靠传输(Event-to-Sink Reliable Transport,ESRT)协议(Sankarasubramaniam et al.,2003)是主要考虑无线传感器网络中端到端可靠事件传输的传输层协议。ESRT协议中,不能确保可靠的事件传输,但通过控制传感器节点事件报告频率,增强可靠性。
在可靠事件传输方法中,事件定义为传感器节点生成的关键数据(Tezcan et al.,2004)。端到端可靠事件传输(End-to-End Reliable Event Transfer,EERET)方案设计用于传输这些关键数据包。大多数情况下,因为传感器网络中节点通常是密集分布的,不止一个传感器节点生成相同的关键数据,因而一个事件可被多个节点检测到。当至少一个报告事件的数据包被汇聚节点接收到时,事件成功传输给收集节点(cnode)。例如,图6-1中的节点a、b、c和d检测相同的事件。既然四个节点都能生成报告此事件的数据包,即使汇聚节点只接收到其中一个数据包,端到端的事件传输仍可以成功。
EERET方案可分成两类:基于非应答(Non-acknowledgement based,NoACK)的方案和基于应答(Acknowledgement based,ACK)的方案。三种方法,即事件报告频率、节点密度和隐式应答可作为基于NoACK方案的例子。对于第二类,另外三种方案如选择性应答、强制应答和覆盖应答(Blanket Acknowledgement)可作为例子。
下面两节阐述基于NoACK和ACK的方案。基于NoACK的方案是不需要等待端到端应答,增强可靠性的可选方法集。相对照的,基于ACK的方案使用应答,但不是像在面向连接的端到端协议中那样使用。通过不同方式使用应答来提供可靠性。
图6-1 端到端可靠事件传输
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。