无线网络中TCP性能分析及改进方案研究

本文对TCP在无线移动网络中的性能进行了分析,指出其在无线网络中的不足,并介绍了当前几种常用的TCP性能改进方法,最后详细介绍了ADTCP方案的思想。提出一种新的基于端到端TCP改进方案,有效地提高了TCP在无线网络中的性能。

  传统的TCP协议是为有线网络环境而设计的,因此TCP假定网络拥塞是引起报文丢失的唯一原因.并相应地采取拥塞控制机制。然而在无线网络中。无线链路的高误码率和主机的移动切换也经常引起报文丢失,而TCP仍然将这严重下降。鉴些报文丢失归咎于网络拥塞,这种错误的推论最终导致无线网络中TCP性能的于TCP协议应用的广泛性,如何提高TCP在无线网络中的性能成为大家普遍关注的问题。

  一、TCP协议在无线网络中的性能分析

  TCP协议虽然是一个可靠的传输层协议.但只适用于有线链路和固定主机构成的传统网络。而由无线链路和移动主机组成的无线网络打破了TCP的许多假设.导致了TCP性能的下降,它主要有以下几个缺点:

  1.错误检测机制

  这个机制不能区别不同类型的错误。TCP有一个基本假设,即一旦发生连续的丢包行为,TCP就判断网络拥塞。但是这套机制搬到无线环境中会使TCP的性能大大降低,因为丢包现象不一定是拥塞导致的,而可能是移动导致的。

  2.错误恢复机制

  这个机制不能针对无线环境的具体特点(如移动节点的频繁变动和信道的衰弱)做出相应的行为。

  3.协议的策略

  这个策略并不考虑到各种性能参数(比如有效的吞吐量和网路开销)之间的折衷,而是经常把时间浪费在重传和其他链接上。

  二、TCP协议的改进方案

  现阶段为了改善TCP在无线网络中的性能,主要有以下几种解决方案:端到端的解决方案,分段连接的解决方案,链路层解决方案和基于ADTCP的改进方案。

  1.端到端的解决方案

  (1)TCP SACK(Selective Acknowledge)协议。SACK算法是在Reno算法基础上进行扩展得来的,它在确认包的包头中增加了附加域,可以标识没有被正确接收的一个发送窗口内的多个数据包,从而对数据包进行有选择地确认和重传。

  (2)TCP-New Reno。New Reno对Reno中的“快速恢复”算法进行了补充。当多个报文在一个窗口中丢失后,TCP可以保持一个快速恢复模式。

  (3)聪明代理机制(SMART)。SMART机制与上文提到的SACK基于相同的原理,它使用的SACK中包含了积累的确认和已经成功接收的报文段的序号,当发现序号不连续时,立刻重发。

  (4)显式丢失通告机制(Explicit kss Notificaiton.简称ELN)。ELN协议在ACK中增加了显式丢失通告选项.它能够通告发送方数据丢失的真正原因。以区别对待与网络拥塞有关及其他与网络拥塞无关的数据丢失。

  (5)Freeze-TCP协议。这种改进方案主要用于解决TCP在移动终端进行越Ⅸ切换时遇到的问题。其原理是由接收方对收到信号的强弱进行判别,预测将要发生的越Ⅸ切换。

  2.分段连接的解决方案

  (1)非直接TCP(I-TCP)。这种方法在无线链路连接中使用常规的TCP.基站只简单地在两个连接间双向复制报文。

  (2)M-TCP(TCP for mobile cellular networks)协议。M-TCP主要设计目标是处理无线网络移动终端频繁地进行越区切换时碰到的问题,防止发送方进入不必要的慢启动阶段。

  (3)无线TCP(W-TCP)。基站使用两种协议TCP和W-TCP。TCP用于处理有线链路数据的传送,W-TCP则应用于无线链路。

  3.链路层解决方案

  链路层解决方案是一种试图从底层(数据链路层)来解决TCP性能的方法。对于TCP这样的可靠传输协议。问题产生的主要原因是由于无线媒介的自然属性不同。所以在产生问题的根部解决问题是比较有效的方法。位于物理层上的链路层能够马上得到帧丢失的信息,因此能够比高层协议做出更快的反应。同时,链路层协议能够对物理层进行更有效的控制。还有一个主要优点是它本身非常适应网络协议的分层结构。链路层协议的操作独立于高层协议。这使得它能广泛适应各种情况,因此它不必维持每一种连接的状态。

  4.基于ADTCP的改进方案

  ADTCP作为一个典型的端到端协议,具有端到端技术的普遍优势,但是在ADTCP样本值的判别上。由于其样本空间中各个样本权重随着其历史的久远而变小,使得当前时间附近的样本对于检测结果影响很大,导致检测灵敏度的下降,所以针对其不足,做如下改进:

  (1)在判别手段上进一步提高,同时尽量减少计算复杂度。CON的判别建立在ADTCP关于1DD检测的成果上。以提高判别的准确性,能够反映通路中队列大小的R”度量的检测来推断CON状态。因为RTT可以直接从TCP中获取,CON判别相对于ADTCP中利用IDD和STT的联合检测,其计算复杂度稍有减少。

  (2)在不同状态的判别上.需要有所区别,如最主要状态CON的判别,需要进一步完善,因为判别失误产生的影响很大:而对于其他的网络状态如RTCHG、DISC、CHERR之间的判别应力求简单。因为这些状态所对应的措施操作差别不大,误判带来的影响较小,也可考虑合并某些状态,提高CON的判别准确性。

  (3)从RTCHG的响应措施来看,可以结合事后的恢复措施,降低检测手段的时效性要求。对于除了CON以外的其他状态的判别。对路由更新(RTCHG)和链路差错(CHERR)进行具体区分,而不像ADTCP那样还要区分连接中断(DISC)、路由更新(RTCHG)和链路差错(CHERR)三种状态,因为DISC在这里完全可以看成是中断事件较长的RTCHG事件。因此,完全可以合并这两个状态,有效降低复杂度。

  (4)对传统TCP保持向后兼容,并且尽量做到TCP友好。根据检测到丢包所用的手段来决定到底采用事前冻结措施还是事后恢复措施。如果丢包是由重复ACK检测到,说明后续数据包可以到达目的端,通路已经恢复。则执行恢复措施。否则采取事前冻结措施。

你可能感兴趣的:(tcp/udp)