数据包在OSI各层之间的封装与解封装过程

发布时间:2026/9/23 10:11:21

数据包在OSI各层之间的封装与解封装过程 一、一个值得思考的问题当你在浏览器中输入一个网址按下回车到网页内容呈现在屏幕上——数据在这个过程中经历了什么大多数人知道数据从网线发出去到了服务器再回来。但很少有人能说清楚数据在发送端从应用层一路向下每一层做了什么到了接收端又是怎么恢复成原始数据的这就是封装与解封装的过程。二、封装自上而下逐层添加控制信息数据在发送端从应用层开始逐层向下传递。每一层在收到上层数据后会加上自己的控制信息通常是头部Header然后交给下一层。这个过程叫做封装Encapsulation。2.1 各层数据单位的名称变化在封装过程中数据在不同层级有不同的名称层级数据单位名称说明应用层数据Data用户原始数据传输层数据段Segment添加TCP/UDP头部网络层数据包Packet添加IP头部数据链路层数据帧Frame添加MAC头部和FCS尾部物理层比特流Bit转换为电信号或光信号2.2 一个完整的封装流程场景你访问一个网页浏览器构造了一个HTTP请求请求首页内容。第一步应用层应用层HTTP协议构造请求报文textGET /index.html HTTP/1.1 Host: www.example.com User-Agent: Chrome/...这段文本就是原始数据。应用层把这个数据交给下一层传输层。此时数据单位称为数据Data第二步传输层传输层收到数据后根据应用层的要求选择TCP或UDP协议。假设使用的是TCP协议。传输层做三件事将数据分割成适合传输的“数据段”添加TCP头部源端口、目的端口、序列号、确认号等将数据段交给网络层TCP头部包含的关键字段源端口Source Port浏览器动态分配的端口号目的端口Destination Port80HTTP或443HTTPS序列号Sequence Number数据段编号用于接收端重组确认号Acknowledgment Number确认已收到的数据标志位FlagsSYN、ACK、FIN等控制标志此时数据单位称为数据段Segment第三步网络层网络层收到数据段后进行以下操作在数据段前面添加IP头部查询路由表决定从哪个网卡发出IP头部包含的关键字段源IP地址Source IP发送设备的IP地址目的IP地址Destination IP接收设备的IP地址TTLTime to Live数据包的生存时间协议号Protocol标识上层使用的是什么协议6TCP17UDP此时数据单位称为数据包Packet第四步数据链路层数据链路层收到数据包后进行以下操作在IP包前面添加MAC头部在IP包后面添加FCS帧校验序列尾部MAC头部包含的关键字段源MAC地址发送网卡的MAC地址目的MAC地址接收端或下一跳路由器的MAC地址类型Type标识上层协议0x0800IPv40x0806ARPFCS尾部包含CRC校验码用于接收端检测数据是否在传输过程中出错。此时数据单位称为数据帧Frame第五步物理层物理层收到数据帧后将数据帧转换为比特流0和1的序列通过物理介质网线、光纤、WiFi发送出去。此时数据单位称为比特流Bit三、一个形象的类比封装过程可以用寄快递来理解网络层类比说明应用层数据信件内容你真正想说的话传输层TCP/UDP头部信封写上寄件人和收件人姓名端口号网络层IP头部快递面单写上寄件地址和收件地址IP地址链路层MAC头部尾部快递包装贴上快递单号MAC地址和防拆封条校验码物理层快递车运输实际运送信件内容逐层被封装最终变成可运输的包裹。接收端收到后逐层拆开最终取出信件内容。四、解封装自下而上逐层剥离控制信息数据到达接收端后过程完全反过来——从物理层开始逐层向上每层剥离对应的控制信息最终恢复原始数据。这个过程叫做解封装De-encapsulation。4.1 解封装流程第一步物理层物理层收到比特流将其还原为数据帧交给数据链路层。第二步数据链路层数据链路层做三件事检查FCS校验码确认数据在传输过程中没有出错如果校验通过剥离MAC头部和FCS尾部查看MAC头部中的“类型”字段确定上层协议IPv4→交给网络层此时数据还原为数据包Packet第三步网络层网络层做三件事检查IP头部确认目的IP地址是否为本机剥离IP头部查看IP头部中的“协议”字段确定上层协议6TCP→交给传输层此时数据还原为数据段Segment第四步传输层传输层做三件事检查TCP头部确认端口号根据序列号重组数据段剥离TCP头部此时数据还原为数据Data第五步应用层应用层收到原始数据根据协议HTTP解析请求或响应最终呈现给用户。五、完整过程示意图text发送端封装 接收端解封装 ┌─────────────┐ ┌─────────────┐ │ 应用层 │ │ 应用层 │ │ HTTP请求 │ │ HTTP请求 │ │ 原始数据│ │ 原始数据│ └──────┬──────┘ └──────▲──────┘ │ 添加TCP头部 │ 剥离TCP头部 ┌──────▼──────┐ ┌──────┴──────┐ │ 传输层 │ │ 传输层 │ │ TCP头部 │ │ TCP头部 │ │ 数据 │ │ 数据 │ └──────┬──────┘ └──────▲──────┘ │ 添加IP头部 │ 剥离IP头部 ┌──────▼──────┐ ┌──────┴──────┐ │ 网络层 │ │ 网络层 │ │ IP头部 │ │ IP头部 │ │ TCP头部 │ │ TCP头部 │ │ 数据 │ │ 数据 │ └──────┬──────┘ └──────▲──────┘ │ 添加MAC头部FCS │ 剥离MAC头部和FCS ┌──────▼──────┐ ┌──────┴──────┐ │ 数据链路层 │ │ 数据链路层 │ │ MAC头部 │ │ MAC头部 │ │ IP头部 │ │ IP头部 │ │ TCP头部 │ │ TCP头部 │ │ 数据 FCS│ │ 数据 FCS│ └──────┬──────┘ └──────▲──────┘ │ 转换为比特流 │ 还原为帧 ┌──────▼──────┐ ┌──────┴──────┐ │ 物理层 │ ──────网线/光纤────→ │ 物理层 │ │ 比特流 │ │ 比特流 │ └─────────────┘ └─────────────┘六、封装与解封装的关键点6.1 为什么要在每一层加头部每一层的头部包含了对等层通信所需的控制信息。这些信息只在发送端和接收端的同一层之间有意义。举例IP头部只在网络层之间有意义。传输层不关心IP头部的内容它只负责处理TCP头部。路由器的网络层在转发数据包时只需要查看IP头部中的目的IP地址和TTL值。路由器不关心TCP头部的内容。6.2 对等层通信的逻辑在OSI模型中发送端的第N层和接收端的第N层之间存在“逻辑通信”。它们通过协议进行对话但实际上数据经过了所有下层。形象理解两个公司的老板通过秘书传递文件。老板之间是逻辑通信实际传递靠秘书逐层传递。每个秘书只负责自己这一层的工作。6.3 数据在不同层级看到的范围不同应用层看到的是原始数据传输层看到的是端口号和数据网络层看到的是IP地址和数据数据链路层看到的是MAC地址和数据每一层只关心自己需要的控制信息对上层的数据内容“透明”。最后封装与解封装是网络通信中最基本、最重要的过程之一。发送端自上而下逐层添加控制信息接收端自下而上逐层剥离控制信息。每一层只处理自己负责的信息对上层数据内容不关心。这种分层设计确保了网络的灵活性和可扩展性。理解了这个过程你就能理解数据从你的电脑发出去经过路由器、交换机最终到达服务器中间每一步发生了什么。
延伸阅读

