前言
做后端开发、服务器运维,网络是绕不开的基础。很多同学背了七层名字,却不懂分层的意义,不知道数据包从浏览器发出到服务器,每一层到底发生了什么封装。
分层思想核心:下层为上层提供服务,上层不用关心下层实现;层间低耦合,协议可独立替换 。 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 对应关系:
- 应用层:合并 OSI7、6、5 层(应用、表示、会话)
- 传输层:完全对应 OSI 第 4 层(TCP/UDP)
- 网际层(IP 层):对应 OSI 第 3 层(IP、ICMP、ARP)
- 网络接口层:合并 OSI 2、1 层(数据链路层 + 物理层)
很多计算机网络教材会使用五层简化模型(网络接口层拆成链路层 + 物理层),面试经常出现,注意区分。
三、数据包封装和解封装完整流程(浏览器访问网站实例)
场景:本机浏览器访问 https://www.baidu.com,完整封装过程(发送方,从上往下)
- 应用层:浏览器构造 HTTP 请求报文,交给下层;TLS 完成加密。
- 传输层:给数据加上 TCP 头部(源端口、目标端口、序列号),封装成 TCP 段。
- 网际层:增加 IP 头部(源 IP、目标 IP、TTL),封装成 IP 数据包。
- 网络接口层(链路层):增加以太网头部(源 MAC、目标 MAC)+CRC 校验,封装成帧。
- 物理层:转换成 0/1 比特流,通过网线发出。
接收服务器端,自下向上解封装:
- 物理层收到比特流,传给链路层。
- 链路层剥掉以太网帧头,校验 CRC,取出 IP 包,上交网络层。
- 网络层剥掉 IP 包头,判断目标 IP 是本机,取出 TCP 段上交传输层。
- 传输层剥掉 TCP 头部,校验序列号,重组数据,上交应用层。
- 应用层 TLS 解密,交给 Web 服务器处理 HTTP 请求。
重点记忆:每一层只处理属于自己的头部,上层数据对于下层来说就是透明载荷 (payload)
四、核心协议原理精讲(后端面试重点)
1. 传输层 TCP vs UDP
表格
| 对比 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接(三次握手建立) | 无连接,无需预先握手 |
| 可靠性 | 可靠,确认应答、超时重传 | 不可靠,不保证送达、不校验顺序 |
| 控制机制 | 流量控制、拥塞控制、序列号 | 无 |
| 开销 | 头部 20~60 字节,开销大 | 头部固定 8 字节,极简 |
| 典型场景 | HTTP/HTTPS、数据库连接、SSH | DNS 查询、直播、语音通话、HTTP3 QUIC |
TCP 核心机制
- 三次握手:建立双向连接,同步双方序列号。
- 四次挥手:双向关闭连接。
- 确认应答 ACK:收到数据返回确认。
- 超时重传:丢包自动重发。
- 流量控制:滑动窗口,防止发送方打崩接收方。
- 拥塞控制:慢启动、拥塞避免,防止网络过载。
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 协议栈核心对比
- OSI 七层 :ISO 国际组织定义,理论模型,分层精细,会话、表示独立拆分;没有完整配套协议栈。
- TCP/IP 四层 :由互联网发展诞生,实践优先,合并上层三层;整套协议簇,互联网唯一事实标准。
一句话总结:OSI 是教科书理论,TCP/IP 是互联网真正落地的实现。开发和网络设备都是基于 TCP/IP。
六、面试高频考点(直接背诵)
- 问:为什么网络要分层?
答:降低复杂度,每层职责单一;层间接口标准化,协议可单独替换;便于模块化开发、故障定位。
- 问:IP 和 MAC 地址区别?
MAC:二层,物理地址,固化网卡,局域网内部寻址 ;IP:三层,逻辑地址,可动态分配,跨网段寻址。ARP 负责 IP 转 MAC。
- 问:TCP 为什么三次握手不是两次?
验证双方收发能力,同步序列号;两次握手无法确认对方收到我方序列号。
- 问:UDP 不可靠,为什么还在用?
无连接,低延迟,开销小;适合流媒体、DNS;上层业务自己做可靠性(QUIC)。
- 问:封装和解封装是什么?
发送方从上到下逐层增加协议头部;接收方从下向上逐层剥离头部,提取上层载荷。
- 问:路由器、交换机分别在哪一层?
交换机:二层(数据链路层,MAC 转发);路由器:三层(网络层,IP 路由转发)
七、总结
- OSI 七层是理论模型,TCP/IP 四层是互联网真实协议栈,学习时建议以 TCP/IP 为主,OSI 用来理解分层思想。
- 通信本质就是封装 - 传输 - 解封装,每层只处理自身头部,载荷透明。
- 传输层是后端开发重中之重,TCP 的三次握手、四次挥手、滑动窗口、拥塞控制,是面试必考。
- 遇到线上网络故障,可以按分层思路排查:物理链路→二层连通→三层路由→四层端口→应用层服务。
后续拓展学习:TCP 滑动窗口、拥塞控制、HTTP 协议、HTTPS TLS 握手、Socket 网络编程。