1.什么是拥塞
如果发送方发送的数据接收方没有收到,那么可以判断在网络上出现了拥塞(前提是接受方对数据来者不拒)
那什么情况下会向出现网络拥塞呢?
-
发送方发送太快,交换机或路由器目前还没有能力处理(转发数据都是按照“存储+转发”的方式进行的——即接收到数据后先保存到自己的缓存,然后再挨个处理,发送到对应的接口),也就是接收缓冲区满了,导致发送方接收不到ack确认
-
发送连续收到重复的 ack
2.什么是拥塞控制
尝试各种不同的发送速度。比如一开始以 100kb/s 的速率发送数据,如果没问题,再将速率提高到 200kb/s,再没问题继续提升发送速率。一旦达到某个上限后,便开始出现丢包现象,发送方就可以认为,网络已经拥塞了,于是降低发送速率,减轻网络负担。
3.拥塞控制算法
- 慢启动(slow-start)
- 拥塞避免(congestiono avoidance)
- 快重传(fast retransmit)
- 快恢复(fast recovery)