How to properly interpret a traceroute or mtr
phil.lavin.me.uk
phil.lavin.me.uk
If the network you're trying to debug is a) IPv4-only and b) not too wide, you may also find some utility in ping -R, which turns on the oft-forgotten but rarely firewalled IPv4 Record Route option, and that way you may get visibility into at least one of the return routes as well. Unfortunately, the IPv4 header can only record up to 9 hops, so it's less useful over the internet.
I once spent a month trying to argue this point to my ISP when they asked for mtr tests to diagnose a packet loss issue. My home router hop showed 90% ‘loss’ so they repeatedly refused to investigate on that basis.
The problem turned out to be widespread across their wholesaler’s network, but of course, according to the ISP, I was the only complaint they had heard of. Over the course of two years the wholesaler was bought out and their network upgraded, which immediately solved the recurring packet loss. Surprise, surprise.
[0]: https://archive.nanog.org/meetings/nanog47/presentations/Sun...
The problems I encounter go anywhere from blips of one way packet loss (I've been able to ping my IP from a server but not ping the same server from my apartment), latency randomly jumping 500ms, or full downtime. mtr is better than ping for this as I like to see whether the issue is happening on my line or further out, that usually informs how much noise I should make or how much time I have to kill.
The latter is useful because you can run whatever combination of tests you want - there are CLI programs that run on a Pi for bandwidth/speed testing (I think speedtest.net has one specifically, but there are others, including at least one other that targets speedtest.net), mtr/traceroute/ping/etc. etc. can all be scripted, and if you get a bit clever with your pipes and sed scripts, you can end up with a file that can be directly loaded into a spreadsheet program for plotting (or you could go all-out and have the script generate a plot.ly plot directly). I've also plotted ambient temperature here, to maybe find any correlations.
What might be the most useful for you is to find a metric on your router/modem that provides some value - years ago I was able to find a signal quality metric on my DSL modem that I could record programmatically (simple API call with a the simplest HTTP password encryption option...), which eventually lead to discovering that there were line filters/attenuators that had been installed but not removed for the different seasons.
Some routers will also highlight if there is interference on the line, which makes it harder to calculate how long the cable from your property to the cabinet can be. Some routers will also show who the cabinet manufacturer is and firmware version, usually Broadcom or reportedly Huawei, but I've not found a Huawei cabinet yet. I've found German routers to be best.
The new cabinets also reportedly emit an independent radio signal in case the line to the cabinet goes down which might also be used to detect when someone has opened the cabinet. Anyone could mess around with the older telecoms cabinets! So monitoring the RF with a SDR could throw up more interesting data.
And then its off to your exchange where companies like TalkTalk also run their own cabling so you may not be on the BT OpenReach network, especially if you are a TalkTalk customer. I'm not aware of ISP using both OpenReach and TalkTalk but some arrangements might exist.
And then from there, if the problem is not between your exchange and your property, then sometimes using a VPN service into another country can help for those situations where the usual route to your popular sites are congested/problematic, ie VPN to a different country so that you can come in to the US from the West coast instead of the East coast, or VPN to German in order to access a Swiss website, instead of France to Switzerland.
(Submarine) Cable maps can be handy for working out the countries to VPN into to get a different route into a country and thus favoured websites.
For the ultimate, cleanest & best connection you can remove the faceplate of the master socket to reveal the "test socket" [1] (which in so doing disconnects every other socket in the house) and then plug a filter & your ADSL modem directly into that socket, or fit a replacement faceplate e.g. [2],[3]
[1] http://www.hmmm.ip3.co.uk/bt-master-socket-nte5.shtml [2] https://www.amazon.co.uk/N247-ADSL-FacePlate-Filter/dp/B0030... [3] https://www.run-it-direct.co.uk/adsl-vdsl-faceplates/vte2015...
You probably don't want to use a filter here.
If you are in the UK, just move your home broadband to Andrews & Arnold[1].
They are an ISP that know their stuff, have a knowledgable helpdesk and run 24x7 diagonstics on every line of every customer and make that data available to the customer[2].
No I don't work for them. No I'm not a shill. But I have sufficient techie colleagues in the UK who vouch for A&A being tip top.
Alternatively, if you have control of a remote server, you could try running IRTT [3] and feeding it into your favourite graphing/monitoring software is.
[1]https://www.aa.net.uk/ [2]https://support.aa.net.uk/CQM_Graphs [3]https://github.com/heistp/irtt
You'll want to spin this up in Docker Compose, and to add custom hosts upstream of you (such as ISP routers), you can edit the hosts.txt file (to add in human-friendly names such as "upstream") and add those hosts in the HOSTS variable in the docker-compose.yml file.
Feel free to open an issue on the project or reach out privately if you have any questions.
Edit: The article posted by OP is obviously high quality stuff, diving into MPLS, etc.
On the up side, MTR is indeed a useful tool for finding the issue.