TCP拥塞控制
来源:互联网 发布:超大直径美瞳淘宝有吗 编辑:程序博客网 时间:2024/05/03 21:12
TCP拥塞控制是让每个发送方通过感知的网络拥塞程度来控制发送速率来解决拥塞。
在TCP连接的每一端都有一个一个接收缓存、一个发送缓存、还有几个变量LastByteRead、RcvWin、CongWin等
要求 LastByteSent-LastByteAck <= min(RcvWin,CongWin)
TCP拥塞控制算法主要包括1、加性增、乘性减AIMD 2、慢启动slow start 3、对超时事件做出反应
1、加性增、乘性减AIMD
当网络出现拥塞时,发送方要降低其发送速率(通过减小CongWin),TCP采用的是乘性减,即在发生拥塞时将CongWin减小为当前值的一半。
如果当前CongWin值是20kb,当检测到丢包是减为10kb,但是不能降低到小于MSS
当网络无拥塞时,发送方要增大其CongWin,目标是在每个往返延迟中增加一个MSS,一种通用的方法是每到达一个新的确认,就将CongWin增加一个MSS(MSS/CongWin)字节,例如,MSS为1460字节,CongWin为14600字节,在一个RTT中发生10个报文段,每到达一个ACK,CongWin就增加1/10MSS,当10个ACK都到达后CongWin就增加了一个MSS。这个阶段称为拥塞避免。
一个TCP连接的CongWin变化通常呈锯齿状。
2、慢启动slow start
当一个TCP连接开始时,CongWin的值为一个MSS,初始发送速率约为MSS/RTT。如果采用线性增加,那么发送速率增大到一个可观的值可能需要很长时间,所有TCP采用指数增长的方式,每过一个RTT将CongWin增大一倍,直到发生丢包CongWin减半,然后开始线性增长。
3、对超时事件反应
TCP发送端通过超时事件或收到同一个ACK三次等来判断拥塞。但是对两种情况的处理却不同。当收到3个冗余ACK,TCP向AIMD一样将CongWin减半然后线性增加。当发生超时事件时,TCP进入慢启动阶段,将CongWin设为一个MSS。
- TCP拥塞控制方案
- TCP的拥塞控制
- TCP 网络拥塞控制
- TCP网络拥塞控制
- TCP拥塞控制机制
- Inside TCP: 拥塞控制
- tcp拥塞控制
- TCP拥塞控制
- TCP的拥塞控制
- RFC2581 TCP拥塞控制
- TCP 网络拥塞控制
- TCP拥塞控制机制
- TCP的拥塞控制
- TCP的拥塞控制
- TCP拥塞控制
- TCP拥塞控制算法
- TCP的拥塞控制
- TCP拥塞控制 2
- S2 优化数据库 第三章
- 4.非关系型数据库(Nosql)之mongodb:普通索引,唯一索引
- Linux内核驱动模块编写概览-ioctl,class_create,device_create
- 微信分享的图片
- 关于机器学习中的梯度下降
- TCP拥塞控制
- 字节对齐
- perf
- 【linux】【最大文件打开数】【react native】
- 中文版来了!新版MATERIAL DESIGN 官方动效指南
- GitHack:一个git泄露利用脚本
- 虚拟机centos系统由于更换网络导致"Network is unreachable"
- ucosii移植_1
- 必不可少需要掌握的嵌入式知识(1) -- 网络编程