OSI模型中协议数据单元(PDU)

OSI模型中协议数据单元(PDU)

协议数据单元(Protocol Data Unit, PDU)是网络通信中每一层协议处理的数据单位,其内容和格式由特定层的协议定义。PDU在不同OSI层次中有不同的名称和结构,体现了分层模型的核心思想:每一层为上层提供服务,并利用下层的服务传递数据。

OSI各层PDU的名称与封装关系

OSI层 PDU名称 组成说明
应用层 (Layer 7) 报文/消息 (Message) 用户数据(如HTTP请求、FTP文件)
表示层 (Layer 6) 报文 (Message) 加密/压缩后的数据(如SSL/TLS加密的HTTP数据)
会话层 (Layer 5) 报文 (Message) 建立/维护会话的数据(如RPC调用、NetBIOS会话)
传输层 (Layer 4) 段 (Segment) TCP/UDP数据,添加端口号、校验和(如TCP段包含序列号、窗口大小)
网络层 (Layer 3) 包 (Packet) IP数据包,包含源/目的IP地址(如IPv4包)
数据链路层 (Layer 2) 帧 (Frame) 以太网帧,添加MAC地址、CRC校验(如Ethernet II帧)
物理层 (Layer 1) 比特流 (Bits) 二进制信号(如电脉冲、光信号)

PDU的封装与解封装过程

数据在发送时从上到下逐层封装,接收时从下到上逐层解封装:

发送方(封装流程)

应用层生成原始数据(如HTTP请求)。

  • 传输层(TCP/UDP)添加端口号、校验和,形成Segment。

  • 网络层(IP)添加源/目的IP地址,形成Packet。

  • 数据链路层(以太网)添加MAC地址、帧头/尾,形成Frame。

  • 物理层将帧转为比特流,通过介质传输。

接收方(解封装流程)

  • 物理层接收比特流,还原为帧。

  • 数据链路层校验帧,去除MAC头,提取Packet。

  • 网络层检查IP地址,去除IP头,提取Segment。

  • 传输层验证端口和校验和,去除TCP/UDP头,传递数据给应用层。

关键点

  • 每层只处理本层的PDU

    • 例如,路由器(网络层设备)只处理IP包,不关心TCP段或以太网帧的内容。

    • 交换机(数据链路层设备)只处理MAC帧,不解析IP包。

  • PDU的命名差异

    • TCP/IP模型中:

      • 网络接口层PDU称Frame(帧)。

      • 互联网层(IP)PDU称Packet(包)。

      • 传输层(TCP/UDP)PDU仍称Segment(段)。

  • 封装开销

    • 每层添加的头部/尾部会增加传输开销(如以太网帧头14字节,IP头20字节,TCP头20字节)。

实例分析(HTTP over TCP/IP)

假设用户访问一个网页,PDU变化如下:

  • 应用层:HTTP请求(GET /index.html) → Message。

  • 传输层:添加TCP头(源端口、目的端口80) → Segment。

  • 网络层:添加IP头(源IP 192.168.1.2,目的IP 93.184.216.34) → Packet。

  • 数据链路层:添加以太网头(源MAC 00:1A:2B:3C:4D:5E,目的MAC 网关MAC) → Frame。

  • 物理层:转为比特流发送。

相关推荐
CaliXz2 分钟前
野草云防火墙风险分析及 Docker 使用注意事项
运维·docker·容器
计算机学无涯4 分钟前
Docker 命令简写配置
运维·docker·容器
sniper_fandc13 分钟前
网络编程—Socket套接字(TCP)
网络·tcp/ip·javaee
the_nov13 分钟前
19.TCP相关实验
linux·服务器·网络·c++·tcp/ip
kk小源21 分钟前
Docker常用操作教程
运维·docker·容器
林中伊人37 分钟前
家庭路由器wifi设置LAN2LAN和LAN2WAN
网络·路由器
Y淑滢潇潇1 小时前
RHCSA Linux 系统创建文件
linux·运维·服务器
XYN611 小时前
【嵌入式学习3】基于python的tcp客户端、服务器
服务器·开发语言·网络·笔记·python·学习·tcp/ip
the_nov1 小时前
20.IP协议
linux·服务器·网络·c++·tcp/ip
奔跑的废柴2 小时前
Jenkins学习(B站教程)
运维·学习·jenkins