专业网站建设好不好上虞区住房和城乡建设局网站
2026/4/17 3:24:51 网站建设 项目流程
专业网站建设好不好,上虞区住房和城乡建设局网站,投资管理公司,网站架构基本知识IP 分片是 TCP/IP 协议栈中网络层#xff08;IP 层#xff09;的核心机制#xff0c;目的是解决 “IP 报文长度超过数据链路层 MTU 限制” 的传输问题 —— 确保大型 IP 数据报能通过不同 MTU 的网络链路#xff08;如以太网、PPP 链路#xff09;成功送达目标主机。以下从…IP 分片是 TCP/IP 协议栈中网络层IP 层的核心机制目的是解决 “IP 报文长度超过数据链路层 MTU 限制” 的传输问题 —— 确保大型 IP 数据报能通过不同 MTU 的网络链路如以太网、PPP 链路成功送达目标主机。以下从核心背景、关键字段、分片过程、组装过程、注意事项、实例演示六个维度详细讲解为什么需要 IP 分片1. MTU 的定义MTU最大传输单元是数据链路层如以太网、WiFi对 “封装后的 IP 数据包” 的最大数据长度限制单位字节代表该链路单次能传输的最大 IP 数据报尺寸不含数据链路层头部。常见 MTU 值以太网默认 1500 字节最常用、PPP 链路默认 1500 字节、部分窄带链路如卫星网可能低至 576 字节。2. 分片的触发条件当 IP 层收到上层协议如 TCP、UDP传递的 IP 数据报时会先检查其总长度若总长度 ≤ 出接口 MTU直接转发无需分片若总长度 出接口 MTU且 IP 头部 “禁止分片DF” 标志未置 1则触发分片若总长度 出接口 MTU且 DF 标志置 1禁止分片IP 层会丢弃该报文并向源主机发送 “ICMP 不可达需要分片但被禁止” 报文。IP 头部中与分片相关的核心字段IP 分片和组装的逻辑完全依赖 IP 头部的 3 个关键字段文档中已提及此处细化解释需先明确其作用字段名称位数核心作用16 位标识ID16唯一标识源主机发送的一个原始 IP 数据报。同一原始报文的所有分片ID 字段值完全相同用于接收方分组。3 位标志Flags3- 第 0 位保留未使用- 第 1 位DF禁止分片1 禁止0 允许- 第 2 位MF更多分片1 后续还有分片0 当前是最后一个分片。13 位片偏移Fragment Offset13指示当前分片在 “原始 IP 数据报的数据部分” 中的偏移位置单位是 8 字节即实际偏移字节数 片偏移值 × 8。用于接收方排序分片。关键约束由于片偏移以 8 字节为单位因此除最后一个分片外所有分片的数据部分长度必须是 8 的整数倍确保分片拼接后数据连续片偏移的最大值为 2¹³ - 1 8191对应实际偏移字节数 8191 × 8 65528 字节与 IP 头部 “总长度” 字段16 位最大 65535 字节匹配65528 7 字节 65535最后一个分片可不足 8 字节。IP 分片的具体过程发送方侧1. 计算分片阈值首先确定 “单个分片的数据部分最大长度”分片阈值 出接口 MTU - IP 头部固定长度默认 20 字节无选项字段时→ 例以太网 MTU1500 字节则分片阈值 1500 - 20 1480 字节每个分片的数据部分最多 1480 字节。2. 分割原始数据报将原始 IP 数据报拆分为多个片段遵循规则原始 IP 头部的 “版本、源 IP、目的 IP、协议” 等核心字段保留不变每个分片的数据部分长度 ≤ 分片阈值且除最后一个分片外其余分片数据长度必须是 8 的整数倍原始数据报的 “数据部分” 被连续分割无重叠、无遗漏。3. 为每个分片构建新 IP 头部每个分片都会生成独立的 IP 头部并非复用原始头部关键调整如下标识ID与原始数据报的 ID 保持一致确保接收方识别为同一组分片标志Flags除最后一个分片外其余分片的 MF 位 1表示 “还有更多分片”最后一个分片的 MF 位 0表示 “分片结束”DF 位 0分片后自动置为允许分片片偏移按 “当前分片数据在原始数据中的起始位置 ÷ 8” 计算单位8 字节总长度当前分片的 IP 头部长度 数据部分长度每个分片的总长度 ≤ MTU首部检验和重新计算因头部字段已修改。4. 独立发送分片每个分片都是 “独立的 IP 数据包”会各自封装到数据链路层帧中如以太网帧独立选择路由可能经过不同路径到达目标主机只要有一个丢包了tcp就需要对整个数据包重传然后再走一遍上面的流程所以看出分片增大了丢包概率一个包丢包率1%把他拆成三个包丢包率就是3%了。IP 分片的组装过程接收方侧接收方的 IP 层会按以下 3 步完成组装仅在目标主机执行中间路由器不组装分片1. 分片分组按 ID 聚合接收方收到 IP 数据包后根据 “标识ID 源 IP 目的 IP 协议” 四元组将属于同一原始数据报的所有分片归为一组 —— 核心依据是 “ID 相同”同一原始报文的分片 ID 一致。2. 分片排序按片偏移排序对同一组内的分片按 “片偏移” 字段升序排列→ 片偏移 0 的分片是第一个分片原始数据的起始部分→ 片偏移最大且 MF0 的分片是最后一个分片原始数据的末尾部分。3. 完整性检查与拼接完整性判断当收到 “MF0” 的最后一个分片后计算 “所有分片的数据长度之和” 是否等于 “原始数据总长度”通过最后一个分片的片偏移 数据长度推导确认无分片丢失数据拼接将排序后的分片数据部分连续拼接还原原始数据报的 “数据部分”恢复原始 IP 头部用原始数据报的核心字段版本、源 IP、目的 IP 等构建完整 IP 头部丢弃各分片的独立头部信息传递给上层将组装后的完整 IP 数据报传递给上层协议如 TCP、UDP——IP 分片对传输层完全透明TCP/UDP 无需感知分片过程仅接收完整数据。IP 分片的关键注意事项传输层透明性TCP、UDP 等传输层协议看不到分片过程仅接收组装后的完整数据若某一分片丢失IP 层不重传需依赖 TCP 的重传机制UDP 无重传会导致数据丢失。中间路由器不组装分片仅在发送方拆分、目标主机组装中间路由器仅转发分片可能因链路 MTU 更小而再次分片但需遵循分片规则。分片丢失的影响只要有一个分片丢失整个原始数据报就无法组装需等待上层协议重传TCP 会重传完整原始报文UDP 则直接丢失数据。禁止分片的场景若 IP 头部 DF 位 1禁止分片则报文超过 MTU 时会被丢弃常见于 “路径 MTU 发现PMTUD” 机制TCP 通过 DF 位探测路径上的最小 MTU避免分片。实例演示3000 字节 IP 报文的分片过程假设场景原始 IP 数据报总长度 3000 字节其中 IP 头部 20 字节数据部分 2980 字节发送方出接口 MTU1500 字节以太网默认无 IP 选项字段。1. 计算分片阈值分片阈值 MTU - IP 头部长度 1500 - 20 1480 字节每个分片的数据部分最大 1480 字节且 1480 是 8 的整数倍1480 ÷ 8 185。2. 分片数量与参数计算原始数据部分 2980 字节需拆分为 3 个分片前 2 个分片数据长度 1480 字节最后 1 个 2980 - 1480×220 字节各分片参数如下分片序号数据部分长度片偏移值片偏移实际字节MF 位分片总长度头部 数据11480 字节00×80120 1480 1500 字节21480 字节185185×81480120 1480 1500 字节320 字节370370×82960020 20 40 字节3. 组装逻辑接收方侧按 ID 分组3 个分片的 ID 相同归为一组按片偏移排序分片 10→ 分片 2185→ 分片 3370完整性检查分片 3 的 MF0最后一个分片且数据总长度 14801480202980 字节与原始数据长度一致拼接数据0~1479 字节分片 1→ 1480~2959 字节分片 2→ 2960~2979 字节分片 3还原原始数据再加上原始 IP 头部传递给上层协议。常见问题解答1. 接收方如何得知报文被分片两种判断依据分片的 MF 位 1表示还有后续分片片偏移值0表示当前分片不是原始报文的起始部分。只要满足其一即可判定为分片。2. 接收方如何得知分片收全了当收到 “MF0” 的最后一个分片后通过以下公式验证所有分片的数据长度之和 最后一个分片的片偏移 ×8 最后一个分片的数据长度→ 例1480148020 370×8 20 2960 20 2980 字节与原始数据长度一致则判定收全。3. 接收方如何组合形成完整报文按 “ID 源 IP 目的 IP 协议” 分组按片偏移升序排序连续拼接所有分片的数据部分用原始报文的核心字段版本、源 IP、目的 IP 等构建完整 IP 头部最终形成原始 IP 数据报。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询