四层模型TCP/IP协议栈
四层模型通常指的是TCP/IP协议栈,它是现代互联网(包括局域网和广域网)的基石。相比于OSI七层模型,它更简洁、实用。
四层模型结构
| 层序 | 名称 | 核心职责 | 常见协议/设备 |
|---|---|---|---|
| 4 | 应用层 | 为应用程序提供网络服务,定义数据格式和用户交互接口。 | HTTP, HTTPS, FTP, SMTP, DNS, SSH |
| 3 | 传输层 | 建立端到端的连接,负责数据的可靠传输、流量控制和差错校验。 | TCP, UDP |
| 2 | 网际层 (网络层) | 负责数据包的路由选择和转发,实现不同网络之间的通信。 | IP (IPv4/IPv6), ICMP, ARP |
| 1 | 网络接口层 (链路层) | 处理物理硬件(网卡、网线)的通信,负责数据帧的传输和物理地址寻址。 | Ethernet, Wi-Fi, 交换机, 网卡 |
例子:你在浏览器中输入 http://www.example.com 并回车
假设你的电脑(IP:192.168.1.10)通过Wi-Fi连接路由器,路由器连接互联网,目标服务器(IP:93.184.216.34)托管着 example.com。
第一阶段:数据封装(从你的电脑发出)
1. 应用层
-
动作:浏览器(HTTP客户端)构造一个HTTP请求。例如:
GET /index.html HTTP/1.1,并附上域名Host: www.example.com。 -
产出:将这段文本数据交给下一层。
2. 传输层
-
动作:系统选择使用TCP协议(因为HTTP需要可靠连接)。
-
浏览器会先进行DNS解析(这里简化),获取到目标IP
93.184.216.34。 -
TCP协议将HTTP数据包分割成适合传输的段(Segment)。
-
它会加上一个TCP头。这个头包含:
-
源端口:随机生成的,比如
54321(用来让服务器知道回复给哪个进程)。 -
目标端口:
80(HTTP的标准端口)。 -
序列号、校验和等用于确保可靠传输的信息。
-
-
-
产出:TCP段(TCP Header + HTTP Data)。
3. 网际层
-
动作:IP协议接手。
-
它将TCP段整体打包成一个IP数据包。
-
加上IP头。这个头包含:
-
源IP:
192.168.1.10。 -
目标IP:
93.184.216.34。
-
-
-
产出:IP数据包(IP Header + TCP Segment)。
4. 网络接口层
-
动作:这是离硬件最近的一层。
-
由于
192.168.1.10和93.184.216.34不在同一个子网,数据包不能直接发给服务器,必须发给网关(路由器)(IP:192.168.1.1)。 -
系统通过ARP协议获取路由器网卡的物理地址(MAC地址)。
-
它将IP数据包封装成帧,加上帧头和帧尾。帧头包含:
-
源MAC:你电脑网卡的MAC地址(如
AA:BB:CC:DD:EE:01)。 -
目标MAC:路由器网卡的MAC地址(如
AA:BB:CC:DD:EE:02)。
-
-
-
产出:比特流(由0和1组成的电信号或无线电波),通过网线或Wi-Fi发送出去。
第二阶段:流转与路由
-
路由器(网络层设备) 收到这些比特流。
-
路由器解析网络接口层,看到目标MAC是自己,确认收下。
-
它拆掉帧头,露出IP数据包。
-
路由器查看网际层的IP头,发现目标IP是
93.184.216.34。 -
它查询自己的路由表,找到通往互联网的最优出口,将数据包转发给下一跳(比如运营商的交换机)。
-
关键点:在这个过程中,源IP和目标IP始终不变,但每一跳的源MAC和目标MAC都会随着链路的改变而被重新封装。
-
第三阶段:解封装(到达服务器)
数据包最终到达目标服务器 93.184.216.34。
1. 网络接口层
-
服务器的网卡收到比特流。
-
检查MAC地址(假设是服务器网卡的MAC),匹配成功,去掉帧头,将IP数据包交给网际层。
2. 网际层
-
服务器检查IP头,发现目标IP
93.184.216.34与自己匹配。 -
确认无误后,去掉IP头,将剩下的TCP段交给传输层。
3. 传输层
-
服务器看到TCP头,发现目标端口是
80。 -
它将这个数据段交给监听80端口的Web服务器软件(如Nginx或Apache)。
-
TCP协议还会进行三次握手确认(第一次握手就是这里),确保连接建立。
4. 应用层
-
Web服务器软件解析HTTP请求:
GET /index.html。 -
它找到对应的HTML文件内容。
-
此时,服务器开始反向的“封装”过程:
-
应用层返回 HTTP响应(
200 OK+ HTML内容)。 -
传输层加上TCP头(源端口80,目标端口54321)。
-
网际层加上IP头(源IP
93.184.216.34,目标IP192.168.1.10)。 -
网络接口层加上MAC头(源MAC为服务器网关,目标MAC经过路由后最终指向你的电脑)。
-
第四阶段:最终呈现
数据包原路返回,到达你的电脑。
-
你的网卡捕获数据帧,逐层拆包。
-
传输层发现端口
54321是浏览器在监听,将数据交给浏览器。 -
应用层浏览器解析HTML代码,渲染出网页。
至此,一次完整的网络通信完成。
总结
-
发送时:数据从上到下(应用层 → 网络接口层),每一层都在原始数据前加上头部信息(Header),这个过程叫封装。
-
接收时:数据从下到上(网络接口层 → 应用层),每一层拆解对应的头部,交给上一层处理,这个过程叫解封装。
-
分层的好处:每一层各司其职。比如,你换了一台新路由器(只涉及网络接口层和网际层),浏览器(应用层)和TCP连接(传输层)完全不受影响,不需要做任何改动。
这个四层模型是理解网络排错、网络安全以及云原生网络(如Docker、Kubernetes网络插件)的基础。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)