思博网络 发表于 2021-7-3 22:41:36

【思博技术干货】TCP之滑动窗口带图解析过程

马上点击咨询!
学习资料链接:直接点击这里领取更多资料【思博技术干货】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步,重传的包是随机的发回帖查看带图分析滑动窗口机制过程**** Hidden Message *****背靠SPOTO,及时掌握一手考场信息!群内有一群一起备考的战友哦
QQ扫描下方二维码
更多更全学习资料与视频找思博
备考不用慌,大佬带你飞 : 每三位CCIE,有两位来自思博

页: [1]
查看完整版本: 【思博技术干货】TCP之滑动窗口带图解析过程