马铁英
(同济大学软件学院,上海 200031)
随着因特网的高速发展,网络承载的信息流量越来越大,网络拥塞时有发生,给读者利用网络信息资源带来了障碍。图书馆可采用一种简单的自适应无线传感器网络信息流量控制方法,加强网络信息流量控制,为读者快捷利用网络信息资源提供技术支持。
无线传感器网络是由一定的监测区域内的诸多微型传感器节点组成,通过无线通信的方式形成一个多跳自组织网络。一组功能有限的传感器节点协作地完成大的感知任务是传感器网络的重要特点[1]。
无线传感器网络中的每个节点都具备路由的功能和计算功能。尽管无线传感器网络中存在诸多传感器节点,但是会有某些节点负荷很大,需要转发大量数据。当待发送数据到达速率超过节点本身的处理速率时,数据会在此出现阻塞。长时间的阻塞会导致缓冲区快速溢出,这就造成数据分组丢失。为了不让这些拥塞节点成为影响整个网络工作效率的瓶颈,必需对这些瓶颈节点做好流量控制。无线传感器网络流量控制,是将网络流量控制机制引入无线传感器网络,达到改善无线传感器网络性能的目的。
基于无线多跳Ad Hoc网的流量控制机制,是网络中的节点根据队列长度计算出个虚拟代价,然后将一条路由上所有的虚拟代价求和,将该和值发送到源节点,源节点再根据所获得的值控制流量[2]。拥塞节点,通过计算传输队列的长度,来判断该节点的拥塞代价,然后不断地向正在向该拥塞节点发送数据包的前跳节点反馈。前跳节点根据反馈信息决定数据包的速率[3]。
本文提出的一种简单的自适应无线传感器网络流量控制方法,仅通过对拥塞节点的前跳节点进行流量控制,可实现控制流入拥塞节点的流量大小,平衡经过拥塞节点的流入和流出速率,而不需要关注其他相邻节点或者其他上游节点。
在自适应无线传感器网络流量控制方法中,流量控制的关键在于对计算节点虚拟代价。虚拟代价标志这一个节点的拥塞程度。
假设一个节点p只对它的后节点q负责,而这个节点q只需考虑来自前跳节点p的流量,即p节点只控制流入它的后节点的流量大小,q的虚拟代价只提供给它的前跳节点p。只有在q节点发生了拥塞的前提下,p节点才会需要q节点提供它的虚拟代价。P将会根据q节点了的虚拟代价调节流向q的流量大小,如果一段时间后前跳节点p也发生了拥塞,那么p的前节点o也会根据节点p的虚拟代价对其进行流量控制。如果网络内部在一定时限,自己消化了拥塞,反而不需要惊动源节点,这样网络能对我保持一定的封闭性和独立性。
每一个节点都可能会有多个前跳节点,也可能会有多个后节点,没有前跳节点的节点称为源节点,没有后节点的节点称为目标节点。
在自适应无线传感器网络的流量控制机制中,每个节点都有一个虚拟代价表示节点的拥塞程度,这个虚拟代价值随着队列长度变化而不断变化。当一定流量通过某节点时,该节点就会判断当前是否处于拥塞状态,一旦确定发生了拥塞,就会根据当前队列长度计算虚拟代价,再将虚拟代价反馈至它的前跳节点p,节点p根据所获得的虚拟代价及时调整发送给节点q的数据的流量值f的大小,这个过程简单及时。
如图1所示,当目标节点E发生拥塞时,就会生成虚拟代价C1,然后将C1发送到节点Q,而Q节点会减少给E的流入流量,这样Q的流量平衡就会打破,一定时间Q就有可能发生拥塞;同样,如果节点Q发生拥塞时,就会生成虚拟代价C2,然后将C2发送到节点P;如此,就可以将拥塞的情况反馈至初始节点S。
图1 无线传感器网络流量示意图
问题一般化,定义一个有N个静态节点的无线ad hoc网络W={1,2,…,N},网络中一个数据源节点s∈W沿着路由 R={s,i1,i2,…,ij,e}发送数据到目标节点e∈W,其中ij∈W,源节点到目标节点的跳数为j+1。
假设有Mk个流量通过节点k,其中流量fl(l∈1,…,Mk)并且流量fl的速率为rl(l∈1,…,Mk),那么节点k的总流量为
无线传感器网络中的虚拟代价是网络资源的需求。在自适应的流量控制机制中,每个无线传感节点k都有一个不断变化的虚拟代价Ck。当一个流量f通过节点k,那么Ck就等于原来的值加上流量f的代价。当然不是直接加上流量,而是通过流量f产生的队列长度进行计算新的虚拟代价。
队列长度反映了网络负载和网络计算能力的差异,在一个自适应的无线传感器网络流量控制机制中,当一个路由节点的队列长度超过了所规定的上限,虚拟代价将会增加,反之会降低。而节点的吞吐率反映了该节点处理拥塞的能力。吞吐率越大,节点的处理拥塞的能力越强,队列的长度就越短;相反,如果吞吐率越小,队列的长度就越长。所以一个节点中的队列长度反映了该节点的拥塞程度[4]。
由于网络中流量发送的不确定性,每个节点中的队列都在随着时间不断地变化,好在我们的方法只需计算拥塞节点的队列长度。节点的队列长度为单位时间内该节点的流入量和流出量的差值,再加上该节点原有的队列长度,当流入量大于流出量时,节点队列长度增大,想反,当流入量小于流出量时,流量队列长度变小。
k节点的队列长度计算如下:
其中,Σfin、Σfout分别表示为k节点的流入流量和流出流量,T表示单位时间,即计算虚拟代价的时间间隔。
无线传感器网络中,每个无线节点都有一个队列存储待发送的数据包。队列的最大长度等于传感器中缓冲区的大小。假设节点的缓冲区的容量为V,那么节点所能缓存数据包的最大队列长度也为V。根据传感器节点中的队列长度,使用下列的公式来计算节点k的虚拟代价:
其中,Qk(t)表示节点k在t时刻的队列长度。
这样,通过计算流量和队列长度,就计算出来了节点的虚拟代价,然后将虚拟代价提交给上跳节点,由上跳节点来控制拥塞节点的流入流量。
如图2,四节点组成的无线传感器网络,其中源节点S1和S2,一起流向节点B,然后经由B流到目标节点E,所以这里S1、S2为B的上跳节点,B为E的上跳节点。
图2 四节点网络图
假设所有节点处理数据的能力相同,最大队列长度都为100个数据包。如图2所示,节点S1和S2同时向该节点B发送数据,如果不做控制,由于节点处理数据的能力和存储数据的缓冲有限,B的缓冲区很快会用完,而处理数据的速度也不如数据的流入,B势必会成为拥塞节点,从而成为整个网络的瓶颈。设定不考虑无线传输的最大传输速率限制,即带宽限制,每个节点发送数据包的初始速率都为5个数据包/秒,t=0时,所有节点的队列长度Qk(0)=0。通过仿真,得到仿真结果图3、图4和图5。图3、图4和图5分别是流入拥塞节点B的流量、队列长度和虚拟代价随时间的变化图。图3中,在t>3后,流量f1和f2出现小幅度波动,这时显然是由于B发生了拥塞,源节点S1和S2作出了流量控制,在t>8后,趋于稳定。
图3 流量速率随时间变化
图4 队列长度随时间变化
图5 虚拟代价随时间变化
本文提出的一种简单的自适应无线传感器网络流量控制方法,通过仅计算拥塞节点的虚拟代价,仅对拥塞节点的前跳节点进行流量控制,就实现了整个网络的流量控制,充分降低所占用的节点的处理能力,也达到了节约能源的目的。
[1]Ye Wei,Heidemann J,Estrin D.Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Networks[J].IEEE/ACM Trans.on Network,2004,12(3):493-506.
[2]GaoHong,DingWei.ABR flow control algorithm in ATM networks:A neural network approach[J].CHUPT,2005,7(4).
[3]He Wen-bo,LiuXue,NahrstedtK.A feedback control scheme for resource allocation in wireless multi-hop ad hoc networks[C]//Proc of ACM MobiQuitous Conference 2005,July,2005.
[4]WangJun,SongMin.Rate-based active queue management for TCP flows overwired and wireless networks[J].EURASIP Journal on Wireless Communications and Networking,2007.