一、发送方:数据打包(从上往下)
1. 你打开浏览器输入 www.baidu.com → 应用层
浏览器构造了一个“我要看百度首页”的请求,这个请求按照 HTTP 协议 写成固定格式的文本。这个文本就是“货物”。
2. 传输层:把大货物切成小块,写上“收件人门牌号”
你的电脑发现这个请求可能很大(比如几 KB),于是把它切分成多个小段(每个段一般不超过 1460 字节)。
在每个小段外面套上一个“传输层信封”,上面写上:
源端口:你的浏览器随机占用的一个数字,比如
54321(相当于你家的房间号)。目的端口:Web 服务的固定端口
80(相当于百度公司的“前台接待室”)。
如果使用 TCP 协议,还会给每个小段编号,并加上校验码,保证对方能按顺序拼起来,且不会丢件。
这一步完成后,数据单元叫 TCP 段。
3. 网络层:写上“收件人小区地址”
在每个 TCP 段外面再套一个 “网络层信封”,上面写:
源 IP 地址:你家的公网 IP,例如
203.0.113.8。目的 IP 地址:百度服务器的 IP,例如
110.242.68.66。
这相当于写了“某某城市某某街道某某号”。同时还会写上 TTL(生存时间),防止包裹在网络里无限转圈。
这一步完成后,数据单元叫 IP 数据报(或包)。
4. 数据链路层:写上“小区内门牌号”
你的电脑通过 Wi‑Fi 或网线连接到家里的路由器。为了在局域网内找到路由器,需要在 IP 包外面再套一个 “数据链路层信封”,上面写:
源 MAC 地址:你电脑网卡自带的唯一物理地址,例如
AA:BB:CC:DD:EE:01。目的 MAC 地址:你家路由器的物理地址,例如
AA:BB:CC:DD:EE:02。
这相当于在小区内部,写上你家楼号和单元号,快递员(交换机)才能准确把包裹送到你家门口。
这一步完成后,数据单元叫 帧。
5. 物理层:转换成电信号或光信号发送
网卡把最终的帧(一堆 0 和 1)转换成电信号(网线上电压变化)或无线电波(Wi‑Fi)。
这些信号通过网线或空气传输出去。
小结:数据就像俄罗斯套娃,每一层加一个信封。发送方从上往下层层封装。
二、网络传输:数据包的中转
1. 从电脑到路由器
你的电脑通过 Wi‑Fi 把无线电波发送给路由器。路由器收到后,从物理层向上解析到数据链路层,看到帧里的目的 MAC 地址是自己,就收下。
路由器剥掉数据链路层的信封,露出里面的 IP 数据报。
2. 路由器查表,决定下一跳
路由器看到目的 IP 是
110.242.68.66(百度),查自己的路由表,发现应该转发给运营商的某个设备(比如202.96.128.1)。于是路由器重新为这个 IP 包套上新的数据链路层信封:
源 MAC 改为路由器自己的 WAN 口 MAC。
目的 MAC 改为运营商下一跳设备的 MAC。
然后通过光纤或网线发送出去。
3. 经过多个路由器
数据包就这样从一个路由器跳到另一个路由器,每跳都重复上述过程:解帧 → 看 IP → 查表 → 重新封装帧 → 转发。
每经过一个路由器,IP 头里的 TTL 减 1,直到到达百度服务器。
4. 到达服务器
百度服务器的物理层收到信号,逐层解封。
当它剥到网络层,发现目的 IP 就是自己,于是把 IP 包交给传输层。
传输层看到目的端口是 80,知道这是给 Web 服务的,就把 TCP 段交给应用层。
应用层(HTTP)解析请求,准备响应数据。
三、接收方:数据解包(从下往上)
服务器生成响应数据(比如“欢迎来到百度”的 HTML),然后完全按照发送方的封装顺序,从应用层一直封装到物理层,发回给你的电脑。
你的电脑收到后,从物理层开始:
电信号 → 比特 → 帧 → 检查 MAC 地址是自己的 → 去掉帧头 → 得到 IP 包。
检查 IP 地址是自己的 → 去掉 IP 头 → 得到 TCP 段。
检查端口号
54321是浏览器用的 → 去掉 TCP 头 → 得到 HTTP 响应数据。浏览器拿到数据,渲染成你看到的网页。
四、关键概念通俗解释
五、数据通信过程一句话总结
发送方从应用层到物理层逐层加头封装,经过多个路由器逐跳转发,接收方从物理层到应用层逐层去头解封装,最终完成数据交换。
就像你寄快递:写内件清单(应用层)→ 装箱贴快递单(传输层)→ 写地址(网络层)→ 小区内贴门牌号(链路层)→ 交给快递员(物理层)→ 中转站(路由器)→ 朋友收到后逐层拆包拿到礼物。