网络中的 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 的层间对应关系是网络分层通信的精准描述:

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

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

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

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

应用层 :生成的业务数据(如 HTTP 报文、文件内容)作为 应用层 PDU ,传递到传输层后,成为 传输层 SDU;

传输层 :对 SDU 添加 TCP/UDP 头部(属于传输层 PCI),封装为 传输层 PDU (TCP 段或 UDP 数据报),传递到网络层后,成为 网络层 SDU;

网络层 :对 SDU 添加 IP 头部(属于网络层 PCI),封装为 网络层 PDU (IP 数据包),传递到数据链路层后,成为 数据链路层 SDU;

数据链路层 :对 SDU 添加帧头/帧尾(属于数据链路层 PCI),封装为 数据链路层 PDU (以太网帧),传递到物理层后,成为 物理层 SDU;

物理层:将 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 是网络分层架构的"数据载体",其逻辑贯穿数据从生成到传输的全流程,可通过三句关键结论概括:

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

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

操作目标:封装/解封装实现"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:

SDU 与 PDU 详解 - CSDN 博客

https://blog.csdn.net/wind19/article/details/4669637

网络通信 PDU 和 SDU 的区别_tcp 的 sdu-CSDN 博客

https://blog.csdn.net/zhangxiao93/article/details/51253933

PDU(Protocol Data Unit)协议数据单元 - CSDN 博客

https://blog.csdn.net/qq_36412526/article/details/119592956

LTE 学习笔记 ------ SDU 与 PDU_sdu lte-CSDN 博客

https://blog.csdn.net/u012800825/article/details/85291610

LTE 数据传输解析:从应用层到物理层的旅程 - CSDN 博客

https://blog.csdn.net/dxpqxb/article/details/111997057

计算机网络中的 PDU 与 SDU_pdu sdu-CSDN 博客

https://blog.csdn.net/weixin_43790779/article/details/130390042

计算机网络 - ISO/OSI 模型各层 PDU_计算机网络 pdu-CSDN 博客

https://blog.csdn.net/m0_74078647/article/details/143449578

计算机网络分层结构 - 薛定谔的AC - 博客园

https://www.cnblogs.com/againss/p/18310419

2026-02-17 21:25:59
鹿晗把世界杯听成了什么
燕云十六声辟邪钱袋任务攻略