<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录

TCP的通信机制的核心特性

四、滑动窗口

1)什么是滑动窗口?

2)滑动窗口的作用是什么?

3)批量传输出现丢包如何处理?

[1> 接收端ACK丢包](#1> 接收端ACK丢包)

[2> 发送端数据包丢包](#2> 发送端数据包丢包)

4)适用性


TCP的通信机制的核心特性

|----------------|-------------------|
| TCP的通信机制最核心的特性是可靠传输。 ||
| TCP至少通过以下机制来保证传输的可靠性 ,在保证可靠性的同时也采取一些机制来提升传输效率 : ||
| <1> 确认应答 | <6> 阻塞控制 |
| <2> 超时重传 | <7> 延时应答 |
| <3> 连接管理 | <8> 捎带应答 |
| <4> 滑动窗口 | <9> 面向字节流 |
| <5> 流量控制 | <10> 异常情况处理 |


阅读指针 -> 《 TCP 的通信机制 -- 连接管理(三次握手和四次挥手 》<JavaEE> TCP 的通信机制(二) -- 连接管理(三次握手和四次挥手)-CSDN博客介绍了TCP协议中的"连接管理"机制,即"三次握手"建立连接和"四次挥手"断开连接https://blog.csdn.net/zzy734437202/article/details/135231067


四、滑动窗口

1)什么是滑动窗口?

|------------------------------------------------------------------------|
| 无需等待确认应答,可以继续发送数据的最大值称为窗口大小,窗口越大,网络吞吐率就越高。 |
| 在传输数据时, 量进行数据传输,达到批量传输上限后,再等待ACK。 |
| **此后每返回一个ACK,则可以发送出一个后续数据。**类似于窗口滑动的效果。 |
| 为了维护滑动窗口,操作系统内核开辟了发送缓冲区,用于记录已发送的数据还有哪些尚未接收到ACK。接收到ACK的数据,才能从缓冲区删除。 |

2)滑动窗口的作用是什么?

|-----------------------------------|
| 作用是批量传输数据,缩短确认应答的等待时间,提高传输效率。 |

3)批量传输出现丢包如何处理?

|----------------------------------|
| 有两种丢包情况:接收端ACK丢包 和 发送端数据包丢包。 |

1> 接收端ACK丢包

|-------------------------------------------------------------------------|
| 传输过程中,ACK丢包并不需要重传数据。 |
| TCP的数据报格式中存在序号和确认序号两个属性。发送端接收到后续的ACK,就意味着这个ACK记录的确认序号之前的数据包都已经正常接收。 |

2> 发送端数据包丢包

|-------------------------------------------------------------------------------------|
| 还是通过TCP的数据报格式中的序号和确认序号两个属性进行判断和处理。 |
| 传输过程中,发送端数据包丢包,则接收端接收不到对应的数据包的序号。 |
| 此时接收端会重复向发送端发送包含同一确认序号的ACK,当发送端接收到三次这个同一确认序号的ACK时,就会重新发送这个确认序号的数据包。 |
| 中间数据包的丢包,并不影响后续数据包的传输,这些数据包会保存在接收端的接收缓存区中。当接收端正常接收到重发的丢包数据后,就会按序号顺序从接收缓存区中读取数据。 |
| 上述重传过程中,只会重传丢包的数据包,没有其他冗余的传输操作。这种机制被称为"高速重发机制",也称为"快重传"。 |

4)适用性

|-----------------------------|
| 在数据量小的场景下,使用普通的确认应答和超时重传即可。 |
| 在数据量大的场景下,使用活动窗口更合适。 |


阅读指针 -> 《 TCP 的通信机制(四) -- 流量控制 和 拥塞控制 》

<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制-CSDN博客介绍了 TCP 的通信机制 -- 流量控制 和 拥塞控制https://blog.csdn.net/zzy734437202/article/details/135257678

相关推荐
老六ip加速器3 分钟前
ip地址可以精确到什么级别?如何获取/更改ip地址
网络·网络协议·tcp/ip
hrrrrb20 分钟前
【TCP/IP】10. 引导协议与动态主机配置协议
网络·网络协议·tcp/ip
专注VB编程开发20年9 小时前
常见 HTTP 方法的成功状态码200,204,202,201
开发语言·网络协议·tcp/ip·http
Dsocc9 小时前
TCP 动态选路协议全面研究:OSPF、BGP 与 IS-IS 的比较与应用分析
网络·网络协议·tcp/ip
爱思德学术11 小时前
中国计算机学会(CCF)推荐学术会议-B(计算机体系结构/并行与分布计算/存储系统):SOCC 2025
网络协议·机器学习·云计算·边缘计算
JosieBook15 小时前
【Java编程动手学】深入剖析Java网络编程:原理、协议与应用
java·udp·tcp
搬砖天才、19 小时前
SpringGateway网关增加https证书验证
网络协议·http·https
2501_9153743519 小时前
WHIP(WebRTC HTTP Ingestion Protocol)详解
网络协议·tcp/ip·udp
JAVA学习通21 小时前
【JavaEE进阶】图书管理系统(未完待续)
java·spring·java-ee
杰尼橙子1 天前
DPDK graph图节点处理框架:模块化数据流计算的设计与实现
网络协议·性能优化