计算机应用论文:基于TCP的拥塞控制技术研究

类别:毕业论文  时间:2011-03-17   已浏览: 2843 次
摘要 本文就数据流在拥塞控制方面的发展进行了研究,在介绍TCP基本机制的基础上,对TCP拥塞控制的改进机制进行了讨论,探讨了网络拥塞出现的原因及TCP拥塞控制的基本策略,论述了TCP拥塞控制的改进方案,并提出了其进一步的研究方向。
关键词:TCP 拥塞控制 重传 重传超时
RESEARCH ON CONGESTION CONTROL SCHEMES OF TCP
(Abstract: This paper first introduces the basic congestion control mechanism of TCP,and discusses the problems such as improvement and the congestion control of TCP.The problems in TCP include avoiding unnecessary retransmit timeouts,undoing unnecessary congestion control,explicit congestion notification,and data corruption notification.It has also put forward the research direction further.
Key words:TCP;congestion control;retransmit;retransmission timeout
1. 引言
TCP是Internet上通用的传输层协议之一,是目前应用最广泛的传输控制协议,其核心是拥塞控制机制。基于Internet的交换机的通信信道、处理速度及缓冲存储空间通常是网上所有主机共享的资源,也是网络系统潜在的瓶颈。随着信源主机数以及信源业务端业务量的不断增多,瓶颈处就有可能发生资源竞争,从而导致网络拥塞。TCP的一个重要组成部分是执行拥塞控制和拥塞恢复的算法集合。TCP拥塞控制算法的目标是最大限度利用网络带宽,同时不产生数据流传输中的拥塞现象。因此,自从上个世纪80年代出现第一次拥塞崩溃以来,TCP拥塞控制策略就在不断地进行完善和改进。
2. 传统的TCP拥塞控制机制
传统的TCP中的拥塞控制机制主要是基于Van Jacobson提出的"慢启动"算法、"拥塞避免"算法和一个用于估计周转RTT(round trip time)的算法。
慢启动算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestion window), 记为cwnd。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可以发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4,这是一种指数增加的关系。在某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。拥塞避免算法和慢启动算法是两个目的不同、独立的算法。但是当拥塞发生时,我们希望降低分组进入网络的传输速率,于是可以调用慢启动来作到这一点。在实际中这两个算法通常在一起实现。1990年出现的TCP Reno版本增加了"快速重传"算法、"快速恢复"算法,避免了当网络拥塞不够严重时采用"慢启动"算法而造成过大地减小发送窗口尺寸的现象。
3. 拥塞控制的四个阶段
a.慢启动阶段(slow start):发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。一些中间路由器必须缓存分组,并有可能耗尽存储器的空间。
b.拥塞避免阶段(congestion avoidance):当发现超时或收到3个相同ACK确认帧时,则表示有丢包事件,此时网络已发生拥塞现象,此时要进行相应的拥塞控制。将慢启动阈值设置为当前拥塞窗口的一半;如检测到超时,拥塞窗口就被置为l。如果拥塞窗口小于或等于慢启动阈值,TCP重新进人慢启动阶段;如果拥塞窗口大于慢启动阈值,TCP执行拥塞避免算法。
c.快速重传阶段(fast retransmit):当TCP源端收到到三个相同的ACK副本时,即认为有数据包丢失,则源端重传丢失的数据包,而不必等待RTO超时。同时将ssthresh设置为当前cwnd值的一半,并且将cwnd减为原先的一半。
d.快速恢复阶段(fast recovery) :当"旧"数据包离开网络后,才能发送"新"数据包进入网络,即同一时刻在网络中传输的数据包数量是恒定的。如果发送方收到一个重复的ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。
4. 对传统TCP拥塞控制机制的发展及改进
4.1 对慢启动的改进  
慢启动(slow start)算法通过逐渐增加cwnd的大小来探测可用的网络容量,防止连接开始时采用不合适的发送量导致网络拥塞。然而有时该算法也会浪费可用的网络容量,因为慢启动算法总是从cwnd=l开始,每收到一个ACK,cwnd增加l,对RTT时间长的网络,为使cwnd达到一个合适的值,需要花很长的时间,特别是网络实际容量很大时,会造成浪费。为此可采用大的初始窗口,大的初始窗口避免了延迟ACK机制下单个报文段初始窗口的等待超时问题,缩短了小TCP流的传输时间和大延迟链路上的慢启动时间。
在慢启动阶段,在每个RTT时间内,cwnd增加一倍,这样当cwnd增加到一定的值时,就可能导致以网络能够处理的最大容量的2倍来发送数据,从而淹没网络。Hoe建议使用packet-pair算法和测量RTT来为ssthresh估计合适值,以此来适时地结束慢启动阶段。但是由于受各方面干扰,估算合理的ssthresh值并不容易,因此这个方法的效果是有限的。而Smooth-start较为平滑地从慢启动过渡到拥塞避免阶段,减少了报文段丢失和突发通讯量,提高了TCP拥塞控制的性能。
4.2 对重传与恢复的改进
为了避免不必要的重传超时,有人提出了一种受限传输机制:如果接收方的广播窗口允许的话,发送方接收到一个或者两个重复的ACK(acknowledgment)后,继续传输新的数据报文段。受限的传输机制允许具有较小窗口的TCP连接进行错误恢复,而且避免了不必要的重传。
有很多情况下,数据报文段并没有丢失,但TCP发送方可能会误判数据报文段丢失,然后调用拥塞控制规程减少拥塞窗口的大小。比如当重传定时器过早溢出时,发送方在重传数据报文段时不必要地减少了拥塞窗口,而这时并没有数据报文段丢失。如果是由于数据报文段的重新组织而不是数据报文段丢失,而导致3个重复的确认,同样会导致发送方不必要地在快速重传数据报文段后减少拥塞窗口。
如果TCP的发送方在重传数据报文段一个RTT后发现接收方接收到了重传数据报文段的两个拷贝,则可以推断重传是不必要的。这时,TCP的发送方可以撤销对拥塞窗口的减少。发送方可以通过将慢启动门限增加到原始值,调用慢启动规程使拥塞窗口恢复原先值。除了恢复拥塞窗口,TCP发送方还可以调整重复确认门限或者重传超时参数来避免由于多次不必要的重传而浪费带宽。
4.3 对公平性的改进 
在拥塞避免阶段,如果没有发生丢包事件,则TCP发送方的cwnd在每个RTT时间内大约可以增加一个报文段大小,但这样会造成具有不同RTT时间或窗口尺寸的多个连接在瓶颈处对带宽竞争的不公平性,RTT时间或窗口小的连接,相应的cwnd增长速度也相对缓慢,所以只能得到很小一部分带宽。
要解决上述问题,可以通过在路由器处使用公平队列和TCP友好缓存管理来进行控制以增加公平性。然而如没有路由器的参与,要增加公平性,就要求TCP发送端的拥塞控制进行相应的改变,在拥塞避免阶段使共享同一资源的各个TCP连接以相同速度发送数据,从而确保了各个连接间的公平性。
5. 结论
该文在研究和分析各种基于TCP的数据流拥塞控制算法和参考有关文档的基础上,对以TCP为核心的拥塞控制机制进行了发展和改进,这些改进将使TCP的性能在不同的网络中取得更好的性能。其中避免不必要的重传超时、撤销不必要的拥塞控制等是随着网络技术的发展而对TCP的改进,它们通过不同的方式改进了TCP的性能,具有更广泛的适应性。
参考文献
[1]STEVENS W.TCP slow start,congestion avoidance,fast retransmit,and fast recovery algorithms[EB/OL].RFC2001,1997-01.
[2]ALLMAN M,BALAKRISHNAN H,FLOYD S.Enhancing TCP’s loss recovery using limited transmit[EB/OL].RFC3042,2001-01.
[3]计算机通信网络中基于速率的端对端拥塞控制 谭连生,尹敏 通信学报 Vol.24 No.8 August 2003.
[4]罗万明,林闯,阎保平。TCP/IP拥塞控制研究[J]..计算机学报,2001,24(1),1-18
[5]TCP拥塞及控制 薛德黔 机械与电子 Vol.55.No.5.2003
[6]TCP的发展与改进 彭伟刚  江苏通信技术 Vol.19.No.3.June.2003

