拥塞控制原理
拥塞: 在某段时间,若对网络中资源(带宽、交换节点缓存,处理机)的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种现象就称为拥塞。
拥塞的危害:
若网络中的许多资源同时产生拥塞,网络的性能就明显会变坏,整个网络的吞吐量将下降的严重。
出现拥塞的原因:对资源的需求和 大于 可用资源
增加资源能解决拥塞吗?
不能。网络拥塞是一个非常复杂的问题,很多情况下,不能解决网络拥塞问题。
网络拥塞往往是由许多因素引起的,例如:
- 增大缓存,但是却未提高输出链路的容量和处理机的速度,排队等待的时间将会大大的增加,引起大量超时重传,解决不了网络拥塞。
- 提高处理机处理的速率,会将瓶颈转移到其他地方,解决不了网络拥塞
- 若一个路由器没有足够的缓存空间,则就会丢弃一些新的分组,但是分组被丢弃之后,发送分组的发送端会继续重传该分组,可能重传多次。这样会引起更多的分组流入网络被网络中的路由器丢弃。可见,拥塞引起的重传反而会加剧网络拥塞。
TCP拥塞控制的方法
TCP采用基于窗口的方法进行拥塞控制。TCP发送维持一个拥塞窗口CWND
- 拥塞窗口大大小取决于网络拥塞程度,并且动态的变化
- 发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量
- 所以,发送窗口的大小不仅仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况,所以真正的发送窗口的窗口值为:
真正的发送窗口值 = min(公告窗口值,拥塞窗口值)
拥塞窗口的原则:
- 只要网络没有出现拥塞,拥塞窗口就可以再大一些,以便把更多分组发送出去,这样可以提高网络的利用率
- 但是只要网络罗出现拥塞,就必须把拥塞窗口减小一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞 </