TCP丢包检测技术详解

TCP丢包检测技术详解
http://www.cctime.com/html/2007-12-6/20071261023151210.htm
   
 
 
 
2007年12月6日 10:23  中国新通信  作 者:李雪徐昌彪

    1、引言

    传输控制协议(TransportControlProtocol,TCP)是目前Internet中广泛采用的一种传输协议,它为各个主机之间提供可靠、按序传输、端到端的数据包传输服务。TCP拥塞控制是其成功的重要因素。TCP拥塞控制的前提是网络拥塞为数据丢失的唯一原因,即只要终端检测出有数据丢失,均认为是网络拥塞所致,于是调用拥塞控制机制。

    随着无线通信技术的发展,由于无线环境具有误码率高、信号衰落以及频繁的移动等特性,网络拥塞已不能再被看成是数据丢失的唯一原因,直接沿用现有的TCP技术势必会恶化TCP性能。这样,能否区分丢包自然成为改善无线环境下TCP性能的关键。为此,人们在这方面做了大量的研究和探索,提出了多种技术。但是针对特定丢包情况给出某一方法的文章还很少见。

    2、无线网络环境中三种丢包情况分析

    TCP拥塞控制机制的前提是网络拥塞为数据丢失的唯一原因,由于无线信道特性,在无线网络环境中大量的数据会因切换、信道衰落、干扰等而被丢弃,在这种情况下若TCP启动拥塞控制,会造成不必要的数据发送速率的降低,导致带宽利用率不高、系统时延加大、吞吐量下降。

    2.1随机丢包(RandomLoss)

    传统的TCP拥塞控制机制是为有线网络而设计的。由比特差错以及链路差错引起的数据丢失几乎可以忽略不计。但是在无线网络中,数据丢失是由信号衰落引起的。对基于IS-95CDMA数据服务来说,有1%~2%是随机丢包。

    2.2突发丢包(BurstLoss)

    突发丢包是在一段很短的时间内,导致许多数据连续的丢失。它是由信号衰落引起的。

    以无线局域网为例,对一个移动主机来说,它的所有通信量(流入和流出)都是通过与它相连的基站路由出去的。当移动主机从一个基站的覆盖范围移出时,它需要在它所运动到的另一基站处登记它的信息。所有之后的通信都是通过新的基站来完成的。然而,当发生切换时,通过原基站递交给移动主机的一系列数据包将会丢失。因此,切换可以导致突发丢包事件的发生。

    2.3包的重新排序(PacketReordering)

    当接受端收到包的顺序与发送端发送顺序不同时,就要对包进行重新排序。同样是以无线局域网为例,包的重新排序与切换有关。当移动主机从一个基站切换到另一个基站时,发往移动主机或者是从移动主机发出的包通过新的基站路由信息。因为数据包在不同的路径上传输会经历不同的RTT,导致了数据包不能按序递交。

    3、针对三种情况的解决方案

    我们对一些有代表性的端到端的解决方案进行了总结,并分析了相应的一些解决方法。

    3.1随机丢包的解决方案

    3.1.1TCPWestwood

    TCPWestwood是一种由发送方通过测量ACK的速率来调整拥塞窗口的TCP协议。它是在发生拥塞之后用于设置ssthresh和cwnd的,不像传统的TCP拥塞控制机制检测到数据丢失后盲目将发送速率减半,因此TCP-W在面临随机丢包的情况下可以达到较高的链路利用率。带宽估算方法如下:

    bn是在tn时刻第n个ACK到达时的估计带宽,tn是接收到第n个ACK的时刻,Ln是被确认的分组n的尺寸。实验结果表明,TCP-W在吞吐量、公平性方面都优于Reno,但它也有不足之处,如与Reno共存时,友好性问题以及过高的估计带宽出现ACK压缩。


TCP丢包检测技术详解
   
 
 
 
2007年12月6日 10:23  中国新通信  作 者:李雪徐昌彪

    3.1.2TCP-Jersey

    该算法与TCP-W的思想类似,即在发送端通过观察返回ACK的速率来估计带宽,算法如下:

 

    这里Rn是在tn时刻第n个ACK达到时的估计带宽,tn是接收到第n个ACK的时刻,Ln是被确认的分组n的尺寸,RTT是往返时间,可以看出,当遇到ACK压缩或路由变更时会更高。

    3.2突发丢包的解决方案

    3.2.1TCP-Feedback

    TCP-F是一种在MANET中基于反馈的处理路由失效的方法。该方法使TCP发送方能够区分出丢包是由于路由失败还是由于网络拥塞。其实现过程如下:当中间节点的路由进程检测到路由中断后,显式地发送一个路由失败通知RFN(RouteFailureNotification)给TCP发送方;当TCP发送方接收到RFN后,进入到一个冻结状态,处于冻结状态的TCP发送方停止发送数据分组并冻结所有的变量如定时器与拥塞窗口大小;TCP发送方一直处于冻结状态,直到收到中间节点发来的路由重建通知RRN(RouteRe-establishment Notification);收到RRN后,TCP发送方从冻结状态回到正常状态,并且在原有TCP变量的基础上开始发送数据。为了避免一直处于冻结状态的死锁状态,在收到RFN后,TCP发送方会触发一个路由实效定时器,当该定时器超时,则进入正常的拥塞控制算法。它的不足之处在于当连接重新建立时向网络中注入大量的突发通信量,可能会发生网络拥塞。

    3.2.2ELFN

    显式链路失效通知ELFN(ExplicitLinkFailureNotification)与TCP-F相似。然而,它们的不同之处包括以下两个方面:

    (1)ELFN靠路由失效信息而不是TCP-F中RFN包来通知源端链路或路由失败;

    (2)ELFN不需要中间节点发送RRN启动已经冻结的状态。

    3.3包重新排序的解决方案

    3.3.1DynamicDelayedAck

    动态延迟确认(DynamicDelayedACK)通过减少TCP接收方发出的ACK确认分组的数量来提高TCP性能。在该方法中,累计确认的系数d的值会随着TCP分组的序号N而改变。当N<L1时d取1;当L1≤N≤L2时d取2;当L2≤N≤L3时d取3;当L3≤N时d取4(L1、L2、L3为定义的门限值)。该方法的缺点是:每次发送端收到延迟确认后会发送大量的数据包进入网络,这将会导致网络拥塞。

    3.3.2TCP-DOOR

    TCP失序检测与响应TCP-DOOR是一个端对端的方法,基于失序传递事件的发生作为判断的目标,失序事件的发生被解释成路由改变的指示。它的主要思想是:使用ACK序号非递减的特性来检测失序事件的发生。在重复ACK的分组中,这些分组有相同的序号。所以发送方需要附加的信息来检测失序事件。采用在接收方把传出的ACK分组新增ADSN(ACKDuplicationSequenceNumber)字段,该字段占1字节,对于每一个重复传送的ACK分组,ADSN的值会增加。这样在发送方就可以通过ADSN的值来判定失序事件的发生。一旦TCP发送方得知失序事件时,应做出如下的响应:临时关闭拥塞控制,并且立刻从拥塞避免阶段恢复。该方法的弊端是:路由发生改变后发送速率的值设置的不适当。

    4、结束语

    为了提高无线网络中的TCP性能,针对无线网络的特点,本文分析了丢包产生的原因并讨论了各国研究者提出的解决方案,他们的区别在于不同的丢包情况采用不同的响应机制。但是几乎没有一种机制可以同时解决三种丢包情况,这也将是以后我们的一个研究方向。

编 辑:王彬


发布了201 篇原创文章 · 获赞 65 · 访问量 126万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览