【大厂面试必备系列】滑动窗口协议

本文介绍了TCP的滑动窗口协议在流量控制中的作用,详细阐述了滑动窗口的四个部分,以及发送方和接收方的窗口管理。通过实例解析了窗口如何滑动以及在接收方反馈确认和流量控制下的动态调整,帮助理解TCP如何高效且稳定地传输数据。

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

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

引言

想象一下这个场景:主机 A 一直向主机 B 发送数据,不考虑主机 B 的接收能力,则可能导致主机 B 的接收缓冲区满了而无法再接收数据,从而导致大量的数据丢包,引发重传机制。而在重传的过程中,若主机 B 的接收缓冲区情况仍未好转,则会将大量的时间浪费在重传数据上,降低传送数据的效率。

所以引入了流量控制机制,主机 B 通过告诉主机 A 自己接收缓冲区的大小,来使主机 A 控制发送的数据量。总结来说:所谓流量控制就是控制发送方发送速率,保证接收方来得及接收

TCP 实现流量控制主要就是通过 滑动窗口协议

对于发送方来说,窗口大小就是指无需等待确认应答,可以连续发送数据的最大值。

窗口大小具体由谁来设定呢?

窗口大小和 TCP 报文首部中 16 位的 窗口大小 Window 字段有关:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ywaQxtJc-1655355009384)(https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210110153454.png)]

该字段的含义是指自己接收缓冲区的剩余大小,于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。

所以,通常来说窗口大小是由接收方来决定的

滑动窗口详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值