分层模型
OSI/TCP-IP 对照、各层职责。
30 分钟
分层模型
网络协议按 层 分工:上层不用关心下层怎么传比特。开发 Web 时最常碰 应用层(HTTP) 与 传输层(TCP);运维排障则要能对照各层定位问题。
学习目标
- 对照 OSI 七层与 TCP/IP 四层模型
- 说清每层在 CodeRoadMap 请求中的对应物
- 知道「哪一层出问题该查什么」
核心内容
OSI 与 TCP/IP 对照
| OSI | TCP/IP | 典型协议/组件 | 本站例子 |
|---|---|---|---|
| 7 应用 | 应用 | HTTP、DNS | http-methods |
| 6 表示 | 应用 | TLS 加密 | http-https |
| 5 会话 | 应用 | — | — |
| 4 传输 | 传输 | TCP、UDP | :443、:8080 端口 |
| 3 网络 | 网际 | IP、路由 | 公网 IP、子网 |
| 2 数据链路 | 网络接口 | 以太网、Wi-Fi | 云内网卡 |
| 1 物理 | 网络接口 | 光纤、电缆 | 机房基础设施 |
日常说「四层模型」即:应用 / 传输 / 网络 / 链路。
封装与解封装
[ HTTP 头 + body ] ← 应用层
↓ 装入
[ TCP 头 + 段 ] ← 传输层(源/目的端口)
↓ 装入
[ IP 头 + 包 ] ← 网络层(源/目的 IP)
↓ 装入
[ 帧 ] ← 链路层
Nginx 收到的是 已解到 TCP 之上 的 TLS/HTTP 流;Spring Boot 只关心 HTTP,不直接操作 IP 头。
排障分层直觉
| 现象 | 优先查哪层 | 工具/方向 |
|---|---|---|
| 域名打不开 | 应用/DNS | dns-tools |
| 连接超时 | 网络/防火墙 | ping、安全组 |
| Connection refused | 传输/端口 | ss -tlnp |
| 502 Bad Gateway | 应用/upstream | ngx-proxy |
请求路径(分层视角)
浏览器 HTTP GET /api/tracks
↓ TCP 443 → 服务器公网 IP
Nginx TLS 终止,HTTP 反代
↓ TCP 127.0.0.1:8080
Spring Boot 处理 REST
↓ TCP 127.0.0.1:3306
MySQL SQL 查询