四层模型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头。这个头包含:

      • 源IP192.168.1.10

      • 目标IP93.184.216.34

  • 产出:IP数据包(IP Header + TCP Segment)。

4. 网络接口层

  • 动作:这是离硬件最近的一层。

    • 由于 192.168.1.1093.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网络插件)的基础。

相关推荐
Alter12302 分钟前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
王木风15 分钟前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
槑槑紫23 分钟前
windows系统装轻量版linux开发
linux·运维·服务器
yyyyy_abc27 分钟前
子网掩码是什么
网络·智能路由器
byte轻骑兵32 分钟前
【HID】规范精讲[14]: 蓝牙HID流量规格配置实战——鼠标、键盘与手柄的QoS优化指南
服务器·计算机外设·人机交互·键盘·hid
9命怪猫41 分钟前
[K8S小白问题集] - Calico好在哪里?
网络·云原生·容器·kubernetes
齐潇宇41 分钟前
k8s-Helm管理器
linux·运维·云原生·容器·kubernetes
tedcloud1231 小时前
ppt-master部署教程:快速搭建智能演示文稿系统
服务器·人工智能·系统架构·游戏引擎·powerpoint
go不是csgo1 小时前
s01 搭建第一个对话智能体
服务器·网络·python·ai
小王C语言2 小时前
Windows和Linux之间文件互传
linux·运维·服务器