网络中的 SDU 与 PDU | 概念 / 结构 / 类型 / 流程 /……

注:本文为 "网络 | SDU 与 PDU" 相关合辑。

略作重排,未全校,如有内容异常,请看原文。


网络中的 SDU 与 PDU

1. 简介

在计算机网络分层架构中,服务数据单元(SDU)与协议数据单元(PDU)是描述数据在层间传递和处理的载体,二者的定义和特征决定了分层通信的基本逻辑。

1.1 服务数据单元(SDU)

SDU(Service Data Unit,服务数据单元) 是指定协议层从上层接收的、未经过当前层处理的原始数据集,代表当前层需要提供服务的业务数据基础。其特征可概括为:

  • 数据组成:仅包含上层传递的纯业务信息,不包含当前层的任何协议控制信息;
  • 传递特性:在接收方的同一协议层中,SDU 的数据内容与发送方对应层接收的内容完全一致,无任何修改;
  • 层间关联 :第 N 层的 SDU(记为 SDU(N))与第 N+1 层的 PDU(记为 PDU(N+1))存在严格的一一对应关系,即 SDU(N) = PDU(N+1)

1.2 协议数据单元(PDU)

PDU(Protocol Data Unit,协议数据单元) 是协议层对 SDU 处理后形成的、用于对等层(同一协议层的发送方与接收方) 之间传输的数据单元。其特征可概括为:

  • 数据组成 :由两部分构成------当前层的 协议控制信息(PCI,Protocol Control Information) 和从上层接收的 SDU;其中,PCI 包含实现对等层协议逻辑所需的字段(如地址、序号、校验码等);
  • 传递特性:是对等层间实际交换的最小信息单位,承载了"业务数据+控制指令"的完整信息;
  • 层间关联 :第 N 层的 PDU(记为 PDU(N))会直接作为第 N-1 层的 SDU,即 PDU(N) = SDU(N-1)

2. SDU 与 PDU 的层间关系与传递逻辑

SDU 与 PDU 在协议栈中的传递遵循"逐层封装、反向解封装"的规则,其层间关系可通过数学公式和实际传递流程清晰体现。

2.1 关系公式

SDU 与 PDU 的层间对应关系是网络分层通信的精准描述:

  1. N 层的 PDU 是第 N-1 层的 SDU:PDU(N) = SDU(N-1)
  2. N 层的 SDU 是第 N+1 层的 PDU:SDU(N) = PDU(N+1)

2.2 层间传递流程(以 TCP/IP 模型为例)

以数据从应用层向下传递到物理层的过程为例,SDU 与 PDU 的转换流程如下(接收端流程反向,为解封装过程):

  1. 应用层 :生成的业务数据(如 HTTP 报文、文件内容)作为 应用层 PDU ,传递到传输层后,成为 传输层 SDU
  2. 传输层 :对 SDU 添加 TCP/UDP 头部(属于传输层 PCI),封装为 传输层 PDU (TCP 段或 UDP 数据报),传递到网络层后,成为 网络层 SDU
  3. 网络层 :对 SDU 添加 IP 头部(属于网络层 PCI),封装为 网络层 PDU (IP 数据包),传递到数据链路层后,成为 数据链路层 SDU
  4. 数据链路层 :对 SDU 添加帧头/帧尾(属于数据链路层 PCI),封装为 数据链路层 PDU (以太网帧),传递到物理层后,成为 物理层 SDU
  5. 物理层:将 SDU 转换为比特流(物理层 PDU),通过网线、光纤等物理介质传输。

3. SDU 与 PDU 的操作

为适配不同协议层的传输能力(如带宽、MTU 限制),SDU 与 PDU 需经过封装/解封装、分段/装配等操作,确保数据在层间高效、可靠传递。

3.1 封装与解封装(基础操作)

封装与解封装是 SDU 与 PDU 转换的基础,实现"业务数据+控制信息"的添加与剥离:

  • 封装(发送端) :第 N 层协议实体接收上层传递的 SDU(N),添加本层的 PCI(N),将二者组合为 PDU(N),并传递给下层(作为 SDU(N-1));
  • 解封装(接收端) :第 N 层协议实体接收下层传递的 PDU(N)(即下层的 SDU(N-1)),去除 PCI(N),提取出原始的 SDU(N),并传递给上层(作为 PDU(N+1))。

