Skip to content

网络模型

概念

网络模型是理解计算机网络的基础框架。所有网络协议都可以归入某一层,每层只负责特定功能,层与层之间通过接口通信。面试中主要考 OSI 七层模型和 TCP/IP 四层模型的对应关系。

OSI 七层 vs TCP/IP 四层

OSI 七层TCP/IP 四层职责常见协议
应用层应用层为用户提供网络服务接口HTTP、HTTPS、FTP、SMTP、DNS、SSH
表示层数据格式转换、加密解密、压缩SSL/TLS、JPEG、JSON
会话层建立、管理、终止会话RPC、NetBIOS
传输层传输层端到端的可靠传输TCP、UDP
网络层网际层路由选择、逻辑寻址IP、ICMP、ARP
数据链路层网络接口层帧传输、MAC 寻址、差错检测以太网、Wi-Fi、PPP
物理层比特流传输(电信号/光信号)RJ45、光纤

实际使用中以 TCP/IP 四层模型为主,OSI 七层更多用于理论参考。面试中常考的是"说出每一层的职责和代表协议"。

数据封装与解封装

发送数据时,数据从上到下逐层封装:

应用层数据
  ↓ 加上 TCP/UDP 头 → 段(Segment)
  ↓ 加上 IP 头 → 包(Packet)
  ↓ 加上 MAC 头和尾 → 帧(Frame)
  ↓ 转为比特流 → 物理传输

接收时反向解封装:每层剥掉自己的头部,把数据传给上一层。

每层关键概念

应用层

直接为用户的应用程序提供服务。HTTP 请求、DNS 查询、邮件发送都发生在这一层。

传输层

提供端到端的通信。核心问题是可靠性

  • TCP:面向连接、可靠传输、流量控制、拥塞控制
  • UDP:无连接、不可靠、快

端口是传输层的概念,用于区分同一主机上的不同应用(HTTP 80、HTTPS 443、MySQL 3306)。

网际层(网络层)

负责将数据包从源主机路由到目标主机:

  • IP 地址:逻辑地址,用于跨网络寻址
  • 路由:决定数据包走哪条路径
  • ICMP:网络诊断(ping 就是 ICMP Echo Request)
  • ARP:将 IP 地址解析为 MAC 地址(严格来说跨越了网络层和数据链路层)

网络接口层(数据链路层 + 物理层)

负责在相邻节点之间传输数据帧:

  • MAC 地址:物理地址,硬件唯一标识(48 位)
  • 以太网帧:包含源 MAC、目标 MAC、数据和 CRC 校验

IP 地址基础

IPv4 vs IPv6

对比项IPv4IPv6
地址长度32 位(如 192.168.1.1)128 位(如 2001:db8::1)
地址数量~43 亿几乎无限
头部可变长(20-60 字节)固定 40 字节
NAT需要(地址不够)不需要
配置手动或 DHCP支持自动配置(SLAAC)

常见特殊地址

地址用途
127.0.0.1本机回环(localhost)
0.0.0.0监听所有网络接口
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16私有地址(局域网)
255.255.255.255广播地址

子网掩码与 CIDR

子网掩码用于区分 IP 地址中的网络部分和主机部分:

IP:      192.168.1.100
掩码:    255.255.255.0  (即 /24)
网络号:  192.168.1.0
主机号:  100
可用主机: 2^8 - 2 = 254(减去网络地址和广播地址)

CIDR 表示法:192.168.1.0/24 = 前 24 位是网络号。

一次 HTTP 请求的网络全流程

面试经典题:从输入 URL 到页面显示发生了什么(网络部分)?

  1. DNS 解析 — 浏览器缓存 → OS 缓存 → 本地 DNS → 递归查询 → 获得 IP
  2. 建立 TCP 连接 — 三次握手(SYN → SYN+ACK → ACK)
  3. TLS 握手(HTTPS) — 协商密钥、验证证书
  4. 发送 HTTP 请求 — 请求行 + 头部 + 请求体
  5. 服务器处理 — 解析请求 → 业务逻辑 → 生成响应
  6. 返回 HTTP 响应 — 状态码 + 头部 + 响应体
  7. 浏览器渲染 — 解析 HTML → 构建 DOM → 加载 CSS/JS → 渲染
  8. 关闭连接 — 四次挥手(或 Keep-Alive 复用)

面试常问 & 怎么答

Q1: OSI 七层模型和 TCP/IP 四层模型的区别?

OSI 是理论模型,分七层;TCP/IP 是实际使用的模型,分四层。TCP/IP 把 OSI 的应用层、表示层、会话层合并为应用层,把数据链路层和物理层合并为网络接口层。面试中只要能说出每层的职责和代表协议即可。

Q2: TCP 和 UDP 分别在哪一层?HTTP 在哪一层?

TCP 和 UDP 在传输层,HTTP 在应用层。HTTP 基于 TCP(HTTP/3 基于 QUIC/UDP)。

Q3: 从输入 URL 到页面显示发生了什么?

DNS 解析域名获得 IP → TCP 三次握手建立连接 → TLS 握手(HTTPS)→ 发送 HTTP 请求 → 服务器处理并返回响应 → 浏览器解析 HTML 并渲染 → 四次挥手关闭连接(或 Keep-Alive 复用)。

Q4: ARP 协议的作用?

ARP 将 IP 地址解析为 MAC 地址。同一局域网内通信时,知道目标 IP 但需要知道目标 MAC 才能发送以太网帧。ARP 广播询问"谁是这个 IP?",目标主机回复自己的 MAC 地址。

看到什么就先想到这类

  • 出现 OSI 七层、TCP/IP 四层、协议栈。
  • 出现"从输入 URL 到页面显示"。
  • 出现 IP 地址、子网掩码、CIDR。
  • 出现 ARP、ICMP、ping。