引言

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

TCP拥塞控制算法

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

1.加性增、乘性减

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

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

2.慢启动

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

  上图所示,当连接开始的时候,速率呈指数式上升,直到第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.

[计算机网络] TCP的拥塞控制的更多相关文章

  1. 计算机网络(10)-----TCP的拥塞控制

    TCP的拥塞控制 拥塞(congestion) 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏. 拥塞控制 拥塞控制就是防止过多的数据注入到网络中,这样可以使网 ...

  2. TCP网络拥塞控制

    拥塞控制过程 数据吞吐量 TCP窗口大小,窗口流量控制,慢启动对TCP的成块数据传输综合作用,可能对TCP的数据传输有意想不到的影响. RTT(Round-Trip Time) :往返时间.是指一个报 ...

  3. TCP/IP拥塞控制

    TCP/IP拥塞控制包括:慢启动和拥塞避免.其操作流程如下所述: 初始化.拥塞窗口cwnd = 1,慢启动门限ssthresh = 65535 如果没有发生拥塞 若 cwnd < ssthres ...

  4. [计算机网络]TCP/IP协议-运输层

    TCP/IP体系结构 TCP/IP四层协议 五层协议 协议 作用 应用层 应用层 HTTP超文本传输协议.FTP文件传输协议 - 运输层 运输层 TCP(面向连接的,可靠的).UDP(无连接的,不保证 ...

  5. 计算机网络-TCP篇

    TCP篇 之前的总结文章:TCP简单版本介绍-三次握手等 基本认识 TCP 是⾯向连接的(⼀定是「⼀对⼀」才能连接).可靠的.基于字节流的传输层通信协议. RFC 793 是如何定义「连接」的:⽤于保 ...

  6. TCP的拥塞控制

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

  7. TCP的拥塞控制(转载)

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

  8. [转]TCP的拥塞控制

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

  9. 计算机网络——TCP与UDP协议详解

    根据应用程序的不同需求,运输层需要两种不同的运输协议,即面向连接的TCP和无连接的UDP. TCP:传输控制协议 TCP特点: 1)TCP是面向连接的运输层协议.所以,应用程序在使用TCP协议之前,必 ...

随机推荐

  1. python Tkinter 的 Text 保持焦点在行尾

    https://bbs.csdn.net/topics/390712532 text.see(END)

  2. inner join(inner可省) 与 left join 之间的区别

    关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在前端以 ...

  3. springboot整合kafka应用

    1.kafka在消息传递的使用非常普遍,相对于activemq来说kafka的分布式管理和使用更加灵活. 2.activemq的搭建和使用可以参考: activemq搭建和springmvc的整合:h ...

  4. Ruby & Rails学习资料

    ------------------教程------------- Ruby风格指南(代码规范) https://github.com/bbatsov/ruby-style-guide 笨方法學 Ru ...

  5. sphinx生成cakephp文档

    cakephp的文档是用一个叫sphinx程序生成的 这个程序是python写的,所以我们要用sphinx本机必须先装python. 编译过程在Ubuntu下进行,默认Ubuntu已经安装了pytho ...

  6. 回写盘写速度被限速为10M左右

    问题现像如下图所示: 用hd-speed等测试虚拟盘速度都能达到90M/s左右,但复制文件到虚拟盘速度最高只有10M/s 原因:由于客户机开机加载这个随机驱动和随机进程后,会对磁盘启动进程等有扫描检查 ...

  7. SpringBoot学习:添加JSP支持

    项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 (一)pom中添加依赖: <!-- https://mvnrepository.c ...

  8. 「日常训练」Watering Flowers(Codeforces Round #340 Div.2 C)

    题意与分析 (CodeForces 617C) 题意是这样的:一个花圃中有若干花和两个喷泉,你可以调节水的压力使得两个喷泉各自分别以\(r_1\)和\(r_2\)为最远距离向外喷水.你需要调整\(r_ ...

  9. Linux命令应用大词典-第26章 模块和内核管理

    26.1 lsmod:显示内核中模块的状态 26.2 get_module:查看内核模块详细信息 26.3 modinfo:显示内核模块信息

  10. Python字符串操作大全(非常全!!!)

    1. python编程里字符串的内置方法(非常全) capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居 ...