雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1157|回复: 0

[学习/资料] 【思博技术干货】TCP之滑动窗口带图解析过程

[复制链接]
发表于 2021-7-3 22:41:36 | 显示全部楼层 |阅读模式
马上点击咨询!
【思博技术干货】TCP之滑动窗口带图解析过程
概述
滑动窗口实现了TCP流控制。首先明确滑动窗口的范畴:TCP是双工的协议,会话的双方都可以同时接收和发送数据。TCP会话的双方都各自维护一个发送窗口和一个接收窗口。各自的接收窗口大小取决于应用、系统、硬件的限制(TCP传输速率不能大于应用的数据处理速率)。各自的发送窗口则要求取决于对端通告的接收窗口,要求相同。
滑动窗口解决的是流量控制的的问题,就是如果接收端和发送端对数据包的处理速度不同,如何让双方达成一致。接收端的缓存传输数据给应用层,但这个过程不一定是即时的,如果发送速度太快,会出现接收端数据overflow,流量控制解决的是这个问题。
窗口的概念
发送方的发送缓存内的数据都可以被分为4类:1. 已发送,已收到ACK2. 已发送,未收到ACK3. 未发送,但允许发送4. 未发送,但不允许发送
其中类型2和3都属于发送窗口。
接收方的缓存数据分为3类:1. 已接收2. 未接收但准备接收3. 未接收而且不准备接收
其中类型2属于接收窗口。
窗口大小代表了设备一次能从对端处理多少数据,之后再传给应用层。缓存传给应用层的数据不能是乱序的,窗口机制保证了这一点。现实中,应用层可能无法立刻从缓存中读取数据。
滑动机制
1.  发送窗口只有收到发送窗口内字节的ACK确认,才会移动发送窗口的左边界。
2.  接收窗口只有在前面所有的段都确认的情况下才会移动左边界。当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动,并不对后续字节确认。以此确保对端会对这些数据重传。
3.  遵循快速重传、累计确认、选择确认等规则。
4.  发送方发的window size = 8192;就是接收端最多发送8192字节,这个8192一般就是发送方接收缓存的大小。
模拟动画
模拟特点
找到了一个模拟TCP窗口发送的动画的地址,稍微有缺陷:1. 丢包率如果设得太高,有时无论重发多少次都不能恢复正常 2. 窗口最大可为10,其实应该为9
明确发送端和接收端,发送A~S数据包,我们不会从头到尾分析,因为过程比较长。1. 简化了窗口大小,双方窗口大小都一直是42. 设置一定的丢包率,否则没什么值得分析的,包括sender发送的数据包和receiver回复的ACK包。3. 简化重传机制,出现丢包则直接重传,不等3个冗余ACK和超时。4. 既不是选择重传也不是退回N步,重传的包是随机的发
回帖查看带图分析滑动窗口机制过程
游客,如果您要查看本帖隐藏内容请回复
背靠SPOTO,及时掌握一手考场信息!群内有一群一起备考的战友哦
QQ扫描下方二维码
更多更全学习资料与视频找思博
备考不用慌,大佬带你飞 : 每三位CCIE,有两位来自思博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-22 22:36 , Processed in 0.083738 second(s), 19 queries , Gzip On.

快速回复 返回顶部 返回列表