赞
踩
搞懂四个算法就行:
慢开始算法:它的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。 发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,当窗口值等于16(**慢开始门限ssthresh**初始值),然后我们开始采用“加法增大”的策略,即不在以2倍的方式增加,而是转变为每次加1的方式.直到网络拥塞。 当cwnd<ssthresh时,使用慢开始算法。 当cwnd>ssthresh时,改用拥塞避免算法。 当接收方cwnd=ssthresh时,慢开始与拥塞避免算法任意。(既可使用慢开始算法,也可使用拥塞避免算法) 拥塞避免算法: 我们开始采用“拥塞避免”算法:就是线性增长,等收到确认包后再继续增长。一旦发送的包收不到确认后,发送发就会启动快重传算法。 快重传算法: 如果发送方发的包,接收方没有接到,那么就会启动超时计时器,但是这会很影响效率,快重传就是发送上一个包的确认包。 假设发送方发送了M1–M4四个分组,接收方收到了M1和M2,以及M4,这些分组. 接收方不能确认M4,因为M3没有收到,此时接收方可以什么都不干,也可以发送对M2的确认,但是快重传算法要求这样做: 接收方应该及时发送对M2的重复确认,这样可以让发送方知道M3并没有被传过来,发送方还会试着发送M5,M6,接收方收到之后,我们会继续发送对M2的确认,这样一共发了好几个对M2的确认,按照规定,只要发送方收到三个重复确认,就立即重传对方未收到的报文段M3.这样可以避免阻塞,并且提高我们网络的吞吐量. **快恢复算法:** 就是当发送方接受到三个重复确认后,将慢启动阀值减到一半,然后重新开始线性增长。 快重传配合使用的还有快恢复算法,有以下两个要点: ①当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。
仅供我当做笔记记录,有点乱。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。