ICMP is a hint, not proof
Routers may rate-limit or de-prioritize ICMP while forwarding TCP normally. Use mtr or long-run ping for trends, then confirm with TCP-based tests (curl, iperf3) when loss is intermittent.
Tooling workflow
| Layer | Command ideas | Interprets |
|---|---|---|
| End-to-end ICMP | ping -c 100 -i 0.2 host | Aggregate loss % and RTT jitter |
| Per-hop view | mtr --report --report-cycles 50 host | Where loss appears (watch for middlebox artifacts) |
| Local shaping | tc -s qdisc show dev eth0 | Drops from fq_codel, HTB, or police rules |
| NIC errors | ip -s link / ethtool -S | CRC, collisions, buffer overrun |
Sampling duration
One-second snapshots lie on Wi-Fi and cellular. Collect at least tens of seconds, ideally several minutes, and note concurrent uploads (bufferbloat).
Related: ping vs traceroute vs mtr, diagnosing slow internet, routing table commands, QoS at home.