当前位置: 首页 > news >正文

<JavaEE> TCP 的通信机制(一) -- 确认应答 和 超时重传

目录

TCP的通信机制的核心特性

一、确认应答

1)什么是确认应答?

2)如何“确认”?

3)如何“应答”?

二、超时重传

1)丢包的概念

2)什么是超时重传?

3)两种触发超时重传的情况

4)等待多久算超时?

5)重复的数据如何处理?


TCP的通信机制的核心特性

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

一、确认应答

确认应答是TCP最核心的机制,以确认应答为核心,辅助其他机制,使得TCP完成了可靠传输。

1)什么是确认应答?

发送端将数据发送给接收端,接收端成功收到数据后(即确认),会给发送端返回一个应答报文(即应答)。应答报文的作用是让发送端知道数据是否成功传输。

2)如何“确认”?

<1> 校验和:用于确认接收的数据是否在传输的过程中发生了改变。常使用CRC或MD5等校验方式。
<2> 序号:序号是一系列具有大小关系的整数,描述了数据的先后顺序。接收端需要确认收到的数据包的序号是否符合数据序列。

3)如何“应答”?

<1> “ACK”标志位:使用应答报文进行应答,应答报文被称为ACK(Acknowledge),如果该数据包是应答报文,标志位“ACK”将为1,否则为0。
<2> 确认序号:应答报文中将包含“确认序号”。确认序号的作用在于告知发送端,接收端已经收到了哪些数据和接下来需要发送端发送的下一系列数据的起始位置。

二、超时重传

1)丢包的概念

丢包是指,数据包在网络传输的过程中没有到达接收端;或者虽然到达了接收端,却因为传输过程中的干扰使得接收到的数据是错误的数据。

2)什么是超时重传?

超时重传是指,在发送端发送数据后没有接收到接收端的应答报文,在等待一段时间后(即超时)就会重新发送该数据(重传)。
重传可以大幅提升数据传输的可靠性。

3)两种触发超时重传的情况

上述两种情况,归根结底是由于发送端没有收到应答报文才触发了超时重传。

4)等待多久算超时?

初始等待时间,不同的系统设定的时间是不一样的,而且这个时间是可以配置的。
TCP为了保证无论在任何环境下都能较高性能的通信,会动态计算最大超时时间。每一次超时后,等待的时间都会变长。

5)重复的数据如何处理?

在上述情况2,返回的ACK丢包的情况下。接收端会多次收到重复的数据。
TCP通过“序号”这一属性来识别哪些包是重复的包,已经接收过的包的“序号”会被存放在“接收缓冲区”中,如果接收端发现当前发送的数据已经存在,会直接丢弃这些数据包。
“接收缓冲区”不仅能进行去重,还能进行重排序,确保读取的顺序和发送的顺序是一致的。

阅读指针 -> 《 TCP 的通信机制(二) -- 连接管理(三次握手和四次挥手) 》

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

http://www.lryc.cn/news/270115.html

相关文章:

  • Spark任务调度与数据本地性
  • 【论文阅读】Self-Paced Curriculum Learning
  • C++简易线程池
  • 【MATLAB】PSO粒子群优化LSTM(PSO_LSTM)的时间序列预测
  • 产品经理学习-怎么写PRD文档
  • 第3课 获取并播放音频流
  • Spark编程实验四:Spark Streaming编程
  • Flink去重计数统计用户数
  • 力扣:62. 不同路径(动态规划,附python二维数组的定义)
  • 2022年全球运维大会(GOPS深圳站)-核心PPT资料下载
  • 8868体育助力意甲罗马俱乐部 迪巴拉有望付出
  • java设计模式实战【策略模式+观察者模式+命令模式+组合模式,混合模式在支付系统中的应用】
  • 小程序wx:if 和hidden的区别?
  • 自动驾驶学习笔记(二十三)——车辆控制模型
  • Linux Shell 015-文本双向覆盖重定向工具tee
  • 【PyQt】(自定义类)QIcon派生,更易用的纯色Icon
  • 【mysql】数据处理格式化、转换、判断
  • 深入探索Java中的UDP网络通信机制
  • List常见方法和遍历操作
  • 【基础篇】一、认识JVM
  • DrGraph原理示教 - OpenCV 4 功能 - 颜色空间
  • 听GPT 讲Rust源代码--src/tools(36)
  • 学生数据可视化与分析工具 vue3+flask实现
  • uni-app condition启动模式配置
  • 网大为卸任腾讯CXO;Midjourney 1 月训练视频模型;2023年马斯克赚了7700亿
  • 据报道,微软的下一代 Surface 笔记本电脑将是其首款真正的“人工智能 PC”
  • Springer build pdf乱码
  • k8s之kudeadm
  • NModbus-一个C#的Modbus协议库实现
  • Altium Designer20中遇到的问题和解决办法记录