TCP拥塞控制概念性总结
来源:互联网 发布:淘宝如何删除好评 编辑:程序博客网 时间:2024/06/07 07:51
以下是我个人的一些理解,来做个参考吧。
术语表
TCP send buffer, TCP发送方的缓冲区
TCP receive buffer, TCP接收方的缓冲区
Slide Window, 滑动窗口,分为cwnd和rwnd两种
cwnd, congestion window, 这个专门指的是发送方的滑动窗口
rwnd, receiver advertised window, 这个专门指的是接收方的滑动窗口
AIMD, additive increase/multiplicative decrease,说直白点,就是慢慢增加,快速减少.(加法增加的慢,乘法减少的快嘛)
MTU, maximum transmission unit,指的是ip网络层的单次最大传输单元
MSS, maximum segment size, 指的是TCP传输层的最大传输单元
RTT, round-trip time, 指的是从发送到接收这一个来回的行程所用的总体时间
为什么要有TCP拥塞控制算法。
我们知道,cwnd和rwnd只是代表发送方和接收方能一次接收的最大数据量,只靠这俩个值是无法保证网络带宽能达到最大的利用率。
关键原因在于,发送方和接收方之间的网络带宽和性能是未知的,即使双方的发送和接收能力相当强,但网络状况不良的话,有可能连一个字节都难以发送。
而TCP拥塞控制算法就是用来平衡windowsize和networkstate的,从而能使得那个环境巨复杂的网络能达到最大的最好的利用率。
TCP拥塞控制,我们这里只讨论最经典的TCP拥塞控制算法
这个一个比较宽泛的概念,从字面意思来理解,既然是控制,就是在控制所有,包括了流量发送从小到大,再从大到小,最后达到一个稳定的高效的网络利用率的过程。
大cwnd增加时,有一个门限值,ssthresh。
TCP拥塞控制---慢启动
当窗口大小小于这个值时,窗口大小是以指数级(cwdn*2)增涨的,目的是,让窗口大小尽可能快的达到网络的最大传输率,这个过程我们称为慢启动。
TCP拥塞控制---拥塞避免
当窗口大小大于这个值时,窗口大小是以线性(cwnd+n)增涨的,目的是,避免cwnd增涨过快,而导致拥塞。
TCP拥塞控制---快速恢复
一但TCP意识到网络发生了拥塞,TCP会立即将cwnd大小减半,再开启慢启动过程。
TCP拥塞控制---快速重传
一般情况下,如果在一个超时时钟周期内没有收到ack,发送方就会重传数据,这个过程的弊端就是,一定要等到超时时间结束。
而快速重传机制,是这样的,及时还没有到超时时间结束,如果连续收到3个相同的ack,发送方便立即进入重传状态。
其它TCP拥塞算法
HSTCP
BIC
CUBIC
XCP
VCP
等等...
- TCP拥塞控制概念性总结
- TCP拥塞控制方案
- TCP的拥塞控制
- TCP 网络拥塞控制
- TCP网络拥塞控制
- TCP拥塞控制机制
- Inside TCP: 拥塞控制
- tcp拥塞控制
- TCP拥塞控制
- TCP的拥塞控制
- RFC2581 TCP拥塞控制
- TCP 网络拥塞控制
- TCP拥塞控制机制
- TCP的拥塞控制
- TCP的拥塞控制
- TCP拥塞控制
- TCP拥塞控制算法
- TCP的拥塞控制
- AspectJ 开发
- 上传漏洞小结
- 关于java Calendar的一些问题
- 解决POI3.10 添加图片不成功的问题
- PHPexcel导出数据(THINKPHP)
- TCP拥塞控制概念性总结
- ios
- 使用boost线程池(多线程使用opencv处理图片)
- 把自己制作的Python open package发布到PyPI
- HTML 子div在父div中居中显示
- 一个困扰已久的UIScrollView问题
- [SHOI2007]BZOJ1934 Vote善意的投票-最小割
- 1063
- ubuntu 16.04安装ROS环境