Skip to content

流量控制-滑动窗口

在TCP中,滑动窗口用来流量控制。确保发送方不会过快的发送数据导致接收方无法处理数据。

TCP拥塞控制是为了解决发送方以过高的速率发送导致网络中出现阻塞,其核心思想就是发生重传时控制发送方滑动窗口(通过控制拥塞窗口cwnd)的大小,从而控制其发送速率

滑动窗口

TCP窗口包括发送窗口和接收窗口,用来限制不同端所能容纳数据的上限,达到控制发送数据的速率。

image.png

TCP报文里面的窗口大小,作用是告诉对方本端的接受缓冲区还能容纳多少字节的数据

image.png

在通信过程中,接收方每次收到数据包,在发送确认报文的时候,还需要告诉发送方自己的缓冲区剩余大小缓冲区剩余大小,我们称之为接受窗口大小。也就是WIN。

发送端的滑动窗口

  • 已发送且已收到 ACK 确认
  • 已发送但未收到 ACK 确认
  • 未发送但可以发送
  • 未发送也不可以发送

image.png

接收端的滑动窗口

  • 已成功接收并确认
  • 未收到数据但可以接收
  • 未收到数据并不可以接收的数据

image.png

image.png