🌐 网络总共分几层?
最常见、最广泛使用的模型有两个:
✅ 一、OSI 七层模型(理论模型)
| 层级 | 名称 | 主要作用 |
|---|---|---|
| 7️⃣ 应用层 | 用户应用程序(如浏览器、邮件) | |
| 6️⃣ 表示层 | 数据格式转化、加密解密 | |
| 5️⃣ 会话层 | 会话管理、建立/保持连接 | |
| 4️⃣ 传输层 | 数据传输控制(如 TCP/UDP) | |
| 3️⃣ 网络层 | 路由寻址、IP 地址(如 IP 协议) | |
| 2️⃣ 数据链路层 | 数据帧传输、MAC 地址 | |
| 1️⃣ 物理层 | 物理传输(电缆、光纤、无线等) |
✅ 二、TCP/IP 四层模型(工程实践中更常用)
| TCP/IP 层级 | 大致对应 OSI 层 | 代表协议 |
|---|---|---|
| 应用层 | OSI的7/6/5层 | HTTP、FTP、DNS、SMTP |
| 传输层 | OSI的4层 | TCP、UDP |
| 网络层 | OSI的3层 | IP、ICMP |
| 网络接口层 | OSI的2+1层 | Ethernet、Wi-Fi、PPP |
🧠 实际开发中,大多数工程师更常说的是 TCP/IP 四层模型,因为它更贴近现实世界中的协议实现。
🤝 它们之间的关系:分层协作
网络协议栈采用“层层封装、逐层处理”的方式协同工作。
📦 每层只做自己该做的事:
- 应用层:和你写的程序有关(浏览器、API)
- 传输层:保证数据如何传输(TCP or UDP)
- 网络层:找到对方机器(用 IP 地址)
- 链路层:实际如何传到那台机器(如走哪个网口、哪根网线)
🧪 举一个完整的实际例子(你访问网页)
你打开浏览器输入:https://www.example.com
浏览器背后做了这些事(分层协作):
| 层 | 发生的事情 |
|---|---|
| 🟩 应用层 | 发起一个 HTTPS 请求,请求 example.com 首页 |
| 🟨 传输层 | 用 TCP 建立连接(三次握手),确保数据完整、可靠 |
| 🟧 网络层 | 查找目标 IP 地址(DNS + 路由表),发往93.184.216.34 |
| 🟥 链路层 | 将数据封装为以太网帧,通过 Wi-Fi 或网线发出去 |
到达服务器后,服务器也是按这些层反过来处理:
链路层解帧 → 网络层识别地址 → 传输层还原数据 → 应用层处理请求并返回响应
🔁 数据是怎么“传递”的?
👉 发送方:
应用层 → 传输层 → 网络层 → 链路层 → 物理传输
👈 接收方:
物理层 → 链路层 → 网络层 → 传输层 → 应用层
就像是“套娃”一样,数据被一层层包裹发出去,到对方后再一层层拆开取出。
🎯 总结(你必须记住的)
| 层 | 功能关键词 | 举例 |
|---|---|---|
| 应用层 | 软件接口 | HTTP、SMTP、FTP |
| 传输层 | 数据完整性 | TCP、UDP |
| 网络层 | 找地址 | IP、ICMP |
| 链路层 | 找邻居 | Ethernet、Wi-Fi |
| 物理层 | 真实传输 | 网线、电信号、无线电波 |