摘 要 Ad hoc网络是一种无基础设施、无中心控制的分布式自组织对等式网络,在紧急情况下能够简单迅速搭建。而传统的TCP拥塞控制协议在Ad Hoc网络中表现出不稳定性,不公平性,带宽利用率不高以及随着跳数增加吞吐量减少等问题。eXplicit Control Protocol(XCP),即显式控制协议,是一个基于反馈的拥塞控制协议,其通过对注入网络的数据流设置标记并由网络向发送端发送准确定量的反馈信息来实现拥塞控制。本文简单阐述了TCP拥塞控制协议及其一些改进方案在Ad Hoc网络中的缺陷,并主要针对XCP在Ad Hoc网络中的运用WXCP进行了详细的分析和讨论。 关键词 Ad Hoc网络;拥塞控制;显式控制协议 0 引言 随着无线技术的进步,对于建立一个提供低花费因特网接入的宽带无线网,无线Ad Hoc网络是一个很有潜力的候选者。对于这种新的网络体系结构,需要一种能够有效处理多跳网络及其变形的传输协议。 当前,最广泛使用的TCP协议是TCP Reno及其变种。然而,最近的研究表明TCP Reno在无线Ad hoc网络中遇到了公平和效率的问题。究其原因,主要有以下三个方面: ①TCP没有区别开拥塞控制和可靠性控制。TCP通过报文丢失事件来检测拥塞,但在Ad Hoc网络中,报文丢失虽然与拥塞密切相关,但它并不是一个可靠的拥塞信号,报文丢失也可能是由于与传输信道有关的错误和与结点移动有关的路由失败引起的。 ②TCP依赖AIMD算法调节拥塞窗口使网络收敛到公平的带宽共享。因此,在重新路由后,它不能高效率地获得空闲带宽。 ③Ad Hoc网络的吞吐量主要取决于传输负载。当传输负载增加到超过一定门限,链路出错率增加,吞吐量降低。而TCP流量控制为了填充瓶颈接口队列,常常向网络中注入太多的报文。 本文设计了一种解决后两个问题的新的拥塞控制策略去改进无线Ad Hoc网络传输协议的性能,该策略采纳了一种显式拥塞控制体系结构,这种体系结构由中间结点作出拥塞估计并把速率反馈送回发送端,发送端基于收到的速率反馈调整其传输速率。这种协议叫无线显示控制协议,即WXCP(Wireless eXplicit Control Protocol),其设计思想来自XCP(eXplicit Control Protocol),一种为高带宽延迟网络设计的基于窗口的拥塞控制策略。WXCP在中间结点和发送端集成了一系列机制以使XCP适用于无线网络环境。在中间结点,WXCP做了更为精确的拥塞状况估计,并基于多个拥塞度量值计算速率反馈。通过使用显式速率反馈而不是搜索可用带宽,WXCP流能够迅速收敛并获得良好的吞吐量。同时,WXCP流能够比TCP流更快收敛到平稳。另外,还在发送端引入了报文丢失发现及减缓机制用以处理小窗口和峰值问题。 1 相关工作 WXCP是对为高带宽延迟积网络设计的XCP的扩展。同时也有许多关于为多跳无线网络可靠数据传输改进TCP性能或者设计新的策略的相关研究。 ① 第一类方法是基于端到端的测量。Wang和Zhang[2]提出的通过检测并响应无序报文传递事件以提高TCP的性能的方法。Fu 等[3]提出了一个TCP友好的传输协议,这种协议基于端到端的测量对报文和连接行为进行多值联合鉴定以试图区分不同的事件,例如由于移动引发的连接断开、重连接及网络拥塞引起的信道错误等。 ② 也有研究者试图通过使用来自路由层的显式反馈来改进无线网络中的可靠数据传输性能。Holland 和 Vaidy[4]研究由于移动造成的链接破坏对TCP性能的影响并提出了一种显式链路失败通知技术(ELFN)。Chandran[5] 也提出了一种TCP反馈的相似机制。Liu 和singh[6]在传输层和路由层之间引入了一个薄层用以处理来自中间结点的显式通知并保护TCP不受Ad Hoc网络潜在行为的影响。 这两类方法通过区分与拥塞有关的报文丢失和由于信道错误和路由失败引起的报文丢失来提高TCP性能,解决了上面提出的第一个问题。 ③ 最近,研究者又提出用来自中间结点的显式速率反馈来解决第二和第三个问题。Sundanrasan 等[7] 提出了一种基于速率的传输层协议ATP。在ATP中,发送端基于来自瓶颈结点的显式速率反馈调整传输速率。Chen等[8]介绍了EXACT(Explicit rAte-based flow ConTrol),将ATM的ABR拥塞控制使用的基于速率的反馈应用于Ad Hoc网络。 本策略也是利用显式速率反馈解决第二和第三个问题,但与这些方法不同的是,本策略在发送端使用的是基于窗口的拥塞控制而不是纯基于速率的拥塞控制。与[8]相比,WXCP的中间结点并不维持每个流的信息,因此WXCP的实施将更为简单。虽然[7]也不维持每个流的信息,但它并没有考虑到无线传输信道的空间特性。而且WXCP在不同的流之间维持时间公平而不是吞吐量公平,因此WXCP能获得一个的更高总吞吐量。2 WXCP在Ad Hoc网络中的具体实现2.1基本思想 假设MAC协议的基本机制为:1基于CSMA/CA。 2单播报文确认。把XCP应用到共享信道的无线网络是具有挑战性的,为了精确计算反馈,XCP路由器必须预先知道准确的链路容量。然而在共享信道无线网络中,所有的结点竞争信道,真正的吞吐能力随着传输负载的变化而变化。XCP在接口处获得链路容量以计算速率反馈,由此引入的容量估计会使XCP产生膨胀的反馈,从而发送端发送的报文将超过链路的传输能力,队列建立并加长。而WXCP并不使用通过一个固定接口获得的容量,通过局部地检测中间结点的信道状况,WXCP获得合理的容量估计。另外,WXCP还在发送端加入了报文丢失发现机制和减缓机制用以处理小窗口和峰值问题。2.2 拥塞度量的描述 WXCP使用三个度量去检测结点处的资源使用状态和拥塞程度:可用带宽(Available bandwidth),接口队列长度(interface queue(IFQ)length)和平均链路层重传(average link layer retransmission(ALR))。不失一般性,这是使用可用带宽代表可用网络容量。可用带宽越小,拥塞发生的可能性越大。可用带宽可以基于本地监测进行估计而不需要额外控制报文的交换。如果周期性估计,信道空闲时间代表网络容量在估计周期内仍然可用。为了把信道空闲时间转换为传输速率,需要计算链路层吞吐量。因为在不同的位置无线信道状况可能不同,到不同的邻居结点的链路层吞吐量也可能不同。因此,虽然使用相同信道,但在 WXCP中使用可用带宽是所有路径的平均可用带宽。如果估计周期是T,则平均可用带宽B: B= (1)是在周期T内的信道空闲时间,bw是到所有不同接收端的平均链路层吞吐量。该模型可以用IEEE802.11 DCF MAC协议实现,该协议使用CSMA/CA机制控制多个结点访问相同的信道。通过监测无线电情况,可以得到 ,它是在观察间隔T中结点使用信道时间,物理载波侦听时间,虚拟载波侦听时间的总和, 可以由T- 得到。在802.11 DCF中,任何非广播数据报总是伴随着一个确认数据报,bw是每个链路层吞吐量测量样本值的平均值,链路层吞吐量测量样本值计算公式为: (2) 是报文j的大小, 是报文传递到MAC层的时间, 是收到相应的ACK报文的时间。 第二个度量值是输出接口队列状态。当输入传输速率比输出传输速率大,报文开始缓存在接口队列(IFQ)中并且队列的长度增加,当队列满时,到达队列的后续报文被丢弃。 TCP由此推断网络中拥塞的存在。 由于隐藏终端的问题,如果没有任何协调措施,发送端与不在其侦听范围但在接收端侦听范围的结点竞争接收端周围的一个信道,如果隐藏通信来自流本身,这就是众所周知的自冲突。当一个流向网络中注入过多的报文,自冲突会发生,传输延迟增加,吞吐量减小。通过调整传输速率,可以改变自冲突的程度。然而发送端的IFQ长度对于检测自冲突并不是足够的灵敏。因此,这里使用成功发送报文的平均链路层重传作为第三个拥塞度量值去检测自冲突程度。 使用ALR去侦听自冲突会遇到许多的干扰,因为无线Ad Hoc网络中的报文丢失不仅仅因为自冲突,还包括其它的无线信道错误(例如由于多路径反射和来自其它信号源、路径散射的信号冲突)和路由失败。将自冲突与其它的无线信道错误区分开是很难的,有可能当网络经历严重的无线信道错误,结点产生大量的重传,却由此推断存在严重自冲突,但事实上并没有冲突。WXCP通过遵循TCP中保持最小拥塞窗口CWND大于或等于一个报文的规定处理这个问题。而事实上,一个报文大小的CWND对大多数网络来说接近最优值。在最坏的情况下,当严重的无