I’ve been dealing with intermittent packet loss at my current home connection. I initially wasn’t sure if the issue was with my home router/switch or my ISP. With MTR, I found the issue wasn’t with my home equipment, but somewhere after my ISP’s router.
MTR has been around for a few decades now, but I discovered it in the past few years. It’s a mashup of traceroute and ping and is useful for diagnosing network issues and quality. It essentially shows each hop between you and the endpoint, with packet loss percentage and ping information to each hop.
> sudo mtr jonathonlacher.com
My traceroute [v0.93]
Jonos-Macbook.local (192.168.1.4) 2020-08-05T21:41:57-0500
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 43 0.6 0.6 0.3 0.8 0.1
2. 10.31.22.4 0.0% 43 11.4 9.8 7.6 16.8 2.0
3. 24-2-122-32-static.midco.net 0.0% 43 11.5 12.1 7.7 40.5 5.2
4. 24-221-3-111-static.midco.net 0.0% 43 10.3 13.6 8.9 24.8 3.9
5. 24-221-24-35-static.midco.net 0.0% 42 11.0 13.2 9.8 35.3 4.1
6. 24-221-4-221-static.midco.net 0.0% 42 20.9 21.2 17.5 28.1 2.8
7. 14435.chi.equinix.com 0.0% 42 38.7 38.7 29.9 52.9 6.3
8. 104.24.105.110 0.0% 42 33.5 32.9 30.0 38.9 2.0
The default columns cover packet loss and ping times, but there are four fields with jitter information you can add by pressing O
, then typing:
LS NABWV JMXI
Jitter is the variation in ping times; large jitter values can impact of time sensitive applications like audio/video calls, games, etc. The four jitter fields:
J: Current Jitter
M: Jitter Mean/Avg.
X: Worst Jitter
I: Interarrival Jitter
To dig deeper, look at Linode’s comprehensive article on MTR which includes longer explanations of how MTR works, how to interpret test results, and how to use TCP mode.