理论课40分钟

7课:数据的旅程

封装与解封装过程

教学目标

1理解数据在各层的封装过程
2掌握PDU的概念
3能描述数据从发送到接收的全过程

📖 课前导入

当你在微信上发送一条消息"你好"给朋友时,这两个字并不是直接"飞"到朋友手机上的。

它要经过一段奇妙的旅程:先被层层"打包",变成一串0和1的电信号,穿越网线、交换机、路由器,跨越城市甚至国家,到达目的地后再被层层"拆包"还原。

这个过程就是数据的封装与解封装——理解它,你就真正理解了网络通信的本质!

📚 一、数据封装的完整过程

以你在浏览器中访问 www.baidu.com 为例,看看数据是如何被一层层封装的:

5

应用层:生成HTTP请求

浏览器生成一个HTTP请求报文:

GET / HTTP/1.1

Host: www.baidu.com

User-Agent: Chrome/120.0

Accept: text/html

📦 此时的数据单元:应用层数据(Data)

4

传输层:添加TCP头部

传输层在数据前面加上TCP头部,包含源端口号和目的端口号:

TCP头部

源端口:49152

目的端口:80

序号、确认号...

应用层数据

📦 此时的数据单元:TCP段(Segment) = TCP头 + 应用数据

3

网络层:添加IP头部

网络层在TCP段前面加上IP头部,包含源IP和目的IP地址:

IP头部

源IP:192.168.1.100

目的IP:14.119.104.189

TTL、协议类型...

TCP头

数据

📦 此时的数据单元:IP数据包(Packet) = IP头 + TCP段

2

数据链路层:添加帧头和帧尾

数据链路层在IP包的前后分别加上帧头(含MAC地址)和帧尾(CRC校验码):

帧头

目的MAC

源MAC

类型

IP头

TCP头

数据

帧尾

CRC

📦 此时的数据单元:以太网帧(Frame) = 帧头 + IP包 + 帧尾

1

物理层:转换为比特流

物理层将帧转换为电信号(或光信号、无线电波),在传输介质上发送:

0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 1 ...

📦 此时的数据单元:比特流(Bit Stream)——物理介质上的电气信号

知识点

封装的本质就是"套娃"

每一层都在上一层交下来的数据前面(有时后面也加)添加自己的控制信息(头部/尾部),就像一个俄罗斯套娃。

这些头部信息包含了该层协议工作所需的关键数据:

  • 传输层头部:端口号(区分哪个应用程序)
  • 网络层头部:IP地址(区分哪台主机)
  • 数据链路层头部:MAC地址(区分哪个网卡接口)

数据封装与解封装过程动画

生动展示一条HTTP请求从浏览器出发,经过五层封装变成比特流,再经过五层解封装到达服务器的完整过程

8:30
数据封装与解封装过程动画推荐视频8:30

生动展示一条HTTP请求从浏览器出发,经过五层封装变成比特流,再经过五层解封装到达服务器的完整过程

📚 二、数据在网络中的完整旅程

以电脑A访问百度服务器为例,数据要经过交换机和路由器中转:

🌐 数据传输路径

你的电脑192.168.1.100
交换机
路由器192.168.1.1
互联网
百度服务器14.119.104.189

各设备的处理过程

📍 你的电脑(发送方):五层全处理

应用层生成HTTP请求 → 传输层加TCP头 → 网络层加IP头 → 数据链路层加帧头帧尾 → 物理层发送比特流

📍 交换机:只处理1-2层

物理层接收比特流 → 数据链路层查看帧头中的MAC地址 → 根据MAC地址表转发 → 物理层发出

⚡ 交换机不会查看IP地址!它只"认识"MAC地址。

📍 路由器:处理1-3层

物理层接收 → 数据链路层解帧 → 网络层查看IP地址,查路由表选择下一跳 → 数据链路层重新封帧(MAC地址更新!)→ 物理层发出

⚡ 路由器每经过一跳,帧头中的MAC地址会改变,但IP地址不变!

📍 百度服务器(接收方):五层全处理

物理层接收比特流 → 数据链路层去帧头帧尾 → 网络层去IP头 → 传输层去TCP头 → 应用层获得HTTP请求并处理

注意

关键概念:IP地址和MAC地址的变化

数据在网络中传输时:

IP地址(源和目的)不变——始终是"你的电脑"和"百度服务器"的IP

MAC地址(源和目的)每跳都变——每经过一个路由器就更新为当前链路两端的MAC地址

类比:你从北京坐高铁到上海,出发地(北京)和目的地(上海)不变 = IP不变。但每一段路程的列车号不同 = MAC地址变化。

📚 三、三种地址的层次关系

🚪

端口号

传输层(第4层)

标识主机上的哪个应用程序

• 80 = HTTP网页

• 443 = HTTPS

• 21 = FTP

• 53 = DNS

范围:0~65535

🏠

IP地址

网络层(第3层)

标识网络中的哪台主机

• 逻辑地址,可以更改

• 全球唯一(公网IP)

• 32位(IPv4)

• 如:192.168.1.100

由网络管理员分配

💳

MAC地址

数据链路层(第2层)

标识网络中的哪个网卡接口

• 物理地址,出厂固定

• 全球唯一

• 48位(6字节)

• 如:00:1A:2B:3C:4D:5E

由网卡厂商烧入

完整的寻址过程(类比快递)

MAC地址 = 每一段路上的快递车牌号(每一跳都变)

IP地址 = 快递面单上的收件地址(全程不变)

端口号 = 收件人是"张三/502室"(精确到具体的人/应用)

✅ 课堂小测

随堂测验

1/5

数据从发送方到接收方,封装的顺序是?

📋 本课小结

1

封装:发送方从应用层到物理层逐层添加头部信息,数据→段→包→帧→比特流。

2

解封装:接收方从物理层到应用层逐层去除头部信息,还原原始数据。

3

中间设备:交换机处理1-2层(看MAC),路由器处理1-3层(看IP),端设备处理全部五层。

4

三种地址:端口号(应用)、IP地址(主机)、MAC地址(接口),分别工作在4/3/2层。

5

关键规律:IP地址端到端不变,MAC地址逐跳改变。

🤔 课后思考

  1. 如果你的电脑发送一个数据包到另一个城市的服务器,中间经过3个路由器,那么这个数据包的MAC地址一共会改变几次?
  2. 为什么交换机只需要看MAC地址就够了?它不需要知道IP地址吗?
  3. 如果传输层使用的是UDP而不是TCP,封装过程有什么不同?
  4. 你觉得封装过程中添加的"头部信息"会不会让传输的数据量变大?这种"开销"值得吗?