TCP拥塞控制(慢开始与拥塞避免、快重传和快恢复)
1.什么是拥塞控制?
- 所谓
拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载
。出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果
2.拥塞控制与流量控制的区别
拥塞控制
是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素流量控制
往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收
例如:
- 某个链路的传输速率为10Gb/s,某巨型机向一台PC以1Gb/s的速率传送文件,显然网络的带宽是足够大的,不存在拥塞问题,但如此高的发送速率将导致PC可能来不及接收,因此必须进行流量控制
- 但若有100万台PC在此链路上以1Mb/s的速率传送文件,则现在的问题就变为网络的负载是否超过了现有网络所能承受的范围。就像我们上网一样,有时候加载会很慢,提示访问请求过多,请稍后再试,就是网络产生了拥塞,带宽小,一下不能支持给多个请求终端发送数据
为了更好地对传输层进行拥塞控制,因特网建议标准定义了以下4种算法:慢开始、拥塞避免、快重传、快恢复
3.拥塞控制的四种算法
3.1 慢开始与拥塞避免
3.2 快重传和快恢复
快重传和快恢复算法是对慢开始和拥塞避免算法的改进