网络数据分层封装与解封过程的详细说明

发布于:2025-07-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

数据封装流程(发送端)

OSI层次 封装动作 数据单元 关键头部信息示例
应用层 添加应用层协议头部 报文(Message) GET /index.html HTTP/1.1
Host: www.example.com
表示层 数据加密/压缩 PPDU TLSv1.3 Record Layer
Content Type: Application Data
会话层 添加会话控制标识 SPDU SIP Call-ID: xyz@192.0.2.1
Session-ID: 1654873295
传输层 添加端口号/控制标识 段/数据报(Segment) TCP: [源端口12345][目标端口80][序列号1]
UDP: [源端口53][目标端口53][长度76]
网络层 添加IP地址/路由信息 包(Packet) [源IP 192.168.1.100]
[目标IP 93.184.216.34]
[TTL 64]
数据链路层 添加MAC地址/帧控制 帧(Frame) [目标MAC 00:1A:2B:xx:xx]
[源MAC 0C:54:15:yy:yy]
[类型 0x0800]
物理层 信号转换 比特(Bits) 10101011... → 曼彻斯特编码/光脉冲

关键头部字段解析表

头部字段 核心作用 典型值变化/示例
TTL 防止路由环路 每过1路由器减1:64→63→62
协议号 标识上层协议 TCP=6, UDP=17, ICMP=1
序列号 TCP可靠性保证 首字节Seq=1 → 下一包Seq=1481
CRC 帧完整性校验 计算所有字节的哈希值

HTTP请求封装全流程示例

处理阶段 数据变化
原始数据 GET /index.html HTTP/1.1
应用层封装 [HTTP头] GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n
传输层封装 [TCP头][源端口:12345][目标端口:80][Seq=100] + 应用数据
网络层封装 [IP头][源IP:192.168.1.100][目标IP:93.184.216.34][TTL=64] + TCP段
链路层封装 [帧头][目标MAC][源MAC][类型0x0800] + IP包 + [CRC校验]
物理层转换 01101010 → 网线电压/光脉冲

数据解封(接收端)

物理层 → 接收比特流
数据链路层 → 校验CRC+拆帧头
网络层 → IP目标地址分析
传输层 → TCP段重组
会话层 → 会话ID验证
表示层 → 数据解密
应用层 → 交付原始数据

完整HTTP请求封装示例

​原始应用数据​:GET /index.html HTTP/1.1
​逐层封装结果​:

# 应用层添加HTTP头
[HTTP] GET /index.html HTTP/1.1\r\nHost: www.example.com\r\n

# 表示层TLS加密
[TLS] Content-Type: application_data\nEncrypted_data: x7F2E...

# 传输层TCP封装
[TCP头][源端口:12345][目标端口:80][Seq=100][Win=65535]

# 网络层IP封装
[IP头][源IP:192.168.1.100][目标IP:93.184.216.34][TTL=64]

# 数据链路层成帧
[帧头][目标MAC:00-1A...][源MAC:0C-54...][Type:0x0800][数据][CRC:0xA7B3]

# 物理层转换
01101010 → 网线差分电压/光纤光脉冲

逆向解封​:接收端从物理层开始逐层剥离头部,最终将原始数据递交给Web服务器程序。

分层封装的核心价值

​职责分离​:各层独立升级(如HTTP/3替换TCP为QUIC)
​灵活组网​:同一物理层可承载不同链路层协议(如以太网/PPP)
​故障定位​:通过分析特定层头部快速定位问题(如TTL=0指示路由环路)


网站公告

今日签到

点亮在社区的每一天
去签到