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,即传输控制协议,是目前网络上使用的最多的传输协议,我们知道,整个互联网的体系结构是以IP协议提供的无连接的端到端的报文传输服务为基础,在这种体系结构下,那么端到端的数据传输需要自...

网络拥塞控制(十) 总结

也是总结的时候了,写完了TCP的多个经典的拥塞算法,但是由于这方面的优化算法还有很多,没办法能够一一讲完,所以下面对其他的一些比较典型的也进行一个简单的介绍: Fast TCP: Fast TCP由...
  • dongzhi
  • dongzhi
  • 2012年06月17日 21:12
  • 771

TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免

TCP的拥塞控制 1.  拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。     拥塞控制:防止过多的数...
  • Kinger0
  • Kinger0
  • 2015年09月04日 10:00
  • 17165

TCP的拥塞控制

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

NetWork——TCP的流量控制和拥塞控制

0.  前言从网友分享的面经来看,TCP的拥塞机制在今年腾讯面试中被提及了,可见不论是什么研发岗位,计算机网络的知识总是那么的重要。本科时候学的都忘了=。= 今天打算总结TCP的流量控制和拥塞控制。网...

TCP拥塞控制-慢启动、拥塞避免、快重传、快启动

一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求>可用资源。 作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一...

TCP - 流量控制 and 拥塞控制

未完待续。。 流量控制 拥塞控制 1 慢启动 - Slow Start 和 拥塞避免 - Congestion Avoidance 2 快重传 - Fast Retransmission 和 快恢复 ...
  • qing101
  • qing101
  • 2015年09月22日 14:31
  • 2652

tcp拥塞控制

  • 2012年07月08日 09:59
  • 335KB
  • 下载

NS-2实践:分析TCP的拥塞控制原理

  • 2012年01月03日 05:56
  • 113KB
  • 下载

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

写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算法的文章,我想抢个沙发。本文写于2016/10/15!        本文的写作方式可能稍有不同,之前很多关于O...
  • dog250
  • dog250
  • 2016年10月16日 15:42
  • 42759
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP拥塞控制
举报原因:
原因补充:

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