一文读懂拥塞控制
(一)预备知识
1.什么叫ACK
ACK的全称为Acknowledge character,即确认字符,表示接收到的字符无错误。
2.什么叫拥塞
网络的资源包括交换结点的缓存和处理机等,带宽。若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫拥塞。
3.为什么要进行拥塞控制
假设两台主机A与主机B,假设A发送数据给B,如果迟迟没有收到B主机的ACK,那么,A主机就会认为丢包,会选择重传数据包,反而更加使得网络发生拥塞现象。
(二)拥塞控制方法
1.慢开始和拥塞避免
A与B建立连接之后,就可以向B发送数据了,然而这个时候A并不知道此时的网络拥塞情况如何,也就是说,A不知道一次性连续发送多少个数据包好,我们也把A一次性连续发送多少个数据包称之为拥塞窗口,用N代表此时拥塞窗口的大小吧。设置慢开始门限(ssthresh)
图中ssthresh为8,初始时拥塞窗口翻倍,达到门限后线性增长。达到最大值MAX后重设门槛值为一半。拥塞窗口重设为1,从头开始。
2.快速重传
当收到连续三个M2的重复确认帧的时候,判断此时只是丢时,此时不必让拥塞窗口从头开始,而是设置阈值为MAX/2,拥塞窗口从阈值开始,选择重传,这就是出快速重传