教学目标
📖 课前导入
当你在微信上发送一条消息"你好"给朋友时,这两个字并不是直接"飞"到朋友手机上的。
它要经过一段奇妙的旅程:先被层层"打包",变成一串0和1的电信号,穿越网线、交换机、路由器,跨越城市甚至国家,到达目的地后再被层层"拆包"还原。
这个过程就是数据的封装与解封装——理解它,你就真正理解了网络通信的本质!
📚 一、数据封装的完整过程
以你在浏览器中访问 www.baidu.com 为例,看看数据是如何被一层层封装的:
应用层:生成HTTP请求
浏览器生成一个HTTP请求报文:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Chrome/120.0
Accept: text/html
📦 此时的数据单元:应用层数据(Data)
传输层:添加TCP头部
传输层在数据前面加上TCP头部,包含源端口号和目的端口号:
TCP头部
源端口:49152
目的端口:80
序号、确认号...
应用层数据
📦 此时的数据单元:TCP段(Segment) = TCP头 + 应用数据
网络层:添加IP头部
网络层在TCP段前面加上IP头部,包含源IP和目的IP地址:
IP头部
源IP:192.168.1.100
目的IP:14.119.104.189
TTL、协议类型...
TCP头
数据
📦 此时的数据单元:IP数据包(Packet) = IP头 + TCP段
数据链路层:添加帧头和帧尾
数据链路层在IP包的前后分别加上帧头(含MAC地址)和帧尾(CRC校验码):
帧头
目的MAC
源MAC
类型
IP头
TCP头
数据
帧尾
CRC
📦 此时的数据单元:以太网帧(Frame) = 帧头 + IP包 + 帧尾
物理层:转换为比特流
物理层将帧转换为电信号(或光信号、无线电波),在传输介质上发送:
📦 此时的数据单元:比特流(Bit Stream)——物理介质上的电气信号
封装的本质就是"套娃"
每一层都在上一层交下来的数据前面(有时后面也加)添加自己的控制信息(头部/尾部),就像一个俄罗斯套娃。
这些头部信息包含了该层协议工作所需的关键数据:
- • 传输层头部:端口号(区分哪个应用程序)
- • 网络层头部:IP地址(区分哪台主机)
- • 数据链路层头部:MAC地址(区分哪个网卡接口)
数据封装与解封装过程动画
生动展示一条HTTP请求从浏览器出发,经过五层封装变成比特流,再经过五层解封装到达服务器的完整过程
生动展示一条HTTP请求从浏览器出发,经过五层封装变成比特流,再经过五层解封装到达服务器的完整过程
📚 二、数据在网络中的完整旅程
以电脑A访问百度服务器为例,数据要经过交换机和路由器中转:
🌐 数据传输路径
各设备的处理过程
📍 你的电脑(发送方):五层全处理
应用层生成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层(看MAC),路由器处理1-3层(看IP),端设备处理全部五层。
三种地址:端口号(应用)、IP地址(主机)、MAC地址(接口),分别工作在4/3/2层。
关键规律:IP地址端到端不变,MAC地址逐跳改变。
🤔 课后思考
- 如果你的电脑发送一个数据包到另一个城市的服务器,中间经过3个路由器,那么这个数据包的MAC地址一共会改变几次?
- 为什么交换机只需要看MAC地址就够了?它不需要知道IP地址吗?
- 如果传输层使用的是UDP而不是TCP,封装过程有什么不同?
- 你觉得封装过程中添加的"头部信息"会不会让传输的数据量变大?这种"开销"值得吗?