TCP滑动窗口

本文详细介绍了TCP滑动窗口的工作原理及其流量控制机制。通过解释RTT与RTO的概念,阐述了TCP如何根据网络状况调整数据发送速率。此外,还讨论了发送窗口与接收窗口的不同状态,帮助读者理解数据在网络中的传输过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP滑动窗口

RTT:发送一个数据包,到收到对应的ACK所花费的时间
RTO:TCP发送数据包后会启动重传定时器,RTO就是重传时间

RTO不是一个固定的时间配置,是根据RTT计算出来的
计算过程参考 https://blog.csdn.net/wdscq1234/article/details/52505191

在这里插入图片描述

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

窗口:通知接收方,发送方还有多少缓冲区可以接受数据
流量控制:发送方根据接收方的处理能力来发送数据,不会导致接收方处理不过来

在这里插入图片描述

AdvertisedWindow = MaxRcvBuffer - (LastByteRcvd - LastByteRead)

AdvertisedWindow接受端告知发送端可以发送的数据大小
MaxRcvBuffer接收方可接受的最大数据量
LastByteRcvd - LastByteRead已接受的数据或还未接受到的预定的数据留出的空间

要求已发送与待确认的数据量小于接收方的window大小

EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)

EffectiveWindow窗口内剩余可发送数据大小
AdvertisedWindow接受端告知发送端可以发送的数据大小
LastByteSent - LastByteAcked已发送的待确认的数据
对于TCP的发送方

在这里插入图片描述

滑动窗口类型
1已经发送,已经得到回应
2已经发送,未得到回应
3未发送,对方可以接受的
4未发送,因达到window的大小,对方不可以接受的

2、3组成发送窗口

对于TCP的接收方

在这里插入图片描述

滑动窗口类型
1+2已经接收,已经发送ACK回应
3未接收,可以接受的
4未接收,因达到window的大小,不能接受的

3为接收窗口

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值