首页/新闻资讯/正文详情

Linux网络(十七):TCP序号与超时重传详解:从发送缓冲区下标到丢包检测、重复报文与重传机制

发布时间:2026/9/26 11:10:52 来源:云帆数科 栏目:资讯中心
Linux网络(十七):TCP序号与超时重传详解:从发送缓冲区下标到丢包检测、重复报文与重传机制
◆ 博主名称 小此方-CSDN博客大家好欢迎来到小此方的博客。⭐️网络系列个人专栏 【主题曲】计算机网络⭐️此方的GitHub github_此方⭐️我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)文章目录概要序論一、对序列号的深入理解1.1 序列号的本质发送缓冲区数组下标1.2 确认序号与下一次发送范围的计算二、深入理解丢包与应答报文2.1 丢包的两种情况与发送方的视角2.2 应答丢失引发的重复报文与序号解决2.3 超时重传的时间设定多长时间算超时概要序論Hello大家好我是此方。本文将开始Tcp原理篇章的深入理解部分。本文将详细介绍三个内容对丢包的深入理解对序列号的深入理解。一、对序列号的深入理解1.1 序列号的本质发送缓冲区数组下标TCP将每个字节的数据都进行了编号即为序列号。我们把发送缓冲区看作是一个数组数组的下标就是字节的编号。发送缓冲区中每一个字节天然不就有编号了吗我们要把发送缓冲区理解为一个 char 类型的数组charoutbuffer[N];当我们进行数据发送时从序列化到调用write(sockfd, buffer, strlen(buffer))等 IO 系统调用本质上都是内存拷贝。数据被写入发送缓冲区中。我们获取1000个字节拿到下面去封装那么这1000个字节的有效载荷的序号就是最后一个字节的下标当然这种解释不是很合理但能帮助我们非常直观地理解序列号与缓冲区的对应关系。1.2 确认序号与下一次发送范围的计算每一个ACK都带有对应的确认序列号意思告诉发送者我已经收到了哪些数据下一次你从哪里开始发。下一次就从哪里开始发送不是指下一次的编号是什么因为还要加上下一次发送报文的长度我们来看一个具体的计算过程ACK 返回 1001说明下一次发送的报文起始序列号 Seq 1001。本次发送 1000 字节字节区间为 1001 到 2000。再下一次发送编号下一个报文的起始序列号才是 Seq 2001。二、深入理解丢包与应答报文2.1 丢包的两种情况与发送方的视角我们这里讲的丢包是广义的丢包指的是发送的数据报文丢了或者返回的应答报文丢了。而狭义的丢包是指数据报文丢了。那么对于发送方而言没有收到应答 ACK意味着什么意味着丢包吗只能意味着数据可能丢失对方可能没收到也就是无法 100% 保证对方是否收到消息无法保证可靠性。那么有哪两种情况要么数据丢要么应答丢你能确认是数据丢了还是应答丢了吗不能在特定的时间间隔内收不到应答不能判定报文丢失。收不到应答 超时 - 才能判断丢包了。丢包是一种主观感受不是客观真的丢包了。丢没丢我不清楚但是“收不到应答”“超时”一定意味着我丢包了2.2 应答丢失引发的重复报文与序号解决如果如情况二那样我报文已经发送过去了但是因为没有收到应答所以重新传输了一次引发报文重复问题。解决问题的关键就是看序号我们的序号又多了一种能力确认应答。按序到达。去重。2.3 超时重传的时间设定多长时间算超时应该是多长时间间隔为什么超时重传的时间间隔是变化的。超时的重传时间如何确定最理想的情况下找到一个最小时间间隔保证“确认应答”在这个时间内返回。但是这个时间的长短随着网络状态不同是有变化的。如果超时时间设得太长会影响整体重传效率如果超时时间设得太短有可能会频繁发送重复的报文。TCP为了保证无论在任何环境下都能比较高性能的通信因此重传超时时间是动态计算出来的。Linux中BSD Unix和Windows也是如此以500ms为一个单位进行控制每次判定超时重发的超时时间是500ms的整数倍。如果重发一次之后仍然得不到应答等待 2500ms 后进行重发。如果仍然得不到应答等待 4500ms 进行重发依次类推以指数形式递增。累计到一定重传次数TCP认为网络或者对端主机出现故障强行关闭连接。好的本期内容就到这里如果对你有帮助还不要忘记点赞三联支持,如果有什么疑问可以再后台私信我。我是此方我们下期再见。bye!

