计算机网络】吃透 OSI 七层模型与 TCP/IP 协议栈

前言

做后端开发、服务器运维,网络是绕不开的基础。很多同学背了七层名字,却不懂分层的意义,不知道数据包从浏览器发出到服务器,每一层到底发生了什么封装。

分层思想核心:下层为上层提供服务,上层不用关心下层实现;层间低耦合,协议可独立替换 。 OSI 七层:理论标准 ;TCP/IP 四层:工业事实标准,互联网真实使用。
通信核心一句话:发送方从上到下逐层封装头部,接收方从下到上逐层解封装头部。

一、OSI 七层参考模型(自上向下:7~1 层)

PDU:协议数据单元,每一层传输的数据单元名称。

表格

层级 名称 PDU 核心职责 典型协议 / 技术 硬件设备
7 应用层 数据 Data 为应用程序提供网络接口,定义业务交互规则 HTTP、HTTPS、DNS、FTP、SMTP、SSH 网关、代理
6 表示层 数据 Data 数据格式转换、编码、加密解密、压缩解压 SSL/TLS、JPEG、ASCII 无
5 会话层 数据 Data 建立、维护、断开应用之间会话,同步会话断点 RPC、NetBIOS 无
4 传输层 段 Segment (TCP)/ 数据报 Datagram (UDP) 端到端进程通信,端口寻址,可靠 / 不可靠传输,流量控制 TCP、UDP 四层防火墙
3 网络层 数据包 Packet 跨网络寻址、路由选择、IP 分片重组,IP 地址 IP、ICMP、ARP、OSPF、BGP 路由器
2 数据链路层 帧 Frame 同一网段节点通信,MAC 寻址、差错校验、帧封装 Ethernet 以太网、PPP、VLAN 交换机、网桥
1 物理层 比特 Bit 传输 0/1 比特流;定义线缆、接口、电气信号标准 RJ45、光纤、Wi-Fi 802.11 集线器、中

逐层详解

7 层 应用层

面向应用程序,直接给软件提供网络能力。 浏览器发起 HTTP 请求、域名解析 DNS、文件传输 FTP 都在这一层。

HTTPS 本质:HTTP 应用层数据交给表示层 TLS 加密。

6 层 表示层

不负责传输,只处理数据本身格式。

  • 编码转换(ASCII、UTF-8)
  • 数据压缩、解压
  • SSL/TLS 加解密(HTTPS 加密发生在此层)
5 层 会话层

管理两端应用会话:建立会话、保活、断开会话、设置同步断点。 比如 RPC 远程调用、Windows 文件共享 NetBIOS。

很多教材里,TCP/IP 模型把会话层 + 表示层全部合并到应用层,这也是 OSI 和 TCP/IP 最大差异之一。

4 层 传输层【后端重点,面试高频】

主机到主机升级为进程到进程通信,引入端口号标识应用程序。 两大核心协议:TCP、UDP。

  • TCP:面向连接、可靠传输;三次握手建立连接、四次挥手断开;序列号、ACK 确认、重传、流量控制、拥塞控制。
  • UDP:无连接、不可靠;只做端口寻址,无确认、无重传;开销极小,DNS、直播、音视频、QUIC (HTTP3) 使用 UDP。
3 层 网络层

核心:IP 寻址 + 路由。IP 地址用来定位跨网段主机。

  • IP 协议:封装 IP 包头(源 IP、目标 IP、TTL)
  • ICMP:网络探测,ping 命令底层就是 ICMP
  • ARP:IP 转 MAC 地址(跨层协议,介于网络层与链路层之间)

路由器工作在网络层,根据 IP 地址查表转发数据包。

2 层 数据链路层

同一个局域网内部通信,使用 MAC 物理地址。 把上层数据包封装成帧,增加 MAC 头部 + CRC 校验,出错丢弃。交换机基于 MAC 地址转发帧。

1 层 物理层

没有数据包,只有 0、1 比特流。网线、光纤、无线电,只负责信号传输,不做差错校验。

二、TCP/IP 四层协议栈(互联网事实标准)

TCP/IP 四层(自上而下):应用层 → 传输层 → 网际层 (网络层) → 网络接口层 与 OSI 对应关系:

  1. 应用层:合并 OSI7、6、5 层(应用、表示、会话)
  2. 传输层:完全对应 OSI 第 4 层(TCP/UDP)
  3. 网际层(IP 层):对应 OSI 第 3 层(IP、ICMP、ARP)
  4. 网络接口层:合并 OSI 2、1 层(数据链路层 + 物理层)

很多计算机网络教材会使用五层简化模型(网络接口层拆成链路层 + 物理层),面试经常出现,注意区分。

三、数据包封装和解封装完整流程(浏览器访问网站实例)

场景:本机浏览器访问 https://www.baidu.com,完整封装过程(发送方,从上往下)

  1. 应用层:浏览器构造 HTTP 请求报文,交给下层;TLS 完成加密。
  2. 传输层:给数据加上 TCP 头部(源端口、目标端口、序列号),封装成 TCP 段。
  3. 网际层:增加 IP 头部(源 IP、目标 IP、TTL),封装成 IP 数据包。
  4. 网络接口层(链路层):增加以太网头部(源 MAC、目标 MAC)+CRC 校验,封装成帧。
  5. 物理层:转换成 0/1 比特流,通过网线发出。

接收服务器端,自下向上解封装:

  1. 物理层收到比特流,传给链路层。
  2. 链路层剥掉以太网帧头,校验 CRC,取出 IP 包,上交网络层。
  3. 网络层剥掉 IP 包头,判断目标 IP 是本机,取出 TCP 段上交传输层。
  4. 传输层剥掉 TCP 头部,校验序列号,重组数据,上交应用层。
  5. 应用层 TLS 解密,交给 Web 服务器处理 HTTP 请求。

