美文网首页
TCP 拥塞控制原理及改进

TCP 拥塞控制原理及改进

作者: heamon7 | 来源:发表于2017-10-21 13:16 被阅读91次

TCP 的拥塞控制主要是这几个关键字:

  • 慢启动和拥塞避免(拥塞窗口从 1开始指数增加,达到阈值后线性增加)
  • 快速重传和快速恢复(当收到三个重复的 ACK 之后,表明丢包,此时立即重传该包,而不等到定时器超时,同时取消慢启动,不再指数增加,而是一直线性增加)

BBR 的改进

终于转变了对“拥塞“这个概念的理解,经典的拥塞控制算法比如 reno 是将丢包作为拥塞的信号,然后降低发送速率。而在该算法中,不考虑丢包,而是基于这样一个定义:

当网络上的包数大于BDP(带宽时延乘积)时,就认为出现了拥塞。所以重点就在于如何准确地测量出瓶颈链路的带宽和整个链路的传播时延。

在1980年设计拥塞控制算法的时候,将拥塞等同于丢包没有很大问题的,当时路由器的缓存小,链路带宽也不高。但是现在,路由器的缓存已经很大了,基于丢包的拥塞算法会一直增加窗口,直至把瓶颈路径上的路由缓存填满,然后出现丢包。但是,在这个过程中时延已经增大到我们无法容忍的程度了,所以需要反思这种基于丢包的拥塞控制思想。

这个算法的实现也有一个重大的思路转变,那就是不能仅仅只控制发多少包,也就是用拥塞窗口cwnd和慢启动门限值ssthresh来控制发包的多少,我们还应该控制发包的速率,所以pacing_rate成为主要控制因素。

另外,这篇论文的出现也印证了我们的一个思路是可行的:丢包恢复和窗口管理解耦。如果我们发现有丢包,重传就好了嘛,至于发送速率如何调整,全部交给拥塞控制算法就好了。

相关文章

  • TCP 拥塞控制原理及改进

    TCP 的拥塞控制主要是这几个关键字: 慢启动和拥塞避免(拥塞窗口从 1开始指数增加,达到阈值后线性增加) 快速重...

  • TCP拥塞控制算法之NewReno和SACK

    一、TCP Reno拥塞控制算法回顾 二、基于TCP Reno拥塞控制算法的改进 改进原因分析TCP Reno 提...

  • 网络复习-笔记07-传输层(3)

    拥塞控制原理 在学习TCP拥塞控制之前,首先看看拥塞控制的基本原理拥塞控制非正式定义:“太多发送主机发送了太多数据...

  • 2018-07-11

    tcp的运输控制分为tcp流量控制和tcp拥塞控制,这里先讲tcp的拥塞控制。 为了讲清楚tcp的拥塞控制,还是利...

  • 百度SRE实习生二面 TCP慢启动

    TCP拥塞控制-慢启动、拥塞避免、快重传、快启动 一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机...

  • TCP拥塞控制原理

    一、拥塞控制的一般原理 1、产生拥塞的原因:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网...

  • 拥塞控制和流量控制

    滑动窗口的解释: 拥塞控制窗口+慢启动+拥塞控制算法=拥塞控制 TCP特性使得每个TCP连接可以得到均等的带宽。在...

  • TCP拥塞控制及BBR原理分析

    导语:TCP拥塞控制不仅仅是网络层的概念,可以将其归属于控制论的范畴。在TCP的演进过程中,出现了很多优秀的思想和...

  • TCP Tahoe协议

    TCP Tahoe协议是TCP最早的TCP拥塞控制版本,主要包括三个机制用于控制拥塞窗口:慢启动、拥塞避免和快速重...

  • 细说TCP的可靠传输、流量控制、拥塞控制

    目录 TCP如何实现可靠传输? TCP如何实现流量控制?(滑动窗口) TCP如何实现拥塞控制?(慢开始、拥塞避免、...

网友评论

      本文标题:TCP 拥塞控制原理及改进

      本文链接:https://www.haomeiwen.com/subject/mzjiuxtx.html