相关推荐

DoB(方框差分滤波器)带通频域原理
DoB(方框差分滤波器)带通频域原理

一、前置基础:Box均值滤波器的真实频域特性DoB由两个不同尺度的Box滤波相减构成,其带通特性完全依赖Box滤波器的非理想低通属性,这是所有原理的基础。1.1 空域定义Box滤波器(方框均值滤波)是矩形均匀权重卷积核&#x… · 2026/9/26 11:10:52

【ARM 裸机开发 (IMX6ULL-mini)】I2C协议详解
【ARM 裸机开发 (IMX6ULL-mini)】I2C协议详解

文章目录前言一、串口格式化函数移植二、i2c协议的概念与特点三、IIC的时序四、EEPROM4.1 EEPROM概念4.2 AT24C024.3 AT24C02的I2C通信五、IMX6ULL上的I2C5.1 IMX6ULL的I2C原理框图5.2 相关寄存器IADRIFDRI2CRI2SRI2DR六、I2C程序C语言编写6.1 程序流程图6.2 I2C初始化6.3 I2C写… · 2026/9/26 11:10:52

VSCode+Cline 配 TaoToken:fetch-mcp 本地爬虫 settings.json 骨架与连通验证
VSCode+Cline 配 TaoToken:fetch-mcp 本地爬虫 settings.json 骨架与连通验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:10:52

OpenRouter 是什么:统一调用多家大模型的 API 网关与实战指南(TaoToken 配置版)
OpenRouter 是什么:统一调用多家大模型的 API 网关与实战指南(TaoToken 配置版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:43:14

面试录完音视频如何高效复盘?2026主流AI面试复盘工具实测测评:用TaoToken统一Key打通Cline与CC Switch的配置骨架
面试录完音视频如何高效复盘?2026主流AI面试复盘工具实测测评:用TaoToken统一Key打通Cline与CC Switch的配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:43:14

windows Cursor 配置MCP的小坑:commandargs与npx踩坑实录
windows Cursor 配置MCP的小坑:commandargs与npx踩坑实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:43:14

紧凑型工业连接器智能互联:从物理连接到智能节点的工程实践
紧凑型工业连接器智能互联:从物理连接到智能节点的工程实践

1. 从一颗连接器说起:紧凑型工业连接器的智能互联到底在解决什么问题如果你在工厂产线、机器人控制柜或者户外储能设备旁边蹲过一整天,就会明白一个道理:真正让工程师头疼的,往往不是主控芯片选型,也不是通信协议栈怎么… · 2026/9/26 11:43:14

FCC、CE、ISED、MIC无线射频检测标准全解析与认证实战指南
FCC、CE、ISED、MIC无线射频检测标准全解析与认证实战指南

1. 无线射频检测标准的整体认知框架1.1 为什么通信产品绕不开RF认证这道坎做通信类硬件产品的朋友都有一个共同体会:产品功能调通了、样机跑起来了,离上市却还差着十万八千里。卡住进度的往往不是技术本身,而是RF检测认证这一关。无线射频技术… · 2026/9/26 11:43:14

含五月最新安装包|10 分钟搞定 OpenClaw 2.6.6 办公自动化工具搭建与 TaoToken 配置
含五月最新安装包|10 分钟搞定 OpenClaw 2.6.6 办公自动化工具搭建与 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:43:08

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码