【计算机网络 | 网络层6:IPv4 数据报格式:TTL、分片、首部校验和分别有什么用?】

发布时间:2026/9/2 7:55:33

【计算机网络 | 网络层6:IPv4 数据报格式:TTL、分片、首部校验和分别有什么用?】
上一篇把一个 IPv4 地址块划分成多个子网解决的是“目的地址属于哪个网络”的问题。路由器知道该往哪个方向转发后还需要读懂正在转发的 IP 数据报它有多长能否通过下一段链路已经经过了多少跳以及首部是否在传输中出错。这一篇仍位于 TCP/IP 五层模型的网络层聚焦 IPv4 数据报的首部。重点不是死记每一个字段的位置而是理解三个很实际的问题数据报为什么不会在路由环路中无限转发遇到链路 MTU 不足时为什么会分片路由器为什么要反复计算首部校验和。一、IPv4 数据报由什么组成IPv4 数据报由两部分组成首部携带转发和处理所需的控制信息数据部分承载上层交下来的内容例如 TCP 报文段、UDP 用户数据报或 ICMP 报文。IPv4 首部有 20 字节的固定部分还可以带可选字段因此首部总长度为 20 到 60 字节。实际网络中大多数 IPv4 数据报使用 20 字节的固定首部可选字段会增加每台路由器的处理开销所以很少使用。可以把它粗略看成一张随数据一起旅行的“转运单”源地址和目的地址说明从哪里来、往哪里去总长度说明这件“包裹”有多大TTL 防止它绕圈分片字段帮助把过大的包裹拆开首部校验和检查转运单本身有没有损坏。二、首部中最值得掌握的字段IPv4 的首部字段很多但它们可以按用途理解。字段长度与单位作用版本4 位指明使用的 IP 版本IPv4 的值为 4首部长度4 位以 4 字节为单位告诉接收方首部在哪里结束、数据从哪里开始常见值为 5表示 20 字节区分服务8 位可用于表达服务质量或拥塞通知等处理需求总长度16 位单位为字节首部与数据部分的总长度最大可表示 65535 字节标识、标志、片偏移16 位、3 位、13 位三者配合实现分片与重组TTL8 位限制数据报可经历的转发跳数协议8 位指示数据部分交给哪个上层协议处理例如 TCP、UDP、ICMP首部校验和16 位只检验 IPv4 首部是否出错源地址、目的地址各 32 位标识发送接口和目标接口的 IPv4 地址首部长度、总长度与数据长度这三个长度概念最容易混淆数据长度 总长度 - 首部长度首部长度以 4 字节为单位是因为 IPv4 首部按 32 位边界组织。若存在可选字段可能需要用全 0 填充使整个首部长度仍是 4 字节的整数倍。总长度则以字节为单位包含首部和数据。若一个数据报的固定首部为 20 字节、总长度为 1500 字节那么它的数据部分长度是 1480 字节。协议字段不是“本次传输使用的网络协议”协议字段回答的是**IP 的数据部分应该交给谁处理。**例如值对应 TCP 时目的主机的 IP 层会把数据部分交给 TCP对应 UDP 时交给 UDPICMP 报文也直接封装在 IP 数据报中。因此IP 数据报的数据部分不一定是 TCP 或 UDP 数据。路由器和主机为网络诊断、路由控制等产生的某些网络层报文同样可以由 IP 承载。三、TTL数据报为什么不会永远绕圈网络中可能出现临时的错误路由或路由环路。若没有限制一个数据报就可能在几个路由器之间反复转发占用链路和队列资源。TTL 是 Time To Live 的缩写位于 IPv4 首部中占 8 位。现代网络中可将它直观理解为“允许继续转发的跳数预算”源主机发送数据报时设置一个初始 TTL每台路由器在转发前将 TTL 减 1若减完变为 0路由器丢弃该数据报并通常向源端发送 ICMP 超时报告。例如初始 TTL 为 3第一台路由器把它改为 2 并转发第二台改为 1 并转发第三台减为 0 后丢弃。因此它最多能被成功转发两次不能无限经过路由器。这也是traceroute或tracert能逐跳探测路径的基础工具有意发送 TTL 很小的数据报让不同距离的路由器依次返回超时信息。四、MTU 不够时IPv4 为什么需要分片不同数据链路层技术对一帧中能承载的 IP 数据报大小有上限这个上限叫MTU即最大传送单元。常见以太网 MTU 为 1500 字节表示封装进一个以太网帧的数据部分最多装下 1500 字节的 IP 数据报。若一个 IPv4 数据报总长度超过下一跳链路的 MTU就无法直接封装成该链路的帧。IPv4 可以把原数据报拆成多个较小的分片分别发送每个分片都是独立的 IPv4 数据报都有自己的首部。目的主机收到所有分片后再按首部信息重组出原始数据。分片由哪三个字段配合标志字段的长度为3个比特各比特含义如下最低位More Fragment, MF表示本分片后面是否还有分片。MF1表示本分片后面还有分片MF0表示本分片后面没有分片。中间位Don’t Fragment, DF表示是否允许分片。DF1表示不允许分片DF0表示允许分片。最高位为保留位必须设置0。| 字段 | 作用 || -------------- | ------------------------------------------------------------ || 标识 | 同一原始数据报产生的所有分片使用相同标识便于目的主机归类 || 标志中的 DF 位 | DF 为 1 表示不允许分片若包太大路由器丢弃它并反馈错误信息 || 标志中的 MF 位 | MF 为 1 表示后面还有分片最后一片的 MF 为 0 || 片偏移 | 指出本分片数据部分在原始数据部分中的相对位置单位是 8 字节 |标志字段还有一个保留位必须为 0。片偏移以 8 字节为单位所以除最后一个分片外每个分片的数据部分长度必须是 8 字节的整数倍这不是随意切分而是首部字段表达能力带来的约束。一个完整的分片计算例子设原数据报使用 20 字节固定首部总长度为 3820 字节因此原数据部分为3820 - 20 3800 字节下一跳 MTU 为 1420 字节。每个分片还要带 20 字节首部所以一个“尽可能大”的非末片最多放 1400 字节数据1400 恰好是 8 的倍数。每个非末片最大数据长度 1420 - 20 1400 字节于是可分成三片分片数据部分长度总长度片偏移MF第 1 片1400 字节1420 字节01第 2 片1400 字节1420 字节1751第 3 片1000 字节1020 字节3500第二片从原数据的第 1400 字节开始片偏移为 1400 除以 8即 175第三片从第 2800 字节开始片偏移为 350。三片的标识字段相同接收端据此、结合片偏移和 MF 位才能知道怎样还原原来的 3800 字节数据部分。注意IP 分片不会让原始数据变多但会因为每个分片都要带独立 IP 首部所以传输的总字节数会增加。分片并不是没有代价任意一个分片丢失目的主机就无法完成原数据报的重组最终往往需要依赖上层协议重传。多个分片也会重复携带 IPv4 首部增加开销。因此工程上通常通过路径 MTU 发现、发送端控制报文大小等方式尽量避免中途分片。五、首部校验和为什么路由器每跳都要重算首部校验和占 16 位只覆盖 IPv4 首部不覆盖数据部分。它的作用是检查路由器据以转发的数据是否可靠例如版本、首部长度、总长度、TTL、协议以及源和目的地址等首部信息是否出现差错。计算时把首部按 16 位分组相加采用“溢出回卷”的一补码加法再对结果取反。验证时接收方以同样规则把各 16 位字段和校验和相加若结果正确应得到全 1。路由器每转发一次都会修改 TTL。因为 TTL 属于首部原来的校验和立刻失效路由器必须更新校验和后再发送。发生分片时每个分片的总长度、标志和片偏移等字段也不同也各自需要校验和。需要区分两件事**首部校验和只验证首部。**它不保证业务数据没有出错**链路层和传输层还可能提供各自的差错检测。**例如以太网帧有 FCSTCP/UDP 有覆盖报文内容的校验和。它们覆盖范围和职责不同不是简单重复。普通路由转发过程中源地址和目的地址通常保持不变TTL 才是每一跳必然变化的字段。NAT 等特殊设备可能改写地址但那是额外的地址转换行为不能当作普通路由器转发的常规步骤。首部检验和的计算方法与 UDP 和TCP 的检验和的计算方法相同。跟TCP、UDP的不同是只是”首部”的校验不管数据部分。不需要加伪首部这也解释了我们为什么要用一个填充字段把首部变成4B的整数倍数据部分是在上层检验的六、把一次转发过程串起来当路由器收到一个以太网帧时会先处理链路层帧再查看其中的 IPv4 数据报检查 IPv4 首部的版本、首部长度和校验和是否合理根据目的地址查询转发表确定出接口或下一跳TTL 减 1若到 0 则丢弃并报告超时若下一跳 MTU 不足且允许分片则生成符合 MTU 的分片若 DF 禁止分片则丢弃并报告更新每个待发送数据报的首部校验和重新封装为下一跳链路的帧并发送。这也解释了前面“路由器工作原理”一文中的一个细节路由器不会原封不动地转发旧的二层帧但 IP 数据报通常会继续向目的地前进途中 TTL、校验和以及必要时的分片字段可能发生变化。七、常见误区误区更准确的理解TTL 表示精确的秒数现代网络中它主要按路由器转发跳数递减TTL 为 3 的数据报能成功通过 3 台路由器第 3 台把 TTL 减到 0 后会丢弃它最多被成功转发 2 次MTU 是 IPv4 数据部分的最大长度MTU 限制的是可装入链路层帧的整个 IP 数据报即首部加数据所有分片的数据长度都必须是 8 的倍数最后一个分片可以不是非末片必须满足分片后只需要第一个分片带首部每个分片都是独立 IP 数据报都有自己的首部首部校验和校验整个数据报IPv4 首部校验和只校验首部数据部分由其他层的机制负责保护普通路由器每跳都会改写源、目的 IP 地址普通转发通常只改 TTL 等字段改写地址属于 NAT 等特殊处理八、总结IPv4 首部让数据报具备跨网络转发所需的基本信息。TTL 为每个数据报设置了跳数上限避免它因路由环路永久存在MTU 限制决定过长数据报是否需要分片标识、标志和片偏移让目的主机能够重组首部校验和则保护路由决策依赖的首部信息并因 TTL 的变化而需要逐跳更新。理解地址、子网和数据报首部后就能进一步回答一个很常见的问题多台内网主机为什么能共用一个公网地址访问互联网下一篇将从 NAT 的地址与端口转换机制展开。如果这篇文章对你有帮助欢迎点赞、评论、关注、收藏。你们的支持是我前进的动力

