跳到主要内容

TCP/IP 体系结构:四层模型怎么讲,和 OSI 七层到底是什么关系?

面试速答(30 秒版 TL;DR)

  • 面试里说 TCP/IP,最稳的口径是 链路层、网络层、传输层、应用层 这四层。
  • 它不是纯理论分层,而是互联网协议栈的工程化抽象;HTTP、DNS 在应用层,TCP/UDP 在传输层,IP 在网络层,以太网/Wi-Fi 在链路层。
  • 分层的核心价值不是“背名字”,而是 职责隔离:上层只关心要什么服务,下层负责怎么传。
  • OSI 七层更像教学模型,TCP/IP 四层更贴近真实落地;面试不要把“会话层、表示层”强行套进现代 Web 通信里。
  • 一次浏览器请求可以顺着这条链路讲:应用层构造 HTTP 请求,传输层切成 TCP 段,网络层封成 IP 包,链路层再变成帧发出去。

心智模型:把“发消息”拆成四个问题

你可以把一次网络通信拆成四个连续问题:

  1. 传什么内容:这属于应用层,决定协议格式与语义。
  2. 怎么保证端到端传输:这属于传输层,决定可靠性、端口、多路复用。
  3. 往哪里发:这属于网络层,决定寻址与路由。
  4. 在当前这段物理链路上怎么发:这属于链路层,决定成帧、MAC 寻址、介质访问。

所以分层不是“硬切文件夹”,而是在说:每一层只解决自己那一层最核心的问题


四层分别做什么

1. 应用层(Application Layer)

这一层决定“消息长什么样、业务语义是什么”。

常见协议:

  • HTTP / HTTPS:Web 请求与响应
  • DNS:域名解析
  • WebSocket:全双工长连接通信
  • SMTP / IMAP / POP3:邮件

面试里一句话:

  • 应用层定义的是“规则”和“数据格式”,不是具体网卡怎么发包。

2. 传输层(Transport Layer)

这一层解决“进程到进程怎么通信”。

核心能力:

  • 端口号:区分同一台主机上的不同应用
  • 复用/分用:多个应用共享同一条网络能力
  • 可靠性与顺序控制:主要由 TCP 提供
  • 无连接低开销传输:主要由 UDP 提供

典型协议:

  • TCP
  • UDP

面试里常见延伸:

  • HTTP/1.1、HTTP/2 通常跑在 TCP 上
  • HTTP/3 跑在 QUIC 上,而 QUIC 基于 UDP

3. 网络层(Internet Layer)

这一层解决“主机与主机之间怎么寻址、怎么跨网段到达目标”。

核心能力:

  • IP 地址
  • 路由转发
  • 分片与重组(IPv4 有分片,现代工程里通常尽量避免依赖)

典型协议:

  • IP
  • ICMP
  • ARP 常被单独放在链路侧讨论,但面试里知道它和地址解析相关即可

这一层解决“当前这一跳怎么传”。

核心能力:

  • 帧封装
  • MAC 地址
  • 差错检测
  • 局域网内的介质访问规则

常见技术:

  • 以太网
  • Wi-Fi

一次 HTTP 请求如何穿过四层

假设浏览器请求 https://example.com/api/user,可以这样讲:

  1. 应用层:浏览器生成 HTTP 请求报文,可能还会先做 DNS 解析。
  2. 传输层:如果是 HTTPS over TCP,就建立 TCP 连接;如果是 HTTP/3,则走 QUIC/UDP。
  3. 网络层:把数据交给 IP,根据目标 IP 走路由。
  4. 链路层:根据下一跳信息封装成帧,交给网卡发到局域网或运营商网络。

面试官真正想听的不是“背层名”,而是你能否解释:为什么 HTTP 关心请求头,而 IP 不关心请求头。答案就是职责边界不同。


TCP/IP 四层和 OSI 七层怎么对应

TCP/IPOSI典型协议你该怎么讲
应用层应用层 / 表示层 / 会话层HTTP、DNS、TLS现代工程里常把这三层合并看
传输层传输层TCP、UDP端到端通信、端口、可靠性
网络层网络层IP、ICMP寻址与路由
链路层数据链路层 / 物理层以太网、Wi-Fi当前一跳如何传输

标准答法:

  • OSI 七层更偏教学和理论分解
  • TCP/IP 四层更贴近互联网实际协议栈
  • 面试中如果问题是 Web 通信,一般用 TCP/IP 四层回答更自然。

为什么分层设计很重要

1. 降低耦合

HTTP 不需要知道网卡型号,IP 也不需要理解 JSON 字段含义。

2. 方便替换

同样的 HTTP,可以跑在 TCP 上,也可以在新协议演进后跑在 QUIC 上。上层业务并不需要彻底重写。

3. 便于排错

网络问题通常按层定位:

  • 域名解析失败,偏应用层/DNS
  • 连接超时,偏传输层或网络层
  • 网关不通,偏网络层/链路层

高频题标准答法

1. TCP/IP 为什么叫“四层”,不是“五层”?

教材里有时会讲五层模型:应用层、传输层、网络层、数据链路层、物理层。
但互联网工程里常说 TCP/IP 四层,是把“数据链路层 + 物理层”合并成链路层来看。

2. TLS 属于哪一层?

工程上通常放在应用层和传输层之间讨论,但在 TCP/IP 四层口径里,面试常把它归入应用层附近即可。
重点不是争分类,而是知道:TLS 负责加密与身份认证,不负责路由和重传

3. 端口号属于哪一层?

传输层。因为端口解决的是“同一台机器上不同进程如何区分”的问题。

4. IP 地址和 MAC 地址有什么区别?

  • IP:网络层地址,解决跨网络寻址与路由。
  • MAC:链路层地址,解决同一链路上一跳一跳地传输。

易错点 / 坑

  • 把 OSI 七层当成互联网真实实现细节逐层存在。
  • 认为 HTTP、TCP、IP 都在“同一层面”做同样的事。
  • 说不清“IP 解决寻址,TCP 解决可靠传输”这条最核心边界。
  • 误以为 HTTP/3 还是基于 TCP;实际上 HTTP/3 基于 QUIC,而 QUIC 基于 UDP。

速记要点(可背诵)

  • TCP/IP 四层:应用、传输、网络、链路
  • 应用层管语义,传输层管端到端,网络层管寻址路由,链路层管当前一跳传输。
  • OSI 七层偏理论,TCP/IP 四层偏工程。
  • 一次 Web 请求就是:HTTP -> TCP/UDP/QUIC -> IP -> 以太网/Wi-Fi