TCP滑动窗口协议
通过这张图基本上能看得差不多了。

下面还有另一种图以及解释,但是我不太明白为何3次握手那块B发送确认报文ack的同时也发送了一个seq=200的报文,这个200是咋来的:

TCP滑动窗口协议

  1. 首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。
  2. A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。
  3. A发送过来的数据逐渐将缓冲区填满。
  4. 这时候缓冲区中的一个报文被进程读取,缓冲区有了一个空位,于是B向A发送一个ACK,这个报文中指示窗口大小为1。
    A收到B发过来的ACK消息,并且知道B将窗口大小调整为1,因此他只发送了一个单位的数据并且等待B的下一个确认报文。
  5. 如此反复。





相关文章:

  • 2021-12-20
  • 2021-11-22
  • 2022-01-29
  • 2021-10-14
猜你喜欢
  • 2021-10-17
  • 2022-03-08
  • 2021-05-18
  • 2021-04-08
  • 2021-08-18
相关资源
相似解决方案