龙昭华,李 吴,蒋贵全
(重庆邮电大学计算机科学与技术学院,重庆 400065)
无线传感器网络[1](WSNs)是一种多跳的无线网络,由大量的低速率、低功耗、具有感应功能的嵌入式设备组成,用来监测比如温度、湿度、振动、地震、事件等。在传感器节点能量和处理能力受到限制的前提下,为网络中的数据传输提供可靠的传输控制协议,保证获取的信息有效是无线传感器网络需要解决的基本问题。
现有的无线传感器网络传输控制协议可以分为两类:解决拥塞控制,如 ESRT 协议[2],BGR 协议[3]等;解决质量保证,如 RBC 协议[4],GRAB 协议[5]等。这些协议主要在传输层上做研究,一定程度上限制了传输控制性能。本文对Ad Hoc网络中一种隐式逐跳的跨层拥塞控制协议进行改进,并将其用于处理无线传感器网络中的传输控制问题。仿真实验表明:改进后算法能够在保持能量有效性的同时,提高传输控制质量。
文献[6]介绍了Ad Hoc网络中一种隐式逐跳的拥塞控制协议。但是鉴于Ad Hoc网络和无线传感器网络的差异,必须对Ad Hoc网络中这种协议做适当的修改才能够适用于无线传感器网络。
Ad Hoc网络中隐式逐跳拥塞控制协议基本思想是:链路是双向通信,在一条链路中有源节点A、中间节点B、目的节点C三个节点。协议需要改进的原因:
1)中间节点B发出的信息,A和C都能收到,如果节点A监测到自己发出去的数据,那么认为A发出的数据包已经成功发送到下一跳节点B,通过隐式的确认,减少网络中的数据包转发的数量。但在无线传感器网络中节点B也要采集数据,处理后转发的数据包,节点A不一定能识别,在整个链路中会引发大量的数据重传,导致网络拥塞。
2)Ad Hoc网络的拓扑结构是在不断变化的,不稳定的路由会导致网络链路的中断、数据包丢失,所以,很难保证传输可靠性。
3)协议[6]通过监测数据包是否转发来显示网络的拥塞状况,通过注入数据包速率解决拥塞,在无线传感器网络中是不够的。为了保证网络消息的及时性和有效性,必须引入更加合理的拥塞解决机制。
已有无线传感器网络传输协议中,有些通过显示确认保证数据包的成功转发,如Siphon协议[7],其缺点是发送显示的确认包不仅会消耗大量的能量,而且会占用信道,降低了网络的吞吐量。跨层协议,如HCCC协议[8]、HCCC协议在解决拥塞时,MAC层需要一直监测信道的占用情况,消耗了大量能量,而且缺失可靠性。本文设计了一种无线传感器网络的隐式逐跳的拥塞控制算法。对以上算法做如下改进,包括路由维护、隐式确认机制、拥塞处理机制。
1.2.1 路由维护
无线传感器网络的拥塞不是发生在一条链路或者某一个单独的节点,而是空间的[6]。节点发出的信息邻居节点都能接收到,为了防止无线传感器网络中的泛洪出现,本文中每一跳节点都知道本地节点最优路径的源节点和目的节点,当收到的数据包目的节点不是自身的时候,节点不予响应,保持休眠状态。数据包的包头格式如图1所示。算法具体实现时,每个数据包的源节点有1个,目的节点有2个,方便实现隐式确认;拥塞警告通过拥塞度量测定发给上游区节点。
图1 数据包包头信息Fig 1 Data packet header information
1.2.2 隐式确认机制
无线传感器网络中的每一跳节点都会采集数据,简单监测数据包转发不能实现隐式确认,为了实现隐式确认,引入了相对信息熵,计算2个节点之间的信息相关程度,通过信息的相关程度来识别包的转发是否成功。图2所示的是无线传感器网络中隐式确认机制原理流程图。
图2 无线传感器网络中隐式确认机制Fig 2 Implicit acknowledgment mechanism in WSNs
为了方便理解,引入了信息论中的一些概念,无线传感器网络的事件模型抽象为信息熵理论数学模型如下:引用香农公式[9],用节点信息熵H(x)来计算发出和接收数据的平均信息量,如公式(1)所示
其中,E为概率的统计平均值,q表示ai(i=1,2,…,q-1,q)的取值有q种可能;P(ai)为字符ai出现的概率,H(x)表征了数据的统计特征,是总体平均不确定性的量度(bit/数据包)。式(1)中的单位取决于对数函数的底数。本文取对数函数底数为2,即表示计算产生1 bit的信息量,不仅方便处理器识别处理,而且不会消耗很多能量。
通过以上方法计算节点A与节点B发送的数据包的信息量,然后进行比较,用数学公式节点相对信息熵表示
相对信息熵U(A‖B)用于计算任意2个数据包之间信息熵的差异大小,它的物理意义是2组概率分布之间的差异程度。计算相对信息熵U(A‖B)的值,这个值越小,表明2组概率分布越接近,这2个节点之间的数据相似程度越大。在本文中,U(A‖B)≤0.5,2个数据包中的信息至少有50%相同,证明A,B节点之间通信成功,隐式的确认在无线传感器网络中实现。
1.2.3 拥塞处理机制
在文献[6]中,主要通过调节注入数据包的速率解决拥塞。无线传感器网络需要采集实时有效数据,为了保证传输的实时性,需要传输层和MAC层协调合作,加快数据包的转发,从而快速解决拥塞,分为拥塞检测和快速拥塞处理2个阶段。
1)拥塞检测
本文中,假设每个节点只能存放3个数据包:一个是转发出去但还没有收到隐式确认的数据包;一个是上游节点发出,节点已经收到但没有转发出去的数据包;最后一个用来接收下游节点反馈包,用来计算节点之间信息相关程度。
节点收不到下游节点的确认,无法确认数据转发成功。缓存中已经转发的数据包丢弃受阻,长时间收不到下游节点的确认会导致本地节点重复发送探测包,导致网络的局部拥塞。规定当第二次发送探测包下游节点仍然处于contention状态,则判断网络已经发生了拥塞。接着发出的RFA探测包中,将会加入拥塞警告提示,这个带有拥塞警告ACK包会以逐跳的方式通知上游区节点,提示网络出现亚健康,直到拥塞解决。ACK包只有包头,消耗能量少,具体实现流程如图3所示。
图3 拥塞检测机制Fig 3 Congestion detection mechanism
2)快速拥塞处理
在无线传感器网络中为了提高传输质量,还必须加快拥塞区节点转发数据包的速度。本文通过MAC层、路由层的合作来加快拥塞区域节点接入信道的几率。
无线传感器网络中,同一时刻只允许一个设备占用信道。中间节点接收到拥塞警告后,立刻增大本地信道接入窗口,减少自己竞入信道的几率,把信道留给拥塞区节点,让其快速接入信道,加速转发数据包。通过MAC层的合作,来降低拥塞处理的时间,拥塞尽快解决,具体方法如下:
1)路由层检测ACK包头中距离拥塞区域的跳数;
2)MAC层访问信道采用CSMA/CA机制竞争信道,根据距离拥塞区域的跳数,决定在[0,2BE-1]范围内产生一个等待时间,来减少节点同时发送数据造成碰撞的可能;
3)收到拥塞警告的节点将自己的BE值增大,越靠近拥塞区域节点的BE值越小,拥塞区域节点BE值根据拥塞情况,以同样方法设置,使得拥塞区域等待时间最短,接入信道几率最快,确保数据包快速转发,快速解决拥塞。
为了验证本算法的性能,用Matlab做仿真实验,选取经典的ESRT协议和HCCC协议作对比。现在将本文的仿真场景设置如下:
1)选取100个节点均匀布局在180m×180m的正方形区域内,目的节点放在监测区域的边界上。
2)每个节点通信距离为20 m,干扰距离为45 m,任意2个相邻节点间的距离都是20 m,链路是开环的。
3)采用静态路由,最佳路由已经确立。节点每单位时间发送10个数据包,每个数据包大小为32 byte,节点缓存中存放3个数据包。
图4描述了仿真过程中的网络传输延迟,从图中可以看出:ESRT和HCCC下的网络传输延迟得到了一定的控制,本文中每个缓存中只有3个数据包,数据包在网络中停留的时间非常短,加上隐式确认转发和有效的拥塞解决机制,大大降低了数据包在缓冲区内的平均等待时间,减少了在网络中的传输延迟。
图4 网络传输延迟比较Fig 4 Comparison of network transmission delay
图5描述了仿真过程中的丢包率,丢包主要因为拥塞和信道不稳定产生的,本文控制缓存中的数据包的数量为3个,如果确认数据成功转发,那么缓存立即清空。发生拥塞后,通过拥塞警告通知上游节点减少注入拥塞区的数据包,加快拥塞区数据包转发,网络始终保持在一个比较良性的状态,发生拥塞的可能大大降低;基于相对信息熵的隐式确认机制,防止丢包。从图中可以看出:与经典的ESRT协议和HCCC协议比较,本算法的丢包率始终保持在很小的百分比率,不到上述协议的1/5。
图5 网络丢包率的比较Fig 5 Comparison of network packet loss rate
图6描述了仿真过程中的网络吞吐量,在本文中采用RFA探测包和相对信息熵结合降低重传,减少不必要的数据包转发,较好的拥塞解决机制确保了网络的良好状况,由图可以看到:当网络的吞吐量达到一个最佳点的时候,HCCC协议和ESRT协议都不能保持最优的网络吞吐量,而本协议能一直保持下去。
图6 网络吞吐量的比较Fig 6 Comparison of network throughput
本文在无线传感器网络中提出了一种隐式逐跳跨层合作的传输控制算法,通过路由层传输层MAC层相互合作,解决无线传感器网络中的传输控制问题,在一定程度上有效地提高了网络服务的质量,但是设计思想还不够全面和成熟,无线传感器网络具有特殊的用途和特定的应用场景,设计完整的传输控制协议,要从整个无线传感器网络的各个层次考虑,比如:根据应用层来选择优先需要传输的数据来提高网络的有效性等,还需要做很多工作。
[1] 于宏毅,李 鸥,张效义.无线传感器网络理论技术与实现[M].北京:国防工业出版社,2008.
[2] Akan O B,Akyildiz I F.Event-to-sink reliable transport in wire-[J].IEEE/ACM Transactions on Networking,2005,13(5):1003 -1016.
[3] Gulluccio L,Campbell A T,Palozzo S.CONCERT:Aggregationbased congestion control for sensor networks[C]∥Proc of the 3rd ACM Conf on Embedded Networked Sensor Systems(Sen-Sys),San Diego:ACM ,2005:274 -275.
[4] Zhang H W,Arora A,Choi Y R,et al.Reliable bursty convergecast in wireless sensor networks[C]∥Urbana-Champaign:ACM,2005:266276.
[5] Ye F,Zhong G,Lu S W,et al.Gradient broadcast:A robust data delivery protocol for large scale sensor networks[J].ACM Wireless Networks,2005,11(3):285 -298.
[6] Euermann B,Lochert C,Mauve M.Implicit hop-by-hop congestion control in wireless multihop networks[J].Ad Hoc Networks,2008,6(2):260 -286.
[7] Wan Y C,Eisenman S B,Campbell A T,et al.Siphon:Overload traffic management using multi-radio virtual sinks in sensor networks[C]∥Proc of the 3rd ACM Conference on Embedded Networked Sensor Systems(SenSys),San Diego:ACM,2005:116 -129.
[8] 吴国伟,张 岩.无线传感器网络中逐跳跨层拥塞控制[J].计算机工程,2010,36(16):108 -109.
[9] 傅祖芸.信息论:基础理论与应用[M].北京:电子工业出版社,2010.