TCP 滑动窗口原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP 滑动窗口原理相关的知识,希望对你有一定的参考价值。

参考技术A TCP 使用滑动窗口做流量控制与乱序重排

左右为发送方接收方缓冲区

接收方还能够接收的数据量 AdvertisedWindow = MaxRcvBuffer – (LastByteRcvd - LastByteRead),接收方把 AdvertisedWindow 告知发送方,发送方 LastByteSent - LastByteAcked 不能大于 AdvertisedWindow 接收方还能接收的量。
发送方窗口内剩余可发送的大小 EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked) 保证接收方可以处理数据

TCP 最基本的传输可靠性来源于确认重传机制,TCP 的滑动窗口机制也是建立在确认重传基础上的。
发送窗口收到接收端对于本段窗口内字节的 ACK 确认才会移动发送窗口的左边界。
接收窗口只有在前面所有的段都确认的情况下才会移动左边界,当前面还有字节未接收但收到后面字节的情况下(乱序)窗口是不会移动的,并不对后续字节确认, 确保这段数据重传。
可以根据滑动窗口的调整进行流量控制。

计算机网络,TCP的滑动窗口

目录

1.RTT和RTO

2.TCP使用滑动窗口做流量控制与乱序重排

3.滑动窗口的基本原理

八、TCP的滑动窗口

  TCP头部中的窗口字段:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制

1.RTTRTO

1RTT:发送一个数据包到收到对应的ACK,所花费的时间

2RTO:重传时间间隔

2.TCP使用滑动窗口做流量控制与乱序重排

(1)保证TCP的可靠性

(2)保证TCP的流控特性

3.滑动窗口的基本原理

1TCP会话的发送方

 技术图片

可分为四类数据

  • 已发送,并且收到ACK确认的
  • 已发送,未收到ACK确认
  • 未发送,但可以发送
  • 未发送,且不能发送

 技术图片

(2)TCP会话的接收方

 技术图片

三类数据

  • 已接收,已确认
  • 未接收,但可以接收
  • 未接收,不可以接收

TCP会话的可靠性建立在确认重传机制之上

 

以上是关于TCP 滑动窗口原理的主要内容,如果未能解决你的问题,请参考以下文章

TCP滑动窗口控制流量的原理

直观明了的总结TCP滑动窗口机制原理及作用

计算机网络,TCP的滑动窗口

TCP滑动窗口(Sliding Window)原理

滑动窗口2:滑动窗口算法基本原理

滑动窗口协议