- # why
- 协议栈的底层原理
- # what
- **协议栈(Protocol Stack)** 就是一组分层组织的通信协议,它们协同完成“数据从一台计算机传到另一台”的任务。**TCP/IP**定义了数据如何在网络间传输。
- **TCP/IP packet**(TCP/IP数据包)是网络中数据传输的基本单位,用于在网络中传输数据。它是由TCP/IP协议栈中的协议封装生成的。TCP/IP packet 就是用来实际承载和传输这些数据的容器。
- ### 🎂 类比解释:协议栈像“网络蛋糕”
- 想象一块「网络蛋糕」有很多层,每一层都负责一部分工作,最底层是硬件(比如网线、Wi-Fi),越往上走,越接近用户看到的内容(网页、聊天消息等):
1. **最上层(应用层)**:你在用的程序,比如浏览器、微信、邮箱
2. **中间几层(传输层、网络层)**:保证数据准确无误地传送到目标(负责打包、加地址、控制顺序)
3. **最底层(链路层、物理层)**:用网线、无线电波实际发送信号
- # how
- ### 🧱 TCP/IP 协议栈的四层模型(现实中最常用):
| 层级 | 名称 | 作用 | 举例 |
| --- | ------------------------------ | -------------- | -------------------- |
| 4 | 应用层 | 面向用户,处理数据格式 | HTTP、FTP、DNS、SMTP |
| 3 | 传输层 | 建立连接,确保数据完整性 | TCP、UDP |
| 2 | 网络层 | 路由与寻址,决定路径 | IP、ICMP |
| 1 | 链路层(网络接口层) | 和硬件打交道,负责局域网通信 | Ethernet、Wi-Fi、MAC地址 |
| | 👉 数据就是从**上往下封装**、从**下往上传输**的。 | | |
### 📦 协议栈工作流程举例:
你在浏览器中打开 `www.example.com`,这个过程协议栈是这么干活的:
1. **应用层**(HTTP):生成网页请求数据。
2. **传输层**(TCP):分段数据、编号、加校验。
3. **网络层**(IP):加上目标IP地址,准备发出。
4. **链路层**(以太网/Wi-Fi):变成电信号,通过路由器发送。
到了服务器那边,再从底层**逐层解开**,还原出你的请求,送到网站程序处理。
- # how good
- [[IO-Link协议栈]]
- # Ref.