滑动窗口与流量控制机制、拥塞控制

目录

      • 1、利用`滑动窗口`实现`流量控制`
      • 2、`拥塞控制`
      • 3、四个`拥塞控制算法`详解


1、利用滑动窗口实现流量控制

滑动窗口与流量控制机制、拥塞控制_第1张图片
如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 ⇒ 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。

流量控制:指点对点通信量的控制,是端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

2、拥塞控制

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

拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。

3、四个拥塞控制算法详解

注解:通过“发送方的拥塞窗口cwnd”、“慢开始门限值ssthresh”实现拥塞控制

慢开始 — cwnd从1开始,按照2的指数倍增大

拥塞避免 — 网络拥塞时:将门限值减半,cwnd设为1,再执行慢开始算法

快重传
1.如果包M丢失:接收方重复发送前一个包(M-1)的ACK;
2.发送方收到3个重复的ACK后(说明包丢失),无需等待超时定时器到时就直接重发丢失的包

详细过程:接收方收到了M1和M2后,都分别发出了确认。现在假定接收方没有收到M3但接着收到了M4。显然,接收方不能确认M4,因为M4是收到的失序报文段。根据可靠传输原理,接收方可以什么都不做,也可以在适当时机发送一次对M2的确认。但按照快重传算法的规定,接收方应及时发送对M2的重复确认,这样做可以让发送方尽早知道报文段M3没有到达接收方。发送方接着发送了M5和M6。接收方收到这两个报文后,也还要再次发出对M2的重复确认。这样,发送方共收到了接收方的四个对M2的确认,其中后三个都是重复确认。快重传算法还规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段M3,而不必继续等待M3设置的重传计时器到期。⇒ ⇒ ⇒ 由于发送方尽早重传未被确认的报文段,因此采用快重传后可以使整个网络吞吐量提高约20%。

快恢复
与快重传配合使用的还有快恢复算法,其过程有以下两个要点:
<1>. 当发送方连续收到三个重复确认,就执行“乘法减小”算法,先把慢开始门限ssthresh减半
<2>. 再把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口cwnd缓慢地线性增大。

你可能感兴趣的:(TCP/IP详解)