相关新闻

软件工程相关的本科毕业设计选题

软件工程相关的本科毕业设计选题

2026/9/2 7:55:33

分为 6 大方向:Web 管理信息系统、微信小程序应用、大数据与数据分析、人工智能与智能系统、软件测试与软件架构、创新应用型系统。选题兼顾经典稳妥与热点创新,适合软件工程专业,可完成需求分析、UML 建模、架构设计、编码实现、测试、论文整…

嵌入式系统设计师学习3

嵌入式系统设计师学习3

2026/9/2 7:45:32

《计算机组成原理》数据的表示引用原码为在二进制系统中表示负数,借助补码可以将减法运算转换为加法运算。原码便于人类阅读,反码是求补码的中间形式,移码用于浮点数阶码的大小比较。1.原码1.1定义:符号位 数值的绝对值正数&…

OFDM定时同步算法MATLAB仿真比较:从原理到性能评估

OFDM定时同步算法MATLAB仿真比较:从原理到性能评估

2026/9/2 7:45:32

简介:本资源面向通信工程专业本科生、研究生及无线通信系统研发工程师,聚焦OFDM系统中定时同步这一关键环节,解决多径衰落信道下符号起始位置估计不准导致解调性能恶化的核心问题。压缩包共2个文件(1个MATLAB主程序main.m 1个说明…

J2EE编程技术源代码解析:从Servlet、JSP到JDBC的实战入门

J2EE编程技术源代码解析:从Servlet、JSP到JDBC的实战入门

2026/9/2 10:35:40

简介:由郝玉龙编著的J2EE编程技术源代码,是一套面向Java企业级开发学习者的完整实例源码包,适合从入门到进阶的开发者对照学习。资源围绕Servlet、JSP、EJB、JMS、JTA等核心技术组织,通过实际代码展示Web组件开发、业务逻辑封装、…

DeepTutor 完整指南:让 AI 成为你的学习搭子,从解题到成文一站搞定

DeepTutor 完整指南:让 AI 成为你的学习搭子,从解题到成文一站搞定

2026/9/2 10:35:40

DeepTutor 完整指南:让 AI 成为你的学习搭子,从解题到成文一站搞定 【免费下载链接】DeepTutor DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/. 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor DeepTutor …

ZIP压缩包疑难杂症排查:EOCD修复与密码恢复实战

ZIP压缩包疑难杂症排查:EOCD修复与密码恢复实战

2026/9/2 10:35:40

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

Linkage Mapper与Circuitscape组合:野生动物廊道连通性分析实战

Linkage Mapper与Circuitscape组合:野生动物廊道连通性分析实战

2026/9/2 10:35:40

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

向量检索为什么这么慢?Qdrant 向量数据库从跑通到生产(完整速查表)

向量检索为什么这么慢?Qdrant 向量数据库从跑通到生产(完整速查表)

2026/9/2 10:35:40

向量检索为什么这么慢?Qdrant 向量数据库从跑通到生产(完整速查表) 【免费下载链接】qdrant Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cl…

WeChatMsg:15 分钟把微信聊天记录导出成 HTML、Word、CSV,顺手生成年度聊天报告

WeChatMsg:15 分钟把微信聊天记录导出成 HTML、Word、CSV,顺手生成年度聊天报告

2026/9/2 10:25:39

WeChatMsg:15 分钟把微信聊天记录导出成 HTML、Word、CSV,顺手生成年度聊天报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://g…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

2026/9/2 0:04:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

2026/9/2 0:04:59

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

2026/9/2 0:04:59

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

远程协作的工作台整理

远程协作的工作台整理

2026/9/2 6:21:32

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/2 6:21:32

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…