ArcLibrary

OSI 与 TCP/IP 五层模型

把网络拆成几层,每层只关心自己的事 —— 计算机网络第一课。

OSITCPIP基础
核心 · Key Idea

一句话:网络通信被人为切成几层上层只用下层提供的服务,不关心下层怎么实现。这是整个计算机网络能跑起来的根本设计哲学。

是什么#

OSI 是教科书里的「七层模型」,工业上真正在用的是 TCP/IP 四层(也叫五层)模型

应用层 (Application)   ← HTTP / DNS / SSH / SMTP
传输层 (Transport)     ← TCP / UDP
网络层 (Network)       ← IP / ICMP
链路层 (Link)          ← Ethernet / Wi-Fi
物理层 (Physical)      ← 光纤 / 电信号

每一层只跟相邻两层打交道:上层给我数据我就传,下层告诉我有数据来了我就往上抛。

打个比方#

打个比方 · Analogy

寄一个包裹:

  • 物理层 = 卡车在路上跑;
  • 链路层 = 这一段是从 A 仓库到 B 中转站的快递员;
  • 网络层 = 包裹上的「最终收件地址」(IP);
  • 传输层 = 「请保证一定送到」(TCP)vs「丢了算了」(UDP);
  • 应用层 = 包裹里装的到底是衣服、文件还是合同。

关键概念#

封装Encapsulation
上层数据加上本层头部往下传,每层都包一层信封。
解封装De-encapsulation
接收方反过来一层层撕信封。
PDUProtocol Data Unit
每层有自己的称呼:bit / frame / packet / segment / message。
对等通信Peer-to-peer
通信双方在同一层「逻辑上对话」,下层只是搬运工。

怎么工作#

每一层在数据外面加一个头部:HTTP 报文外面包 TCP 头,再外面包 IP 头,再外面包以太网帧头。

实操要点#

  • 排查问题先定位层级:能 ping 通 IP(网络层)但 HTTP 打不开(应用层),问题不在底下;DNS 解析不到(应用层),ping IP 直接试。
  • Wireshark 看的就是分层:抓出来的每个包都按 frame → IP → TCP → HTTP 一层层展开,掌握分层就能看懂抓包。
  • OSI 七层只是教材:表示层 / 会话层在工业实践里没人单独实现,记住 TCP/IP 五层就够。
  • 上层不能跳过下层:HTTP 不能离开 TCP / UDP,TCP 不能离开 IP —— 这是封装规则。

易混点#

OSI 七层
应用 / 表示 / 会话 / 传输 / 网络 / 链路 / 物理。
教学模型,工业里没人完整实现。
TCP/IP 五层
应用 / 传输 / 网络 / 链路 / 物理。
今天互联网真正跑的就是它。

延伸阅读#