相关文章阅读

1、杜拉拉是如何造就的 没想到,一本《杜拉拉升职记》的诞生让“杜拉拉”其人火爆职场,这本书更被誉为“比盖茨的故事更值得参考”的职场指南。 杜拉拉本身没有特别好的教育背景,更没有过多的社会经验,她普通得就如同你我。身为一名普通

2、兼职懈怠期 我想我是进入兼职解怠期了。 这份文字兼职我做了有几个月了,一天平均下来二篇文章,数量不算多,具体算一算也有上百篇文章。每篇都要不同体裁,不同类型,有时的确不知道要写什么样的类型?还有什么体裁是自己没

3、社会老龄化问题严重 延迟退休是趋势   “部长请留步,想请你谈谈退休年龄的问题。”昨日,一场主题为“就业和社会保障体系建设”的发布会在两会梅地亚新闻中心举行。发布会结束后,人力资源和社会保障部部长尹蔚民照例准备离场。但听到这个问题,已经

4、高校大学生忙着考驾照 只为增加就业竞争力 “会写字、会说话、会走路”,相对应的是“熟练计算机、懂英语、会驾驶”,这些如今已被不少大学生视为走出校门找工作应具备的基本素质。这不,新学期伊始,伴随着英语四、六级分数查询的结束,高校又兴起了

5、请不要轻易否决自己,只因我们都不是天才 我姑姑的小女儿,我的小表妹,大学里学的专业是经济管理,她的职业梦想却是成为一名合格的会计师。 会计师和所学的专业有出入,她必须在保持专业课程成绩优秀的情况下分心学习会计学;另外,为了巩固所学,实践很重

6、职场新人需要获取上司的信任吗? 初入职场的新人,或者说刚刚入职一家公司的新员工,需不需要获取上司的信任?这又是一个仁者见仁智者见智的问题…… 我想,很多人都希望能尽快得到上司的信任,因为这利于自己的工作展开,并可以获得更多的工作机

7、找一份好工作运气也很重要 找到一份好的工作,或者说找到一份自己理想中的工作,是谁都希望的。而在求职中,好运气也是很重要的,有时候,拥有好的运气比自己本身所具有的能力优势还要重要得多。 若是以为凭自己高人一等或具有别人所没有的

8、职场遭遇演技派,要如何自处 人生如戏,戏如人生。演戏不只存在于影视剧中,生活中有时也同样需要演戏。但现实生活毕竟不同于影视剧,现实生活中演戏没有NG的机会,不会一次又一次地让你重新来演过。所以,现实生活的不乏“实力演技派”们,他

9、伦理道德专业论文:伦理思维的前提批判-现代伦理建构的双维度思 当市场经济把个人道德操守与其所获利益回报的矛盾问题,以及把公共领域的道德约定与公秩序有否保证相联系的问题突出以后,社会运作便把沦理学推到了一个令人注目的位置。伦理学必须处理初入市场经济的国

10、女性面试时若被问到敏感问题 虽说自改革开放后,女性的地位渐渐得到了很大的提高,特别是职业女性,几乎比肩于一直占据职场主导地位的男性。当今新时代女性,崇尚的是“女人能顶半边天”,什么行业都可以与男性共同竞争。但大多数的女性除了要承