首页 >> 职场知识>> 毕业论文                                                                    

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

类别:毕业论文  时间:2024-04-29   已浏览: 3191 次
摘要 本文就数据流在拥塞控制方面的发展进行了研究,在介绍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、用工荒期间 农民工化被动为主动 自2008年的全球金融危机开始,民工荒已然是春节前后必被提及的常规性话题,而今年尤甚。全国多地的“民工荒”或招工难的报道铺天盖地持续不断,此类新闻不仅占据着门户网站的重要位置,也是中央媒体密切

5、从职场开场秀开始奠定自己的职场好感度 第一印象很重要,不管别人还是自己,都会对对方的第一印象特别深刻,甚至在以后的日子里都会记忆犹新。 入职第一天的首次亮相,是非常关键的。一个好的开始是成功的一半,几乎所有人都希望一出场就获得大家深刻的

6、成功创业的经验之总结 创业并没有什么速成的方法,但吸取一些成功人士的经验和教训,却可以少走很多弯路。   ——创业之前可以先尝试做做业务员,但一定不要选择待遇优厚与招大量业务员的公司,因为前者的业务不好做,薪水固然

7、什么叫学历“查三代” 吉林省某重点高校博士生刘生(化名)最近很苦恼,因为她的“大学教师梦”可能破灭。一名年轻教师不久前告诉她,现在随便什么高校招聘教师,都会要求应征者有硕士、博士学位,很多高校还要查其本科学校是否重

8、面对职场瞎话 我们如何应对   有人的地方就有江湖,在职场这片江湖中也分布着名门正派和邪教外道;有人的地方就有是非,职场同样少不了各种流言蜚语。想要在职场这块鱼龙混杂的地方洁身自好,免受办公室绯闻影响,保持良好形象,看悦己为你指

9、争强好胜实乃职场大忌 在职场中,凡事积极进取,有时主动出击,是一件很好的事情;但凡事却不可做得太过,若是积极进取变成了争强好胜,那就大大的不妥了。 我的一份网络兼职,需求方为了统一管理,就建了一个聊天群,把所有为他们兼职的

10、职场中也要“难得糊涂” “难得糊涂”是世人给郑板桥的美称,是对郑板桥智慧的赞美。而我们为人处事有时何尝不是需要这么一份会懂得装糊涂的智慧。 清朝乾隆年间,画家郑板桥中了进士,做了山东范县县令。寡妇朱月姣告状说魏善人欺侮她,魏