重点记忆:每一层只处理属于自己的头部,上层数据对于下层来说就是透明载荷 (payload)

四、核心协议原理精讲(后端面试重点)

1. 传输层 TCP vs UDP

表格

对比 TCP UDP
连接 面向连接(三次握手建立) 无连接,无需预先握手
可靠性 可靠,确认应答、超时重传 不可靠,不保证送达、不校验顺序
控制机制 流量控制、拥塞控制、序列号 无
开销 头部 20~60 字节,开销大 头部固定 8 字节,极简
典型场景 HTTP/HTTPS、数据库连接、SSH DNS 查询、直播、语音通话、HTTP3 QUIC
TCP 核心机制
  1. 三次握手:建立双向连接,同步双方序列号。
  2. 四次挥手:双向关闭连接。
  3. 确认应答 ACK:收到数据返回确认。
  4. 超时重传:丢包自动重发。
  5. 流量控制:滑动窗口,防止发送方打崩接收方。
  6. 拥塞控制:慢启动、拥塞避免,防止网络过载。

2. 网际层 IP 协议

IP 只负责尽力转发,不保证可靠传输(可靠交给 TCP)。

  • IP 地址:逻辑地址,可以动态变化;MAC 是网卡固化物理地址。
  • TTL:生存时间,每经过一台路由器 TTL 减 1,TTL=0 丢弃,防止环路。
  • IP 分片:数据包超过链路 MTU(以太网默认 1500 字节),网络层分片,目标主机重组。

ARP:根据 IP 地址查询同一网段 MAC 地址;ARP 广播请求,单播应答。

3. 网络排查命令与分层对应(结合 Linux 命令)

  • 物理 / 链路层:查看网卡 ip a
  • 网络层连通性:ping(ICMP 协议)
  • 路由追踪:traceroute,定位网络中断在哪一跳
  • 端口连通性(传输层):telnet / curl,检测 TCP 端口
  • 抓包:tcpdump / wireshark,直接看各层报文,定位网络问题

五、OSI 七层 vs TCP/IP 协议栈核心对比

  1. OSI 七层 :ISO 国际组织定义,理论模型,分层精细,会话、表示独立拆分;没有完整配套协议栈。
  2. TCP/IP 四层 :由互联网发展诞生,实践优先,合并上层三层;整套协议簇,互联网唯一事实标准。

一句话总结:OSI 是教科书理论,TCP/IP 是互联网真正落地的实现。开发和网络设备都是基于 TCP/IP。

六、面试高频考点(直接背诵)

  1. 问:为什么网络要分层?

答:降低复杂度,每层职责单一;层间接口标准化,协议可单独替换;便于模块化开发、故障定位。

  1. 问:IP 和 MAC 地址区别?

MAC:二层,物理地址,固化网卡,局域网内部寻址 ;IP:三层,逻辑地址,可动态分配,跨网段寻址。ARP 负责 IP 转 MAC。

  1. 问:TCP 为什么三次握手不是两次?

验证双方收发能力,同步序列号;两次握手无法确认对方收到我方序列号。

  1. 问:UDP 不可靠,为什么还在用?

无连接,低延迟,开销小;适合流媒体、DNS;上层业务自己做可靠性(QUIC)。

  1. 问:封装和解封装是什么?

发送方从上到下逐层增加协议头部;接收方从下向上逐层剥离头部,提取上层载荷。

  1. 问:路由器、交换机分别在哪一层?

交换机:二层(数据链路层,MAC 转发);路由器:三层(网络层,IP 路由转发)

七、总结

  1. OSI 七层是理论模型,TCP/IP 四层是互联网真实协议栈,学习时建议以 TCP/IP 为主,OSI 用来理解分层思想。
  2. 通信本质就是封装 - 传输 - 解封装,每层只处理自身头部,载荷透明。
  3. 传输层是后端开发重中之重,TCP 的三次握手、四次挥手、滑动窗口、拥塞控制,是面试必考。
  4. 遇到线上网络故障,可以按分层思路排查:物理链路→二层连通→三层路由→四层端口→应用层服务。

后续拓展学习:TCP 滑动窗口、拥塞控制、HTTP 协议、HTTPS TLS 握手、Socket 网络编程。

相关推荐
Lzg_na13 小时前
ARP 地址解析协议详解
网络·网络协议
北京盛世宏博13 小时前
通信异常深度排查:以太网温湿度设备 TCP 粘包、UDP 丢包根治方案
单片机·网络协议·tcp/ip·udp·以太网·传感器·温湿度
paopaokaka_luck15 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
CCblandy16 小时前
HTTP 长连接 3 类故障实测:[WinError 10053]、99 个 TIME_WAIT、69 次多余握手,4 种对策怎么选
后端·python·网络协议·http·云原生·性能优化·架构
雪雪爱冲浪16 小时前
2026 年网络爬虫领域的Puppeteer vs. Playwright
爬虫·网络协议·测试工具·接口隔离原则
zxanz117 小时前
SSL 证书申请下来快吗?
网络·网络协议·ssl
false_or_true17 小时前
一次由 tcp_tw_recycle 引发的“灵异”故障排查:基于双网闸架构的踩坑记
网络·tcp/ip·架构
Escalating_xu20 小时前
【Linux 网络编程】网络基础概念(下):IP、端口、Socket 与网络字节序,写代码前先打好基础
linux·网络·tcp/ip
网络小江20 小时前
上网第五十二课:加密隧道与拨号专网——安全接入的通俗解释
网络协议