3.2 分段与装配(适配 MTU 限制)

SDU(N) 的长度超过下层通道的 MTU(最大传输单元)时,需对 SDU 进行分段处理,接收端再重组为原始 SDU:

  • 分段(发送端) :第 N 层将过长的 SDU(N) 分割为多个短数据块,每个数据块分别添加 PCI(N),封装为多个独立的 PDU(N) 发送;
  • 装配(接收端) :第 N 层接收多个来自下层的 PDU(N),去除各自的 PCI(N),根据 PCI 中的序号信息,将短数据块重组为原始的 SDU(N),传递给上层。

3.3 拼接与分离(提升传输效率)

当存在多个短 SDU(N) 时,为减少 PCI 开销、提高通道利用率,可对 SDU 进行拼接处理:

  • 拼接(发送端) :第 N 层将多个短 SDU(N) 合并为一个连续的数据块,仅添加一个 PCI(N),封装为单个 PDU(N) 发送;
  • 分离(接收端) :第 N 层接收该 PDU(N),去除 PCI(N) 后,根据 PCI 中的长度标识,将合并的数据块拆分为原始的多个 SDU(N),传递给上层。

3.4 分割与组合(并行传输适配)

当需要利用多个下层通道并行传输以提升速率时,需对 PDU 进行分割处理:

  • 分割(发送端) :第 N 层将一个 PDU(N) 分割为多个数据块,每个数据块作为 SDU(N-1),通过多个 N-1 层通道并行发送;
  • 组合(接收端) :第 N 层从多个 N-1 层通道接收 SDU(N-1),根据控制信息重组为原始的 PDU(N),解封装后提取 SDU(N) 传递给上层。

4. 各协议层的 PDU 类型与实例

不同协议层的 PDU 因功能需求不同,具有不同的名称和格式。

ISO/OSI 模型的结构

下表以 TCP/IP 模型与 OSI 模型的对应关系为例,梳理各层 PDU 的特征:

协议层(TCP/IP 模型) 协议层(OSI 模型) PDU 名称 特征
应用层 应用层/表示层/会话层 数据(Data) 包含纯业务数据(如 HTTP 报文、文件内容)
传输层 传输层 段(Segment,TCP)/数据报(Datagram,UDP) 含端口号、序号、确认号等控制字段
网络层 网络层 数据包(Packet) 含 IP 地址、TTL、协议类型等控制字段
数据链路层 数据链路层 帧(Frame) 含 MAC 地址、帧校验序列(FCS)等控制字段
物理层 物理层 比特流(Bit) 以电/光信号形式传输的二进制位

4.1 各层 PDU 示意图与结构

4.1.1 协议数据单元(PDU)概念图
4.1.2 数据封装过程(从应用层到物理层)
4.1.3 数据解封装过程(从物理层到应用层)
4.1.4 完整封装与解封装流程
4.1.5 网络数据传输过程(含 PDU 层间转换)

5. LTE 网络中的 SDU 与 PDU 实例(移动通信场景)

SDU 与 PDU 的逻辑在移动通信网络(如 LTE 4G)中同样适用,以下以 LTE 无线协议栈的核心层(PDCP、RLC)为例,说明其具体应用。

5.1 RLC 层的 SDU 与 PDU

  • RLC SDU:RLC 层从上层 PDCP 层接收的数据单元,本质是 PDCP 层的 PDU;
  • RLC PDU:RLC 层对 SDU 进行分段、拼接后,添加 RLC 头部(PCI)形成的协议数据单元,传递给下层 MAC 层后,成为 MAC 层 SDU。

根据业务类型,RLC 层 PDU 分为三类:

  • TM PDU(透明模式):无头部,仅包含数据,适用于无需重传的业务(如广播);
  • UMD PDU(非确认模式):含头部,无重传机制,适用于时延敏感、可容忍少量丢包的业务(如 UDP 语音);
  • AMD PDU(确认模式):含头部,支持 ARQ 重传,适用于可靠性要求高的业务(如 TCP 数据)。

RLC 层 SDU 与 PDU 关系示意图:

