拥塞控制就是防止过多的数据注入到网络中,这样就可以使网络中的链路不致过载。这往往是全局性的,设计到所有的主机和路由器。
而流量控制则是针对点对点通信的控制,意在抑制发送端发送数据的速率以便接收端来得及接收。
有几种拥塞控制的方法:
慢开始和拥塞避免
发送方维持一个拥塞窗口,其大小取决于网络的拥塞程度,并且动态变化。
发送方控制拥塞窗口的原则是:
- 只要网络没有出现拥塞,拥塞窗口就增大一些,以便把更多的分组发送出去。
- 只要网络出现拥塞,拥塞窗口就减小一些,以减小注入到网络中的分组数。
慢开始算法的思路:
一开始设置为1,收到确认后增大到2。发送方每收到一个对新报文段的确认就将拥塞窗口加一,因此每经过一个传输轮次,拥塞窗口大小就加倍。
当拥塞窗口大小达到慢开始门限后,改用拥塞控制算法。
拥塞避免算法的思路:
让拥塞窗口缓慢地增大,即每一个传输轮次只增加1,而不是加倍。
这样拥塞窗口大小是线性增长的。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方没有按时收到确认就判断网络出现拥塞,此时就把慢开始门限设置为出现拥塞时发送方窗口的一半。然后把拥塞窗口大小重新设置为1,执行慢开始算法。
快重传和快恢复
快重传表示:接收方接收到一个失序的报文段后就立即发出重复确认。
当发送方一连接收到三个重复确认后就立即重传。而不是等到重传计时器到期。
与快重传对应的是快恢复算法:
- 当发送发连续收到三个重复确认时,就把慢开始门限减半
- 此时不执行慢开始算法,而是把拥塞窗口大小设置为慢开始门限减半后的数值,然后执行拥塞避免算法(线性增加)。