← Notes

A Clean Ping Doesn’t Mean Big Packets Get Through

1 min read#Networking#Debugging

Zero packet loss and 11 ms latency, yet downloads crawled at 10–25 KB/s. Lowering the MTU to 1400 made them roughly 300 times faster.

ping sends small packets by default, so it only proves small packets get through. Probing with large, do-not-fragment packets: payloads of 1472 and 1464 bytes all failed and 1372 succeeded, meaning the real MTU on this WiFi path was around 1400. Full-size 1500-byte packets were silently dropped along the way, and TCP kept retransmitting.

ping -M do -s 1472 <host>   # 不通就往下试,1372 通即路径 MTU ≈ 1400
sudo ip link set dev wlp3s0 mtu 1400

With the interface MTU at 1400, a 12.6 MB package downloaded in 1.6 seconds. The setting is lost when WiFi reconnects; making it stick means writing it into the NetworkManager connection profile.

Written byShihao Qi