5.2 PDCP 层的 SDU 与 PDU

  • PDCP SDU:PDCP 层从上层 IP 层接收的 IP 数据包,是 PDCP 层的原始业务数据;
  • PDCP PDU:PDCP 层对 SDU 进行加密、ROHC 头压缩(减少 IP 头部开销)后,添加 PDCP 头部(PCI)形成的协议数据单元,传递给 RLC 层后,成为 RLC 层 SDU。

PDCP 层 PDU 结构示意图:

5.3 LTE 数据处理完整流程

6. SDU 与 PDU 的关键区别总结

为明确二者的差异,下表从数据组成、传递对象、作用等维度进行对比:

对比维度 SDU(服务数据单元) PDU(协议数据单元)
数据组成 仅包含上层业务数据,无当前层控制信息 包含 SDU + 当前层协议控制信息(PCI)
传递对象 同一设备的上下层之间 不同设备的对等层之间
作用 承载上层业务数据,提供服务输入 实现对等层协议逻辑,完成信息交换
层间关系 上层 PDU = 本层 SDU 本层 PDU = 下层 SDU
是否包含控制字段 有(如地址、序号、校验码等)

7. 典型协议层 PDU 结构

为进一步理解 PDU"PCI + SDU"的组成逻辑,本节以 TCP/IP 模型中协议层的 PDU 为例,详细拆解其结构与字段功能。

7.1 传输层 PDU:TCP 段与 UDP 数据报

7.1.1 TCP 段结构

TCP 段是传输层(TCP 协议)的 PDU,由"TCP 头部(PCI)+ 传输层 SDU(来自应用层的数据流)"组成,头部最小长度为 20 字节(无选项字段时),结构如下:

字段 长度(位) 作用(PCI 功能)
源端口号 16 标识发送端的应用进程(如 HTTP 默认 80 端口)
目的端口号 16 标识接收端的应用进程(如 HTTPS 默认 443 端口)
序号 32 标识 TCP 段中数据的起始字节序号,用于字节流排序和去重
确认号 32 标识期望接收的下一个字节序号(仅当 ACK=1 时有效),用于确认已接收数据
数据偏移 4 指示 TCP 头部长度(单位:4 字节),区分头部与 SDU 的边界
保留位 6 预留字段,固定为 0
控制位(URG/ACK/SYN/FIN 等) 6 实现 TCP 逻辑:SYN=1 用于建立连接,FIN=1 用于释放连接,ACK=1 用于确认数据
窗口大小 16 告知对方接收缓冲区剩余空间,用于流量控制
检验和 16 校验 TCP 头部+SDU 的完整性,检测传输错误
紧急指针 16 当 URG=1 时,指示紧急数据在段中的结束位置

TCP 段结构示意图:

7.1.2 UDP 数据报结构

UDP 数据报是传输层(UDP 协议)的 PDU,结构更简洁,由"UDP 头部(PCI,固定 8 字节)+ 传输层 SDU"组成:

字段 长度(位) 作用(PCI 功能)
源端口号 16 标识发送端应用进程(可选,可设为 0)
目的端口号 16 标识接收端应用进程
长度 16 表示 UDP 头部+SDU 的总长度(最小 8 字节,即仅头部无数据)
检验和 16 校验 UDP 头部+SDU 的完整性(IPv4 中可设为 0 表示不校验)

7.2 网络层 PDU:IP 数据包(以 IPv4 为例)

IP 数据包是网络层(IPv4 协议)的 PDU,由"IP 头部(PCI)+ 网络层 SDU(来自传输层的 TCP 段/UDP 数据报)"组成,头部长度范围为 20~60 字节(20 字节固定头部+0~40 字节选项字段),各字段详情如下:

