的发送,防止下一跳转发节点发生溢出。一个传感器若旁听到其父节点发送来的一个分组的拥塞比特被置位,则其停止转发数据,以便允许其父节点将其队列中的分组全部发送完。如果不采用这种反馈机制,则在流量波传递通过网络时分组缓存器可能很容易发生溢出。假如一条路径持续拥塞,那么逐跳反压最终到达源节点,允许应用层流量控制[在后面的3.4章节介绍]抑制源节点速率。
当需要多跳传递反压时存在一个有关拥塞状态通信问题。当一个父节点设置其拥塞比特时,它的子节点会停止发送。因此,子节点在发生拥塞时就无法通知自己的子节点。我们的解决方法是:允许一个拥塞节点一旦旁听到其父节点发出的一个分组设置了拥塞比特就立刻发送一个分组;也可以是拥塞节点每收到一个
分组就发送一个额外的分组,补偿子节点旁听不到表示拥塞的分组。
3.2 速率限制
全被动法,即通过传递流量监视来确定源节点速率。每个传感器节点旁听其父节点转发的流量,据此估计其路由经过该父节点的源节点总个数N。我们用令牌桶算法调控每个传感器的发送速率。传感器节点旁听到其父节点转发了N个分组就累加一个令牌,直到累加到最大令牌数为止。只有当传感器节点的令牌数大于零时,才允许该传感器发送数据,并且每发送一次就将令牌数减1。这种方法限制了传感器以其每个子节点的相同速率发送数据。
我们在第4章分别用单独地、与其它拥塞控制机制融合的方法评估这种简单的速率限制机制。
3.3 MAC层优先级化
由于信道条件和承载负载的不断变化,网络中的任何点都可能发生拥塞。这些拥塞点常常引起噪声平面的升高、分组交付率的急剧下降。随着网络直径的增大,如果传递流量由于拥塞而被丢弃,那么这就变成一个越来越严重的问题,这是因为网络消耗了许多有用的能量和带宽来发送多跳转发分组(活锁问题)。而且,网络的一种自然趋势是:交付离中心节点近的源节点产生的流量,牺牲离中心节点远的源节点的流量。源节点速率限制就是解决噪声平面上升问题和不公平性增强问题。
速率限制工作原理如下。假定所有传感器产生相同流量负载、路由树基本对称。处理速率变化的一个更通用更好的方法就是要求源节点发送其流量产生速率。为了简单起见,采用
虽然传感器能够利用上述的网络层机制对拥塞问题做出反应和处理,但是传感器节点对拥塞问题的反应速度不能保证总是足够快的,从而不需要MAC层的支持就能够防止缓存器数据丢失。MAC层的载波监听多路访问(CDMA)对拥塞控制有辅助作用。
MAC层标准CDMA赋予每个传感器节点相同的发送竞争成功的概率。然而,在拥塞期间,若采用标准的CDMA,则由于拥塞的传感器节点不能迅速地将拥塞控制反馈给相邻节点,因而可能导致性能降低。例如,考虑一个高扇入的场景,即几个传感器节点通过一个公共父节点转发分组。通常,父节点传感器只有在其一半相邻节点发送完成后才能访问信道。然而,因为父节点出现拥塞,所以它可能没有足够的缓存器空间来存储其子节点转发来的分组。因此,父节点没有别的选择只能丢弃子节点发送来的分组。结果是,拥塞的传感器节点拥有访问无线媒介的优先权是非常必要的。
为了解决这个问题,我们采取
4
Aad和Castelluccia提议的方案[参考文献1],使每个传感器随机退避时间长度(在每个发送周期之前)作为其本地拥塞状态的函数。如果一个传感器节点出现拥塞,则它的退避窗口等于无拥塞时退避窗口的1/4,使拥塞传感器赢取竞争的机会更高,允许将输出队列中的分组全部发送完毕,提高拥塞控制信息传播到传感器整个相邻区域中的可能性。
3.3.1 终端隐藏问题
止。有些应用只是简单地等待网络栈重新接收数据(我们评估这种策略)。有些应用则通过AIMD控制器或类似机制来调整自己的发送速率。通常,应用只允许在网络栈中立即保存少量分组,以防止本地产生的流量成为缺乏传输路由的流量。
4.实验评价
两个不在其无线覆盖范围内的发送节点同时对一个公共接收节点发送时就会发生隐藏终端问题。减少隐藏终端间碰撞的一种方法是在通信前相互交换RTS/CTS控制分组。尽管这些控制分组也有可能会碰撞,并且有些不会碰撞的发送也有可能会停止进行,但是这些RTS/CTS交换排除了大部分分组的碰撞。当实际的数据分组长度远远大于控制分组时,RTS/CTS交换带来的开销是值得的。然而,在传感器网络中,数据分组通常是比较小的[参考文献6],并且根据研究文献报告在在某些平台上进行RTS/CTS交换会增加40%的开销[参考文献24]。因此,我们不评估这种机制。
Woo和Culler提出了一个减轻树状拓扑中的终端隐藏问题的策略[参考文献24]。当一个节点旁听到其父节点发送完一个分组时,它会等待一个分组时间和一个保护间隔时间,以避免可能的隐藏终端与其祖父节点碰撞。我们在第4章评估这种策略以及其他的拥塞控制策略。
3.4 应用自适应
应用在预防拥塞中起着重要的作用。当网络栈没有准备接收额外的数据时,通过发送失败来通知应用,然后一直等到应用做出适当的响应为
在这一章,我们评价在55个节点的室内WSN测试平台上仿真的几个拥塞控制。每个节点都是Crossbow Mica2,拥有4KB的RAM,128KB的闪存的Atmel ATmega128L微控制器以及CC1000无线通信模块。无线通信模块运行频率为433MHZ,传输速率为38.4Kbps,使用曼切斯特编码。每个节点附属于一个Crossbow MIB600接口板,该接口板同时为编程和数据收集提供电源和以太网反向信道。如图5和图6所示,我们将节点部署在我们办公建筑的一层即16,076平方英尺的面积内,自由覆盖整个楼层,在地板左上角布置的节点密度高于平均密度。我们使用Motelab[参考文献23]管理测试平台。
表征每个节点的相邻节点的大小是困难的,原因是无线传播是变幻莫测的。为了表征邻节点的大小,我们测量空载网络在几种不同发射功率水平情况下成对节点之间的信道质量。该测量是在没有路由协议和任何网络栈变动的情况下执行的。一个接着一个,每个节点发送一个广播探针分组队列(链路层重发除外)。我们定义一个节点的邻居节点大小N(x)为该节点能够监听到的任何发给自己的数据量的期望值。该值可以使用表达式4计算,x表示网络中任意一个节点,N是所有节点的集合,Pxy是节点y成功接收来自节点x的发送的可能性。
图2显示了我们的测试平台各邻
5
节点的大小。平均邻节点大小随着功率的指数增长呈直线增长趋势。在我们的实验中,我们选定一个-10dBm的传输功率电平,该功率电平明显低于默认的0dBm功率电平。我们的目的是在保持网络连接状态下降低无线通信功率、增加空间复用。
我们在表2总结了每种拥塞控制策略,并为每种拥塞控制策略提供实验参数。对于拥塞控制策略,我们使用在第3.3章节介绍的MAC层优先级化技术。没有拥塞策略时,我们使用TinyOS下未修改过的MAC协议(B-MAC)。我们在以下这三种工作负载下评价每一种拥塞控制策略:定期工作负载,高扇入工作负载,事件相关工作负载。我们利用在第2章介绍的度量方法评价每一种技术。
让我们测试平台中的传感器运行TinyOS1.1,使用我们自己的单一目的地DSDV[参考文献18]路由选择协议增强。每个传感器通过旁听其邻居节点的传输来监听它们的信道质量,选择将数据转发到目的地的传输的最小期望值的路由[ETX参考文献4]。每个传感器节点使用一个八个分组大小的队列来缓存输出流量。在无线通信栈中使用的MAC协议来源于底层TinyOS的分配,即在第3.3章节介绍过的修改版MAC协议。我们的链路层发送数据,通过最大限度的三次重传达到一定的可靠性。
所有在WSN中传输的分组长度都是36字节。只有在实验过程中执行的其他流量是不频繁的每十秒发送一次路由更新。此外,我们设置无线通信频率以减少来自建筑内的其他WSN的干扰。在我们的实验中,我们保持收集数据阶段前两分钟的路由稳定,一旦稳定阶段完成我们也要保持实验期间路由的稳定。稳定的路由确保路由协议不会影响我们的实验结果。
对于在定期的或与事件相关的工作负载下的每一个实验数据点,平均
和置信间隔内有超过15个信息向同一个中心节点(节点6)汇聚。高扇入工作负载下平均值超过5个。我们统计在一天中不同的时间、一个星期中不同的工作日所有发送的流量。在定期工作负载和高扇入工作负载下,每运行一次,流量统计收集阶段持续4分钟,对于事件实验则是持续一分钟。
我们依据如下信息评价度量指标,即每个传感器的负载范围在定期和高扇入工作负载情况下从每秒0.25个分组到每秒4个分组。事件大小范围:1~8个事件相关工作负载分组。由于Mica2链路层吞吐量接近每秒40个分组,且我们的网络包含有55个传感器,因此我们可以确定我们的网络以每秒4个分组的速度转变为拥塞。
4.1 定期工作负载
定期工作负载模仿一个典型的监听传感器网络,该网络在固定的时间间隔产生读事件。在实践中展示这个通信模式的部署是非常普遍的现象[参考文献7,13,20]。在这种工作负载下,每一个传感器源在某个负载下通信,并帮助将其他传感器节点的流量转发给中心节点。为了避免不同传感器节点同时进行定期报告,我们提出了一个随机延迟方案,该延迟时间在实验开始时与报告速率有很大的相关性。图3显示了用于将分组转发给中心节点的路由拓扑图的快照。
我们注意到,规定WSN避免拥塞控制的需求看似是困难的,即是在轻度工作负载下。即使一个网络设计者知道总负载是事先确定的,但是无线通信变幻莫测的性质使得了解网络的真实转发拓扑成为几乎不可能的事情,并使得高密度的信道带宽分配异常困难。
4.1.1 定期工作负载:网络有效性
6
图4表明,在我们研究的每一种拥塞控制方案中,网络有效性?(定义如表达式1所示)怎样随着每个传感器负载变化而变化。首先,注意每个拥塞控制方案的递减趋势。这种趋势是期待的,因为随着传输数量的增加,网络的噪声平面会上升,这就增大了分组损坏和重传的可能性。此外,由于MAC争用和终端隐藏问题使得碰撞的概率增加。这些因素随着负载的增加加快了的网络有效性?的下降。
速率限制出于同样原因,即有效性与负载呈下降趋势(只有少量分组传输)对比,提出了逐步改善有效性的方法。特别是,速率限制减少了接近网络中心节点位置的负载,这些位置通常是拥塞和争用最糟糕的地方。然而,随着负载的增加,终端隐藏和干扰限制了这种方案在有效性上超过别的拥塞控制方案。
逐跳流量控制在有效性方面进行了额外的改善,由于另外的原因使得其比速率限制更成功。逐跳流量控制并不是通过减少网络的转发点和叶子节点之间争用来改善有效性,而是通过基于本地邻居队列的争用限制传输来改善有效性。另外,随着负载的增加,队列占用拥塞检测总是胜过信道采样。这就暗示着作为拥塞的一个指标,队列占用至少跟信道采样一样好。
结合这两种流量控制策略的Fusion方案能最大程度改善有效性。逐跳流量控制有助于抑制网络中每条链路上的传输,速率限制机制度量进入网络的流量。同时,这两种策略相互补充,实现了高水平有效性,即使在网络达到饱和情况下。
4.1.2 定期工作负载:非平衡性
在每秒4个分组的负载下,我们在图7绘制了不同拥塞控制策略的节点非平衡性?的分布图。这些结果总结了多次定期运行实验的节点非平衡性
状况。没有任何拥塞控制策略的情况下,网络会出现许多热点:大约有5个节点(90%可能)的非平衡性大于其他50个节点。此外,没有拥塞控制时非平衡性CDF的拖尾是很严重的,这表明网络中出现不正常热点并且这些热点没有成功转发自己收到的任何流量。速率限制同样表现出严重的拖尾,这表明速率限制也不能有效解决这些不正常的节点问题。
信道采样和基于队列占用的拥塞控制均能将非正常的热点从网络中移除。当把多种拥塞控制策略融合成Fusion方案时,我们可以看到这种协同作用显著改善了拥塞状况。
图5和6显示了在一次试验运行过程中每个节点接收到的总流量,分别显示了使用Fusion方案和无拥塞控制策略情况下每秒4个分组的定期工作负载。链路密集程度与边沿头节点接收来自边沿尾节点的分组总量成比例。
在图5中,注意到在图中相对密集的边沿形成一个转发骨干节点,即大部分的流量在该节点转发。速率限制有助于限制叶子节点的流量,特别是接近中心节点的叶节点,以便不会超过网络的负载。此外,对分组信息保留的保护:对节点来说是路由流量,一些少输入的链路通常造成一个链路是大量输出。
相比而言,在图6中(没有拥塞控制)没有明确的转发骨干节点,也没有分组信息保留的保护。例如,一个或多个密集的边沿网络进入一个节点,该节点通向一个稀疏的边沿网络,同样从该节点退出该边沿网络。这就意味着缓存器或无线信道数据的大量丢失。我们再解释一下在图7中看到的非正常的热点。在图中偏僻的左上角是节点密集区。这就是说在那一片地理区域存在大量的无线传输碰撞。
7
4.1.3 定期工作负载:吞吐量和公平性
接下来,我们测量中心节点接收的总吞吐量,不考虑数据是哪个节点传输的。图8表明,随着负载的增加,使用非速率限制拥塞控制策略会导致吞吐量达到最大。这是因为,速率限制可以减缓节点速率的下降,因此会造成网络有效性低。
吞吐量的走势是次要的,但是实质上,没有拥塞控制时公平性会下降。图9表明了吞吐量的分布,即中心节点接收来自每个节点提供的每秒2个分组的负载。注意到没有拥塞控制的情况下,超过40%的节点发送速率小于每100秒1个分组,这就使得部分网络几乎是没有用的。拥塞控制牺牲少数的节点的高吞吐量并更加公平地分配节点间的带宽。
表3表明,报告周期内,给定网络中节点的百分比可以实现每个传感器每秒提供4个分组。在第二列里,我们看到没有任何拥塞控制策略的情况下,不能保证吞吐量能到达节点的四分之一。相比而言,使用占用拥塞控制策略的节点可以覆盖网络90%的范围。假设,无论如何,我们只是对网络中的节点吞吐量的10%可以达到目的地感兴趣,没有拥塞控制是最好的策略。但是这个体制,对于传感器网络设计者来说不太可能有兴趣,因为10%的传感器网络覆盖能力很差,特别是当这些节点最接近中心节点时。
正如我们改变提供每秒0.25~每秒4个分组的负载,我们可以看到总吞吐量的曲线走向是一样的。没有任何形式的拥塞控制下,总吞吐量增加趋势如图8所示。然而,网络大部分在传输来自距离中心节点只有一跳的节点的数据,这就导致公平性的下降,如右手边的图10所示。没有速率控制策略情况下,拥塞控制机制遭遇同样类似的结果,因为在网络中心的节点
拥有更多机会将分组注入网络,原因是这些节点需要经过的跳数少,即可以用逐跳反压法。速率限制可以显著改善公平性,因为空间为边沿网络发来的流量打开了节点的传输队列。
图11表明,中央节点吞吐量是每个节点提供的负载的函数。在低于每秒0.5个分组的负载下,网络处于一个负载不足的状态,吞吐量随着负载的增加而增加。在高于每秒1个数据包的负载下,传感器需要一个拥塞控制策略(如果超过一半以上可以完全提供流量)。这个结果确定处于边沿的传感器经受高度不公平性,这是在网络处于拥塞崩溃状态下的结果。至少,运行Fusion的节点有一半可以维持至少每秒0.1个分组作为增加负载,因为速率控制可以阻止网络中心节点压制边沿节点。
4.1.4 定期工作负载:等待时间
图12表明,中央分组等待时间怎样随着负载发生变化。我们测量从传感器应用层传输到中心节点恰好收到分组的等待时间。因为我们只测量了中心节点收到分组等到时间,该度量标准必须将公平性考虑在内。等到时间的主要来源是排队时延,当一个分组需要经过的跳数增加时排队时延也会增加。当我们将负载从0开始增加到每秒0.5个分组时,需要建立队列,等待时间增加。对除Fusion外的所有策略的负载超过每秒1个分组时,公平性会急剧下降,边沿网络的分组会被丢弃。等待时间随着负载增加而增加,因为连通网络中心的传感器更靠近中心节点。因为Fusion策略是最公平的,随着负载的增加,接收边沿分组(需要经过很多跳)的比例更大,结果是等待时间会增加。
4.1.5 定期工作负载:损失来源
8