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/数据库协议

通过“层—协议—功能—现象”的映射,结合命令与示例,运维可快速判断问题发生的层次与排查方向。