当前位置: 首页 > java >正文

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

数据封装流程(发送端)

OSI层次封装动作数据单元关键头部信息示例
应用层添加应用层协议头部报文(Message)GET /index.html HTTP/1.1
Host: www.example.com
表示层数据加密/压缩PPDUTLSv1.3 Record Layer
Content Type: Application Data
会话层添加会话控制标识SPDUSIP 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指示路由环路)

http://www.xdnf.cn/news/15966.html

相关文章:

  • 安装pytorch(cpu版)
  • 《C++》范围 for 循环,空指针nullptr
  • RSTP协议
  • HOT100——图篇Leetcode207. 课程表
  • Linux C 多线程基本操作
  • 【LuckiBit】macOS/Linux 常用命令大全
  • Mac上安装Claude Code的步骤
  • 完整的 SquareStudio 注册登录功能实现方案:已经烧录到开发板正常使用
  • OpenCV中特征匹配算法GMS(Grid-based Motion Statistics)原理介绍和使用代码示例
  • ZooKeeper学习专栏(三):ACL权限控制与Zab协议核心原理
  • 基于ECharts的电商销售可视化系统(数据预测、WebsSocket实时聊天、ECharts图形化分析、缓存)
  • CMake与catkin_make的find_package()命令使用说明
  • java和ptyhon对比
  • 多片RFSoC同步,64T 64R
  • 网络数据编码技术及其应用场景的全面解析
  • Spring Boot注解详解
  • 抽象类不能实例化原因
  • 自反馈机制(Self-Feedback)在大模型中的原理、演进与应用
  • ANSYS 2025 R1软件下载及安装教程|附安装文件
  • Dynamics 365 Contact Center是什么
  • 【Elasticsearch】settings
  • 【图论】CF——B. Chamber of Secrets (0-1BFS)
  • 讯飞输入法3.0.1742功能简介
  • node.js 为什么要装 express组件
  • DevCon 6记录
  • 数据库和数据仓库的区别
  • 轮状太空城的科学依据浅谈
  • ROS 与 Ubuntu 版本的对应关系
  • 热室机械手市场报告:智能装备推动高温制造自动化升级
  • 文远知行推出与联想共研的100%车规级HPC 3.0计算平台