大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
OSI 七层模型:运维视角
教科书上的 OSI 模型容易显得抽象,但对运维来说 分层 = 排障路径:应用层看日志、传输层查端口、网络层 ping/traceroute、链路层看网卡。本课衔接 networking-essentials 的 net-osi,结合 linux-essentials 常用命令,把七层映射到 SSH、FTP、SMTP、IMAP 等本 track 后续协议;DNS 解析见 dns-essentials,Git 提交见 git-essentials。
学习目标
- 说出 OSI 七层名称及每层 运维排障时的关注点
- 将 SSH / FTP / SMTP / IMAP 映射到对应层级
- 用
ss、tcpdump、curl等工具定位问题发生在哪一层
七层与运维映射
| 层级 | 职责 | 运维工具/命令 | 本 track 相关协议 |
|---|---|---|---|
| 7 应用层 | 用户可见的服务与协议 | curl、openssl s_client | SMTP、IMAP、FTP 命令 |
| 6 表示层 | 编码、加密、压缩 | TLS/SSL 证书 | STARTTLS、SMTPS、IMAPS |
| 5 会话层 | 连接建立/维护/终止 | SSH 会话、FTP 控制连接 | SSH、FTP 控制通道 (21) |
| 4 传输层 | 端到端可靠/不可靠传输 | ss -tlnp、nc | TCP 22/21/25/587/993 |
| 3 网络层 | 路由与寻址 | ping、traceroute、ip route | IP 包路由 |
| 2 数据链路层 | 帧传输、MAC | ip link、ethtool | 交换机、VLAN |
| 1 物理层 | 比特传输 | 网卡指示灯、光纤/网线 | 机房布线 |
SMTP 发信排障路径(自下而上)
L1-L2: 网卡 up?链路通?
L3: ping mail.example.com 通?
L4: nc -zv mail.example.com 587 端口开?
L6: openssl s_client -connect mail.example.com:587 -starttls smtp
L7: swaks --to user@example.com --server mail.example.com:587
封装与端口
每层添加首部,最终变成 帧 → 包 → 段 → 数据。运维最常查的是 L4 端口 和 L7 协议行为:
# 查看监听端口(L4)
ss -tlnp | grep -E '22|25|587|993'
# 抓 SMTP 握手包(L4-L7)
sudo tcpdump -i any port 587 -A -c 20
# 测试 IMAP 登录(L7)
openssl s_client -connect imap.example.com:993 -quiet
# 然后输入: a1 LOGIN user password
Connection refused 通常是 L4(端口无进程);超时 查 L3 防火墙或路由;证书错误 在 L6。
与 TCP/IP 四层对照
| OSI | TCP/IP | 示例 |
|---|---|---|
| 5-7 应用/表示/会话 | 应用层 | HTTP、SSH、SMTP |
| 4 传输 | 传输层 | TCP、UDP |
| 3 网络 | 网络层 | IP、ICMP |
| 1-2 物理/链路 | 链路层 | Ethernet |
DevOps 日常 80% 排障集中在 L3-L7;物理层问题通常交给机房或云厂商。
练习
- 用
ss -tlnp列出本机 22/25/587/993 端口状态,标注对应协议 - 对 mail.example.com 执行
traceroute和nc -zv ... 587,记录每层可能失败点 - 阅读 net-tcp-udp,对比 TCP 三次握手与 SMTP 会话建立
小结
OSI 分层 = 排障 checklist:先 ping(L3),再查端口(L4),再看 TLS 与应用协议(L6-L7)。 下一课深入 SSH——DevOps 远程管理的核心协议。