美文网首页
tcp的拥塞控制

tcp的拥塞控制

作者: 小豆soybean | 来源:发表于2018-09-20 18:43 被阅读0次

原文连接:https://www.cnblogs.com/lca1826/p/6640179.html

引言

计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。
  拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。

TCP拥塞控制算法

该算法包括三个主要部分:(1)加性增、乘性减 (2)慢启动 (3)对超时事件做出反应

1.加性增、乘性减****

加性增: 如没有检测到丢包事件,每个RTT时间拥塞窗口值增加一个MSS (最大报文段长度)。
乘性减: 丢包事件后,拥塞窗口值减半。

CongWin值重复地经历一种升降循环,即重复的线性增长,然后又突然降至当前值懂得一半(当丢包事件发生时),这种循环,使得长寿命TCP连接的CongWin变化呈锯齿形状,如下图所示:

image

2.慢启动

在连接开始时, 拥塞窗口值 = 1 MSS(例如: MSS= 500 bytes & RTT = 200 msec,则初始化速率 = 20 kbps)。但可获得带宽可能 >> MSS/RTT,为了尽快达到期待的速率,我们可以在连接开始的时候,以指数级的速率增加,直到第一个丢失事件发生。

image

上图所示,当连接开始的时候,速率呈指数式上升,直到第1次报文丢失事件发生为止:(1)****每经过一个RTT,倍增拥塞窗口值;(2)****每收到ACK,增加拥塞窗口。
  总结: 初始速率很低,但以指数级的速率增加

3.对超时事件作出反应

在上述对拥塞窗口的描述中,我们只是说在连接开始的时候,以指数级的速率增加,直到第一个丢失事件发生。但实际中TCP对因超时而检测到的丢包事件作出的反应与对因收到3个冗余ACK而检测到的丢包事件做出的反应是不同的。

  ·收到3个冗余ACK后:CongWin减半、窗口再线性增加。
  ·检测超时事件后:CongWin值设置为1MSS、窗口再指数增长、到达一个阈值(Threshold,初始化时被设置为一个很大的值,以使它没有初始效应。每发生一个丢包事件,Threshold就会被设置为当前CongWin值的一半)后,再线性增长。

原因:3个冗余ACK指示网络还具有某些传送报文段的能力;3个冗余ACK以前的超时,则更为 “严重”。

小结:

·当CongWin < Threshold时,发送者处于慢启动阶段, CongWin指数增长。

·当CongWin > Threshold时,发送者处于拥塞避免阶段, CongWin线性增长。

·当出现3个冗余确认时, 阈值Threshold设置为CongWin/2,且CongWin设置为Threshold。

·当超时发生时,阈值Threshold设置为CongWin/2,并且CongWin设置为1 MSS.

相关文章

  • 2018-07-11

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

  • 拥塞控制和流量控制

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

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

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

  • TCP Tahoe协议

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

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

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

  • 拥塞控制算法对比

    RENO(经典的tcp拥塞控制): 基于丢包的拥塞控制. 分为 慢启动, 拥塞避免, 快速恢复, 快速重传...

  • 【转载】Google BBR是什么?以及在 CentOS 7 上

    TCP 拥塞控制算法 传统 TCP 拥塞控制算法,基于丢包反馈的协议。 基于「丢包反馈」的协议是一种被动式的拥塞控...

  • TCP拥塞控制

    本文主要说明TCP拥塞控制的四种主要算法。 组成TCP拥塞控制的四种算法包括:慢开始,拥塞避免,快重传,快恢复, ...

  • 实时通讯中拥塞控制算法

    拥塞控制算法分类 基于丢包(loss rate)的拥塞控制算法例如TCP中早期的拥塞控制算法Reno, 会带来较高...

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

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

网友评论

      本文标题:tcp的拥塞控制

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