TCP拥塞控制

原创 2016年12月06日 17:12:46

浅谈网络拥塞以及他的控制方法

什么是网络拥塞

网络拥塞的对象是网络资源。包括链路宽带、结点缓存或处理能力等。在特定的时间内,当对网络中某种资源的需求超过了其可用部分时所出现的网络性能变差直至系统崩溃的现象叫做网络拥塞。

网络拥塞的成因以及危害

  • 第一,当分组到达速率超过路由器输出链路的容量时,路由器要缓存已输入但无法立即输出的分组。所以网络拥塞带来的第一种危害是当分组以大于或接近链路容量的速率到达时,分组将承受很大的时延。
  • 第二,当分组到达路由器时,若有限的缓存已满,分组就会被丢弃。所以网络拥塞带来的第二种危害就是发送方会因分组被路由器丢弃而进行不必要的重传,从而引起路由器消耗其链路带宽来重传不必要的分组副本。
  • 第三,如果有一个分组在某路由器上被丢弃,传输路径上的前几跳路由器的工作就都是“劳而无功的”。所以网络拥塞带来的第三种危害就是当一个分组沿一条路径传输而最终被丢弃时,位于该路径上游的每台路由器中用于转发该分组的传输资源也都被浪费掉了。

TCP拥塞控制

TCP基于端到端拥塞控制方法进行网络拥塞控制,为端系统提供了一种根据自己的通信确认报文作为反馈信息来感知网络状态的隐式拥塞控制机制。

  • TCP感知拥塞的方法
    • 在TCP可靠传输机制中,TCP发送的报文段通过接收方不断返回确认报文来证实这些报文已经可靠地到达目的地。所以一旦发现某个确认报文没有及时返回,就判断相应的报文段丢失,即认为网络出现了拥塞。
    • 在TCP确认报文段发生超时前,一般会出现冗余ACK现象,所以发送方通过检测冗余ACK也能预测网络拥塞情况。
  • 冗余ACK
    所谓冗余ACK就是多次收到对某个报文段的确认。
    • 冗余ACK的产生:当TCP接收方收到报文段的序号大于下一个所期望的报文段时,它发现报文段没有按序到达,此时TCP只能对按序接收到的最后一个字节的数据进行重复确认,这就产生了一个冗余ACK。因为发送方经常连续发送报文段,一个丢失的报文段后面可能跟着多个其它报文段,因此一个丢失的报文段可能会引起多个冗余ACK出现。
  • 网络拥塞控制机制
    当出现丢包事件时,迅速减小拥塞窗口CWin的长度使发送方降低其发送速率;在一般情况下则谨慎增加CWin的长度。这样使通过相同路由器的所有TCP连接都能迅速降低其发送速率,从而能够迅速消除或缓解路由器的拥塞。
    • 慢启动:先从较小的拥塞窗口开始,逐步试探网络状态;试探的发送速率要迅速增加(指数增加),直至接近某个阈值。
    • 加性增、乘性减:当网络可能进入拥塞状态时,将以指数方式增长的发送速率降低为以线性增长的发送速率。加性增是在慢启动阶段结束后,进入平缓的线性增长的拥塞避免阶段。乘性减是指发现丢包事件后,TCP要采取措施来迅速减小拥塞窗口。
  • TCP拥塞控制措施与拥塞窗口变化图示
    这里写图片描述
    如图当TCP检测到3个冗余ACK时它有两种处理方法:
    • TCP Rene乘性减:当TCP发送方收到3个冗余ACK时,它先将当前的CWin值减半,然后再按照加性增的方增加CWin值。
    • TCP Tahoe乘性减:当超时情况发生时,TCP发送方先将阈值设为CWin/2,再进入一个慢启动阶段。

参考文献:计算机网络:原理与实践/陈鸣编著.-北京:高等教育出版社,2013.2:89-92 235-248

版权声明:本文为博主原创文章,未经博主允许不得转载。

TCP拥塞控制算法 优缺点 适用环境 性能分析

【摘要】对多种TCP拥塞控制算法进行简要说明,指出它们的优缺点、以及它们的适用环境。 【关键字】TCP拥塞控制算法 优点    缺点   适用环境公平性   公平性   公平性是在发生拥...
  • zhangskd
  • zhangskd
  • 2011年08月24日 17:56
  • 48869

TCP拥塞控制算法-从BIC到CUBIC

本文旨在帮助大家理解TCP CUBIC拥塞控制算法背后的点点滴滴以及其方程式为什么就是那样子的。一直以来,很多人都觉得CUBIC算法非常复杂,涉及到复杂的天书般的”3次曲线“...然而,CUBIC并不...
  • dog250
  • dog250
  • 2016年11月02日 22:23
  • 9254

TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复

我们在开始假定: 1:数据是单方向传递,另一个窗口只发送确认. 2:接收方的缓存足够大,因此发送方的大小的大小由网络的拥塞程度来决定. 一:慢开始算法和拥塞避免算法 发送方会维持一个拥塞...
  • yangbodong22011
  • yangbodong22011
  • 2015年09月16日 20:14
  • 4678

来自Google的TCP BBR拥塞控制算法解析

写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算法的文章,我想抢个沙发。本文写于2016/10/15!        本文的写作方式可能稍有不同,之前很多关于O...
  • dog250
  • dog250
  • 2016年10月16日 15:42
  • 48025

TCP拥塞控制——慢开始与拥塞避免算法

1.引言        计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞...
  • smilesundream
  • smilesundream
  • 2017年05月03日 20:01
  • 1265

网络基本功:TCP拥塞控制机制

拥塞             计算机网络中的带宽,交换节点中的缓存和处理机制,都是网络资源。在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥...
  • gogoky
  • gogoky
  • 2016年04月30日 21:41
  • 7242

TCP拥塞控制算法纵横谈-Illinois和YeAH

周五晚上,终于下了雨,所以也终于可以乱七八糟多写点松散的东西了...方法论问题。这个题目太大以至于内容和题目的关联看起来有失偏颇,不过也无所谓,既然被人以为“没有方法论”而鄙视了,这里也就抛出一些伪方...
  • dog250
  • dog250
  • 2017年02月25日 08:29
  • 3691

让人很容易误解的TCP拥塞控制算法

正文很多人会认为一个好的TCP拥塞控制算法会让连接加速,这种观点是错误的,恰恰相反,所有的拥塞控制算法都是为了TCP可以在贪婪的时候悬崖勒马,大多数时候,拥塞控制是降低了数据发送的速度。       ...
  • dog250
  • dog250
  • 2017年02月18日 07:59
  • 4922

TCP拥塞控制——慢开始与拥塞避免AIMD

*之前总结了TCP拥塞控制的原理, 这次来看看具体的设计算法——慢开始与拥塞避免。。。→_→*...
  • kongkongkkk
  • kongkongkkk
  • 2017年07月01日 10:06
  • 369

TCP拥塞控制

TCP拥塞控制是让每个发送方通过感知的网络拥塞程度来控制发送速率来解决拥塞。 在TCP连接的每一端都有一个一个接收缓存、一个发送缓存、还有几个变量LastByteRead、RcvWin、CongWi...
  • Dillon2015
  • Dillon2015
  • 2017年01月10日 18:34
  • 791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP拥塞控制
举报原因:
原因补充:

(最多只允许输入30个字)