TCP拥塞控制
TCP拥塞控制的介绍
什么是拥塞现象?
拥塞现象是指注入到网络中的数据量过多,使得网络来不及处理,以至于引起部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿。
流量控制和拥塞控制的区别是什么?
- 流量控制:局部性
- 拥塞控制:全局性
拥塞现象产生的原因是什么?
- 存储空间不足
- 带宽容量不足
- 处理器处理能力弱,速度慢
图解拥塞控制算法设计:
TCP拥塞控制算法
- 由于需要考虑拥塞控制和流量控制,因此TCP真正的发送窗口应该相当于
min (rwnd, cwnd)- 有时认为cwnd(发送窗口大小)增加1也就是相当于字节数增加一个MSS大小
1.慢启动
- 在刚建立的TCP连接上,或在超时后重新启动数据传输后,将一个MSS置为拥塞窗口大小,以后每次收到一个确认后,递增一个MSS大小,直到发生超时
- 可以进行计算,刚开始时,cwnd = 1(MSS),经过一个RTT (往返时延) 后,cwnd = 1x2 = 2, 经过两个RTT后,cwnd = 2 x 2 = 4 ……
2.拥塞避免
- TCP引入慢启动阙值概念,当cwnd超过这个值后,慢启动过程结束,进入拥塞避免阶段
- 此后拥塞窗口的大小按照线性增长,即每次经过一个RTT,窗口大小增加 1MSS
3.发生超时后
- 把阙值降为当前拥塞窗口大小的一半
- 将拥塞窗口大小重新置为1MSS
- 重新进入慢启动阶段
通过下面这个例题也许能更容易理解TCP的拥塞控制算法:
主机甲和主机乙已建立了TCP连接,甲始终以MSS=1 KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10 KB的确认段。若甲在t时刻发生超时时拥塞窗口为8 KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是( A )。
A.10 KB
B.12 KB
C.14 KB
D.15 KB
解析:
t 时刻拥塞窗口为8,则t+1时刻后阈值为4,拥塞窗口置为1,后续按2的指数增长,到达阈值时,开始每次+1,即后续10次的拥塞窗口为1,2,4,5,6,7,8,9,10,11发送窗口等于拥塞窗口与接收窗口中小的。故为10KB