更多相关文章

2026/9/20 1:37:51

价值流图优化AI提示工程:方法论与实战

1. 价值流图在提示工程中的核心价值作为一名在AI交互领域深耕多年的架构师,我深刻体会到价值流图(Value Stream Mapping)对于提示工程(Prompt Engineering)的系统性优化价值。传统软件开发中的价值流分析工具&#xff…

2026/9/20 1:37:59

Codex CLI斜杠命令:自然语言与CLI的高效融合

1. Codex CLI 与斜杠命令初探第一次接触Codex CLI时,我被它的斜杠命令(/commands)系统彻底惊艳到了。这个设计巧妙地将自然语言交互与传统命令行工具的高效性结合起来,创造了一种全新的开发体验。作为一名长期在终端里摸爬滚打的开…

2026/9/22 15:49:54

如何轻松抓取网页视频?猫抓浏览器扩展的完整使用指南

如何轻松抓取网页视频?猫抓浏览器扩展的完整使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 想要从网页中快速获取视频资源却不…

2026/9/23 10:08:04

亚远景-ASPICE 评估实践:VAL.1 确认,别把确认活动等同于系统测试

ASPICE SYS.5 系统验证,主要用来核对系统产出物能不能满足系统需求文档写出来的内容。ASPICE VAL.1 确认的目标,是确认产品在实际预期使用条件下,可以满足利益相关方的真实期望,重点面向用户使用场景、运行设计域 ODD。很多项目做…

2026/9/23 10:08:04

yy在线直播卡顿排查:3个代码坑点速查手册

yy在线直播卡顿排查:3个代码坑点速查手册 复制来的代码跑不通不知道怎么调,这是很多接手旧项目的开发者的噩梦。特别是处理 yy在线直播 这类高并发实时音视频业务时,一段看似简单的 WebSocket…

2026/9/23 10:08:04

阿里云ROS Terraform托管服务:企业级IaC运行时底座

1. ROS Terraform 托管服务不是“ROS机器人操作系统”的缩写,而是阿里云资源编排服务(Resource Orchestration Service)的官方命名刚看到标题里“ROS Terraform”这个组合,很多刚接触云基础设施的同学第一反应是:“ROS…

2026/9/23 10:08:04

Vue2核心特性与实战优化全解析

1. Vue2 核心特性解析Vue2作为前端开发的主流框架之一,其响应式系统和组件化设计彻底改变了传统DOM操作方式。我使用Vue2开发过十几个中大型项目后,发现新手最容易混淆的就是其核心特性之间的关联性。这里先拆解三个最关键的底层机制:响应式原…

2026/9/23 10:03:01

WorkBuddy 10个高效技能:自动化工作流实战指南

1. 为什么 WorkBuddy 这类工具值得认真对待1.1 从“又一个效率工具”到“真正能省时间的助手”我第一次接触 WorkBuddy 这个概念的时候,心里其实是有点抵触的。市面上打着“效率翻倍”旗号的工具太多了,大多数用两天就吃灰。但后来我在一个实际项目里被逼…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码