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

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

网络数据分层封装全流程

数据封装流程(发送端)- CSDN优化版

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验证
表示层 → 数据解密
应用层 → 交付原始数据

核心封装技术精讲

1. 跨层协作机制

​ARP协议联动​:
当目标MAC未知时:

发送ARP广播:Who has 192.168.1.1? Tell 192.168.1.100
收到ARP响应:192.168.1.1 is at 00:1A:2B:xx:xx

MTU分片控制​:
以太网MTU=1500B时的TCP分片:

[IP头20B][TCP头20B][数据1460B] → 包1
[IP头20B][TCP头20B][剩余数据200B] → 包2

2. 完整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.lryc.cn/news/595417.html

相关文章:

  • 讯飞输入法3.0.1742功能简介
  • AI Agent开发学习系列 - langchain之LCEL(3):Prompt+LLM
  • 20250721
  • 【React】npm install报错npm : 无法加载文件 D:\APP\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
  • 2x2矩阵教程
  • kafka 日志索引 AbstractIndex
  • 前端包管理工具深度对比:npm、yarn、pnpm 全方位解析
  • maven下载地址以及setting.xml配置
  • 【科研绘图系列】R语言绘制棒棒图和哑铃图
  • Pytorch01:深度学习中的专业名词及基本介绍
  • k8s查看某个pod的svc
  • 【高等数学】第五章 定积分——第一节 定积分的概念与性质
  • PostgreSQL SysCache RelCache
  • OCR 身份识别:让身份信息录入场景更高效安全
  • 低代码/无代码平台如何重塑开发生态
  • 机器学习week3-分类、正则化
  • 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别
  • 141 个 LangChain4j Maven 组件分类解析、多场景实战攻略
  • Sklearn 机器学习 IRIS数据 理解分类报告
  • 从实践出发--探究C/C++空类的大小,真的是1吗?
  • bmsimilarity的打分 调试参数
  • 选择排序 冒泡排序
  • windows电脑给iOS手机安装ipa包的方法
  • 宝塔面板Nginx报错: IP+端口可以直接从访问,反向代理之后就504了 Gateway Time-out
  • Xilinx FPGA XCKU115‑2FLVA1517I AMD KintexUltraScale
  • 052_迭代器(Iterator / ListIterator)
  • The Survey of Few-shot Prompt Learning on Graph
  • Ubuntu 22.04编译安装Nginx 1.28
  • Vue3 面试题及详细答案120道 (1-15 )
  • 可变形卷积神经网络详解:原理、API与实战