悟夕导航

【TCP/IP 教程·第七弹】《Ping & Traceroute:网络界的“雷达”与“高德”》

59 0 0
上回 DNS 刚把电话簿撕完,今天玩探测神器
Ping 像雷达——“滴,前方 42 ms 无丢包”;
Traceroute 像高德——“第 5 跳堵死,建议绕行”。
但雷达会遭防火墙隐身,高德也会故意指错路
个中骚操作,比旅游团购物店还多。

1. ICMP 协议:IP 的“小纸条”

  • 类型 8 → Echo Request(喂,在吗?)
  • 类型 0 → Echo Reply(在,活得好好的)
  • 类型 3 → Destination Unreachable(此路不通)
  • 类型 11 → Time Exceeded(TTL 用完,超时)
ICMP 不承载数据,只传控制信息
就像快递里夹的“包裹单”,本身不装奶茶。

2. Ping 工作流程:三秒相亲

  1. 源主机封装 ICMP 8 号包,TTL=64(Linux)/128(Windows)
  2. 每过一站 TTL-1,减到 0 被扔,返回 11 号报错
  3. 目标收到 TTL>0,回 0 号 Reply
  4. 源主机统计时延、丢包、抖动
防火墙一句 deny icmp 就能让 Ping 石沉大海,
所以“Ping 不通 ≠ 网络断”,可能只是“对方不理你”。

3. 大小包与分片:别把光纤挤爆

默认 32/56 字节,一旦加到 65500,
加上 DF(Don't Fragment)位 = 1,
路径上 MTU < 包大小 → 返回 ICMP 3/4(需要分片但 DF 置位)

利用这点可探测整条路径最小 MTU
这就是 Path MTU Discovery,VPN 掉线排障必用。

4. Ping 选项大全(背)

系统命令功能
Windowsping -t -l 1000 8.8.8.8不停、指定长度
Linuxping -s 1000 -M do 8.8.8.8强制 DF,探测 MTU
macOSping -D -s 2000 1.1.1.1同样 DF 置位
记住 -M do(Linux)/ -D(macOS)DF 置位
否则中间悄悄分片,测不到真实 MTU。

5. Traceroute 原理:连环 TTL 爆炸

发 3 组 UDP 高端口(33434 起),TTL 从 1 递增:

  • TTL=1 → 第一跳返回 ICMP 11(超时)
  • TTL=2 → 第二跳返回 11

  • 直到目标返回 ICMP 3/3(端口不可达)→ 到达!
所以 traceroute 显示“ *”不一定断,
可能只是不回 ICMP 11(防火墙丢弃)。

6. 不同实现差异

工具默认协议可改
Linux tracerouteUDP-I ICMP, -T TCP
Windows tracertICMP不可改
macOS tracerouteUDP-I ICMP
mtrICMP实时刷新,丢包雷达
遇到UDP 被禁,立刻 -I 上 ICMP,
或者 -T 80 走 TCP,伪装 HTTP 流量。

7. 看懂输出:每跳 3 个时间

1  192.168.1.1    1.123 ms  1.020 ms  1.110 ms
2  100.64.0.1     3.456 ms  3.321 ms  3.490 ms
3  * * *
4  202.96.123.45  8.765 ms  8.654 ms  8.721 ms
  • 星号 = 没收到 ICMP 11,被墙限速丢弃
  • 第 3 跳全 * 但第 4 跳出现 → 路径正常,只是第 3 跳低调
  • 延迟突增(3 ms→200 ms)→ 通常跨运营商海底光缆

8. 延迟抖动与 Starlink

延迟三因子:
传播延迟 = 距离 / 光速(≈5 μs/km 光纤)
排队延迟 = 路由器拥塞程度
处理延迟 = 设备性能 + 策略(NAT、QoS、防火墙)

上海→洛杉矶 11 000 km,理论单向 55 ms,
实际 160 ms 左右,排队+处理吃掉 100 ms。
Starlink 低轨 550 km,单程仅 2 ms,
但上星→落地多跳网关,总延迟 25~45 ms,仍比海底光缆快。

9. 安全攻防:Ping of Death & Traceroute Flood

  • Ping of Death(90 年代):>65535 字节分片重组崩溃 → 已修复
  • Ping Flood:ICMP 64 k 大包 1 Mpps,打爆带宽
  • Tracert Flood:频繁 TTL 递增扫描,触发路由器 CPU 高

    现在防火墙默认限速/丢弃 ICMP/UDP 33434,
    所以扫描前先 -T 80 伪装 TCP,穿透率↑

10. 排查口诀

Ping 先测通,MTU 后分片;
Traceroute 看跳数,星号别慌神;
延迟突增跨运营商,* * * 被墙藏;
`-I` 改 ICMP,`-T` 走 HTTP;
记住三延迟:传播、排队、处理。

下集预告

第八弹《TCP 三次握手:处女座外卖员的爱情协议》

  • SYN、SYN-ACK、ACK 怎样像相亲?
  • 为什么握手 3 次、挥手 4 次?
  • 同时打开、SYN Flood、半连接队列是什么鬼?
  • 一键算 MSS、Window Scale,让下载飙车!

关注不迷路,下回继续握手!

0
快来点个赞吧

发表评论

隐私评论

评论列表

来写一个评论吧