2.1.3 各层典型协议与功能对应
各层典型协议与功能对应是理解网络分层的关键。本节按OSI七层梳理常见协议、功能职责与运维关注点,并给出安装、示例、排错与练习,帮助定位故障与规划架构。
原理草图:OSI各层协议与数据流#
工具安装(基础排错必备)#
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y iproute2 net-tools ethtool tcpdump dnsutils traceroute openssl
# CentOS/RHEL
sudo yum install -y iproute net-tools ethtool tcpdump bind-utils traceroute openssl
物理层(Physical)#
- 功能:比特流传输、物理介质与电气/光学特性
- 典型标准:IEEE 802.3、光纤/双绞线
- 运维关注:链路是否通、速率/双工、光功率
示例与命令
# 查看链路状态、速率和双工
ip link show eth0
sudo ethtool eth0
# 预期效果:Link detected: yes,Speed: 1000Mb/s,Duplex: Full
排错要点
- Link detected: no → 更换线缆/光模块/端口
- 速率/双工不一致 → 强制协商或统一配置
练习
- 断开网线后观察 ethtool eth0 输出变化,并恢复连接。
数据链路层(Data Link)#
- 功能:帧封装、MAC寻址、差错检测、介质访问控制
- 典型协议:Ethernet、VLAN(802.1Q)、STP/RSTP
- 运维关注:MAC漂移、VLAN划分、环路与广播风暴
示例与命令
# 查看MAC地址与链路信息
ip link show eth0
# 查看ARP表(2.5层常见问题也在此体现)
ip neigh show
# 抓取二层帧,观察MAC与VLAN标签
sudo tcpdump -i eth0 -e -n -c 5
排错要点
- ARP不通:检查VLAN是否一致、端口是否Trunk
- 广播风暴:检查STP状态与环路
练习
- 在两台同VLAN主机上互ping,观察ARP表变化。
网络层(Network)#
- 功能:IP寻址、路由选择、分片与重组
- 典型协议:IPv4/IPv6、ICMP、ARP
- 运维关注:IP冲突、路由可达性、MTU
示例与命令
# 查看IP与路由
ip addr show
ip route show
# 基础连通性
ping -c 4 8.8.8.8
# 路由路径
traceroute 8.8.8.8
排错要点
- ping不通但ARP正常 → 路由/防火墙/ACL
- MTU问题 → 观察分片与PMTU
# 禁止分片探测MTU(-M do)
ping -c 2 -M do -s 1472 8.8.8.8
练习
- 删除默认路由再恢复:
sudo ip route del default
sudo ip route add default via 192.168.1.1
传输层(Transport)#
- 功能:端到端通信、可靠性、复用/分用
- 典型协议:TCP、UDP
- 运维关注:端口开放、连接状态、丢包重传
示例与命令
# 查看监听端口与连接状态
ss -lntup
# 测试端口连通性(TCP)
nc -vz 127.0.0.1 22
# 查看TCP状态统计
ss -s
排错要点
- SYN_SENT多 → 目标不可达/防火墙
- TIME_WAIT过多 → 长连接/端口回收策略需优化
练习
- 用 nc -l 8080 启动本地监听,再用 nc -vz 127.0.0.1 8080 验证。
会话层(Session)#
- 功能:会话建立/管理/终止、同步点控制
- 典型机制:RPC、NetBIOS Session、TLS会话
- 运维关注:会话超时、连接保持、长连接稳定性
示例与命令
# 观察SSH会话保持,检测断线
ssh -o ServerAliveInterval=30 user@host
# 预期:每30秒发送保活包,减少中间设备超时断开
排错要点
- 中间设备闲置超时 → 设置KeepAlive/心跳
- 会话冲突 → 检查认证与session存储
练习
- 调整 ServerAliveInterval,观察长时间空闲是否断开。
表示层(Presentation)#
- 功能:数据表示、加解密、压缩、编码转换
- 典型机制:TLS/SSL、JSON/XML编码
- 运维关注:证书、加密套件、编码兼容性
示例与命令
# 查看HTTPS证书与协议
openssl s_client -connect example.com:443 -servername example.com
# 预期:输出证书链、TLS版本、加密套件
排错要点
- 证书过期/链不完整 → 浏览器报错
- TLS版本不匹配 → 升级客户端或调整服务端配置
练习
- 用 openssl s_client 对比不同站点的TLS版本。
应用层(Application)#
- 功能:为应用提供网络服务与接口
- 典型协议:HTTP/HTTPS、DNS、FTP、SMTP、SSH、NTP
- 运维关注:协议错误、认证授权、限流超时、版本兼容
示例与命令
# HTTP请求与返回码
curl -I https://example.com
# DNS解析
dig example.com +short
# NTP同步状态
timedatectl timesync-status
排错要点
- HTTP 502/504 → 上游不可达或超时
- DNS解析慢 → 检查DNS服务器与缓存
练习
- 修改 /etc/resolv.conf 指向不同DNS,比较解析耗时。
快速对应表(简明记忆)#
- 2层:MAC/VLAN/交换
- 3层:IP/路由/ICMP
- 4层:TCP/UDP/端口
- 7层:HTTP/DNS/SSH/数据库协议
通过“层—协议—功能—现象”的映射,结合命令与示例,运维可快速判断问题发生的层次与排查方向。