为什么要进行拥塞控制?
在一次数据发送过程中,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这就叫拥塞。
拥塞控制就是为了防止过多的数据进入网络中,这样网络会减少过载几率。
拥塞控制的四个算法
慢开始
慢开始算法是当主机开始发送数据时,如果立即把大量数据字节注入到网络,那么可能会引起网络阻塞,因为现在还不知道网络的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。
拥塞避免
慢开始每次都会将窗口加倍,这样增长速度会特别快,增长速度特别快网络拥塞的可能性也就越高。
所以设置一个门限值,当窗口大小超过门限值时,进入拥塞避免。
每次将CWDN加一,降低拥塞窗口的增长速度
如果出现超时,则将门限值减半,然后执行快恢复
快重传
接收方每次接收到报文段,都应该当前收到的报文段进行确认,只要发送方连续收到三个重复确认,就应当立即重传接收方未收到的报文段
快恢复
当发送端连续收到三个重复的确认时,就执行“乘法减小”算法,将当前拥塞窗口减半,执行加法增大,若再次达到门限值,执行快重传
快恢复是和快重传一起使用的,他的快,是相对于慢开始而言的,使用快恢复时,从窗口较大时开始,通过拥塞避免算法逐渐线性增大,经过较短时间便能恢复比较快的传输速度;使用慢开始算法时,cwnd从1开始,需要较常时间才能达到较快的速度。