计算机网络--流量控制和拥塞控制

拥塞控制和流量控制

流量控制:如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。

TCP的流量控制是利用滑动窗口机制实现的,接收方在返回的数据中会包含自己的接收窗口的大小,以控制发送方的数据发送。

拥塞控制:拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。

两者的区别:流量控制是为了预防拥塞。如:在马路上行车,交警跟红绿灯是流量控制,当发生拥塞时,如何进行疏散,是拥塞控制。流量控制指点对点通信量的控制。而拥塞控制是全局性的,涉及到所有的主机和降低网络性能的因素。

拥塞解决的两种方法:

发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数。

慢开始+拥塞避免

一开始的慢开始算法的指数增长是很恐怖的,所以为了防止拥塞窗口增长过快需要设置一个门限ssthresh

无论在慢开始阶段还是在拥塞避免阶段,只要发送方没有收到确认,就认为这时候拥塞了。

1.就要把慢开始门限设置为此时窗口值的一半

2.然后把拥塞窗口重新设置为1,执行慢开始算法。

快重传+快恢复

快重传要求接收方在收到一个失序的报文段后就立即发出重复确认

如果没有快速重传和快速恢复,TCP将会使用定时器来要求传输暂停。在暂停这段时间内,没有新的数据包被发送。所以快速重传和快速恢复旨在快速恢复丢失的数据包

快重传的机制还是比较好理解的,如图所示,接收方发现M3丢失,则立即发送对M2的重复确认。一旦发送方一连收到三个M2的重复确认就应当立即重传M3,也就是发送方收到第四个对M2的确认时。

与快重传配合使用的还有快恢复算法,结合上图的实例来分析,其过程有以下两个要点。

1.当发送方连续收到三个重复确认时,就把门限减半。

2.考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将拥塞窗口设置为门限的大小,然后执行拥塞避免算法(加法)。

参考文献:https://blog.csdn.net/seu_calvin/article/details/53198282

猜你喜欢

转载自blog.csdn.net/weixin_39003229/article/details/81842940