四层模型通常指的是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头。这个头包含:

      • 源IP192.168.1.10

      • 目标IP93.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,目标IP 192.168.1.10)。

    • 网络接口层加上MAC头(源MAC为服务器网关,目标MAC经过路由后最终指向你的电脑)。

第四阶段:最终呈现

数据包原路返回,到达你的电脑。

  • 你的网卡捕获数据帧,逐层拆包

  • 传输层发现端口 54321 是浏览器在监听,将数据交给浏览器。

  • 应用层浏览器解析HTML代码,渲染出网页。

至此,一次完整的网络通信完成。

总结

  • 发送时:数据从上到下(应用层 → 网络接口层),每一层都在原始数据前加上头部信息(Header),这个过程叫封装

  • 接收时:数据从下到上(网络接口层 → 应用层),每一层拆解对应的头部,交给上一层处理,这个过程叫解封装

  • 分层的好处:每一层各司其职。比如,你换了一台新路由器(只涉及网络接口层和网际层),浏览器(应用层)和TCP连接(传输层)完全不受影响,不需要做任何改动。

这个四层模型是理解网络排错、网络安全以及云原生网络(如Docker、Kubernetes网络插件)的基础。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