字段 长度(位) 作用(PCI 功能)
版本 4 标识 IP 协议版本(IPv4 为 4,IPv6 为 6),确保收发双方协议版本兼容,避免格式解析错误
首部长度 4 指示 IP 头部总长度(单位:4 字节),区分头部与 SDU(传输层 PDU)的边界,最大值对应 60 字节头部
区分服务 8 用于 QoS(服务质量)控制,通过前 6 位 DSCP(差分服务代码点)字段定义数据传输优先级(如语音业务设高优先级,文件下载设低优先级)
总长度 16 表示 IP 头部+SDU 的总长度(最大 65535 字节);若受 MTU 限制需分片,此值为当前分片的总长度
标识 16 为每个原始 IP 数据包分配唯一标识,分片后所有分片的标识字段相同,用于接收端识别同一数据包的分片
标志 3 控制分片逻辑: - DF(Don't Fragment)=1:禁止分片,若长度超 MTU 则丢弃数据包 - MF(More Fragment)=1:后续还有分片,MF=0:当前为最后一个分片
片偏移 13 指示当前分片在原始数据包中的相对位置(单位:8 字节),接收端通过该字段按序重组所有分片
生存时间(TTL) 8 限制数据包的网络传输跳数(每经过一个路由器减 1,值为 0 时丢弃数据包),防止数据包在路由环路中无限循环
协议 8 标识 IP 数据包承载的上层协议类型(如 TCP=6,UDP=17,ICMP=1),用于解封装后将 SDU 交付对应上层协议
首部检验和 16 仅校验 IP 头部的完整性(不包含 SDU),采用反码算术运算;接收端计算结果不匹配则判定头部错误,丢弃数据包
源 IP 地址 32 标识发送端设备的逻辑地址(如 192.168.1.1),用于路由转发时定位数据来源
目的 IP 地址 32 标识接收端设备的逻辑地址(如 10.0.0.2),用于路由转发时定位数据目标
选项与填充 可变(0~40 字节) 可选扩展字段(如路由记录、时间戳、安全选项);填充字段为 0,用于确保头部长度为 4 字节的整数倍,满足对齐要求

IP 数据包结构示意图:

7.3 数据链路层 PDU:以太网帧

以太网帧是数据链路层(以太网协议)的 PDU,由"帧头(PCI)+ 数据链路层 SDU(来自网络层的 IP 数据包)+ 帧尾(PCI)"组成,总长度范围为 64~1518 字节(符合 IEEE 802.3 标准):

字段 长度(字节) 作用(PCI 功能)
前导码 7 同步信号,以 0x55 重复 7 次,告知接收端即将接收数据,实现收发双方时钟同步
帧开始定界符 1 标识帧的正式开始,固定为 0xD5,区分前导码与后续数据
目的 MAC 地址 6 标识接收端设备的物理地址(网卡硬件地址),用于局域网内的帧转发定位
源 MAC 地址 6 标识发送端设备的物理地址,用于接收端回传响应帧(如 ARP 应答)
类型/长度 2 双重功能:值≥0x0600 时标识上层协议类型(如 IP=0x0800,ARP=0x0806);值 <0x0600 时标识 SDU 长度
SDU(IP 数据包) 46~1500 来自网络层的 PDU(即数据链路层 SDU),不足 46 字节时需填充(确保帧总长度≥64 字节)
帧检验序列(FCS) 4 基于 CRC32 校验算法,校验帧头+SDU 的完整性,接收端计算结果不匹配则丢弃帧

以太网帧结构示意图:

8. SDU 与 PDU 的工程化应用场景

理解 SDU 与 PDU 需落地到网络设计、故障排查与性能优化中。以下为典型工程场景,结合二者逻辑分析问题本质与解决方案:

8.1 网络 MTU 配置与 IP 分片问题排查

MTU(最大传输单元)是数据链路层对 PDU(帧)的 SDU 部分(如以太网帧的 IP 数据包)的最大长度限制(以太网默认 MTU=1500 字节)。当网络层 PDU(IP 数据包)长度超过 MTU 时,会触发 IP 分片,若配置不当易导致丢包。

  • 问题现象 :跨 VPN 传输大文件时频繁超时、卡顿,小数据包(如 ping 1000 字节)正常;
  • 原理分析:VPN 隧道(如 IPsec)会在原始 IP 头部外添加隧道头部(约 20~60 字节),导致封装后的 IP 数据包总长度超过物理链路 MTU(1500 字节);若发送端设置"禁止分片(DF=1)",中间路由器会丢弃数据包;
  • 解决方案:1. 在发送端将 MTU 手动设置为 1400~1450 字节(预留隧道头部空间);2. 在 VPN 网关开启"路径 MTU 发现(PMTUD)"功能,自动协商两端最大可用 MTU。

8.2 LTE 网络 RLC 层 PDU 重传优化

在 LTE 无线链路中,RLC 层(确认模式 AMD)的 PDU 重传直接影响业务时延与可靠性(如语音通话、直播)。

  • 问题现象:用户在弱信号区域(如电梯、地下室)使用视频通话时,画面频繁卡顿、音视频不同步;
  • 原理分析:弱信号导致 RLC PDU 传输错误,接收端通过 STATUS PDU 请求重传;若基站侧 RLC 重传次数配置过少(默认 3 次),未收到则丢弃 RLC SDU,导致上层应用(如视频)丢失数据;
  • 解决方案:1. 在基站侧将 RLC 确认模式的重传次数调整为 5~8 次,平衡时延与可靠性;2. 优化 HARQ(混合自动重传请求)的重传间隔(如从 20ms 缩短至 10ms),减少重传等待时间。

8.3 传输层 TCP 窗口控制与流量优化

TCP 段的"窗口大小"字段(PDU 的 PCI 部分)是流量控制的核心,直接决定 SDU(应用层数据)的传输速率。

  • 问题现象:跨地域 TCP 传输(如北京到上海)速率始终低于带宽上限(100Mbps 带宽仅能跑 20Mbps);
  • 原理分析:接收端操作系统默认 TCP 接收窗口较小(如 Linux 默认 256KB),结合长距离传输的往返时延(RTT≈50ms),根据"带宽×RTT"公式,最大传输速率仅为 256KB×8 / 0.05s = 40.96Mbps,实际因拥塞控制会更低;
  • 解决方案:1. 在接收端开启"TCP 窗口缩放(Window Scaling)"选项,将接收窗口扩大至 4~8MB;2. 优化 TCP 拥塞控制算法(如从 CUBIC 改为 BBR 算法),利用带宽探测提升传输速率。

9. 总结

SDU 与 PDU 是网络分层架构的"数据载体",其逻辑贯穿数据从生成到传输的全流程,可通过三句关键结论概括:

  1. 定义本质差异:SDU 是"上层传递的原始业务数据",仅承载信息内容;PDU 是"本层添加控制信息后的传输单元",同时承载内容与控制指令,是对等层通信的最小单位。

  2. 层间传递规律:"上层 PDU = 本层 SDU,本层 PDU = 下层 SDU",数据在协议栈中传递时,本质是"SDU 被封装为 PDU,再作为下层 SDU 继续传递",仅更换"控制信息外套(PCI)",核心业务数据(SDU 内容)不变。

  3. 操作目标:封装/解封装实现"SDU 与 PDU 的转换",是分层通信的基础;分段/拼接、分割/组合解决"数据大小与通道能力匹配"的问题,平衡可靠性与传输效率。

掌握 SDU 与 PDU 的逻辑,是理解网络分层原理、排查协议故障(如分片丢包、重传超时)、优化网络性能(如 MTU 调整、TCP 窗口优化)的关键------从以太网帧的 FCS 校验到 LTE 的 RLC 重传,从 IP 分片重组到 TCP 流量控制,本质都是二者在不同场景下的具体应用。

10. Abbreviation

  • SDU(Service Data Unit,服务数据单元)
  • PDU(Protocol Data Unit,协议数据单元)
  • PCI(Protocol Control Information,协议控制信息)
  • OSI(Open Systems Interconnection,开放式系统互联)
  • TCP(Transmission Control Protocol,传输控制协议)
  • UDP(User Datagram Protocol,用户数据报协议)
  • IP(Internet Protocol,网际协议)
  • MTU(Maximum Transfer Unit,最大传输单元)
  • LTE(Long Term Evolution,长期演进)
  • RLC(Radio Link Control,无线链路控制)
  • PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)
  • MAC(Media Access Control,媒体接入控制)
  • ROHC(Robust Header Compression,鲁棒性头部压缩)
  • ARQ(Automatic Repeat reQuest,自动重传请求)
  • HARQ(Hybrid Automatic Repeat reQuest,混合自动重传请求)
  • FCS(Frame Check Sequence,帧检验序列)
  • VLAN(Virtual Local Area Network,虚拟局域网)
  • QoS(Quality of Service,服务质量)
  • TTL(Time To Live,生存时间)
  • ICMP(Internet Control Message Protocol,互联网控制消息协议)
  • IGMP(Internet Group Management Protocol,互联网组管理协议)
  • OSPF(Open Shortest Path First,开放式最短路径优先)

via: