You got a good practical understanding of traceroute, but there are some slight inaccuracies.
It's important to understand that a traceroute is a specifically designed network test designed to give you specific information about each individual hop between point A and point B.
I would say that traceroute does not give you any information about individual hops. It only tells you how many hops there are, tells you one IP-address of each hop (which can be converted to a domainname via DNS), and it gives an indication of the Round Trip Time to each of those hops. The hops themselves do not give any information.
It is not necessarily reflective of a live connection between Point A and Point B.
I would say it is.
Because if it isn't a reflection of the live path, then what is it ?
A tracert is more or less a series of pings to each host along the path, the latency displayed for each hop is the total latency between you and that specific hop.
It's not really pings. Even if ICMP is involved. You can only ping a destination if you know it's IP-address. When you start a traceroute, you know nothing about the path, so you can't ping anything. Except the end-destination.
BTW, the "hops" along the path are not hosts. They are routers. The difference between a host and a router is that a router can forward packets to others, while a host only handles traffic for which it is the endpoint (source or destination).
It's also subject to bias. If an individual hop is configured for QoS to process ICMP packets at a lower priority than "real" traffic, the latency value reported will be higher than it would be for a legitimate connection through that hop.
QoS is normally not the issue here.
The issue is how a router handles traffic that goes *through* it, versus traffic that it is an endpoint of.
Traceroute sends an UDP packet, or an ICMP packet to the destination that you typed in the traceroute command. Originally it used UDP. Mac and Linux still use UDP. Windows uses ICMP. The trick of traceroute is that it used the TTL in an interesting way. TTL stands for Time To Live. Each packet has a "hopcount" in its IP-header. The sender sets it to 64 or 32. Every time a router forwards a packet, the TTL is decremented by 1. If there is a routing loop somewhere (shouldn't happen, but it can) packets will cross 32 or 64 hops, and their TTL will go to 0. If a router receives a packet with TTL=1, it will decrement to TTL=0, and drop the packet. But it will also send a warning to the original sender of that packet. That's a ICMP Destination unreachable, Time Exceeded packet.
What happens is this:
Tracerouters send a packet with TTL=1. The first router on the path will decrement TTL=0, drop it, and send an ICMP warning to back to you. You look at the source IP-address of that ICMP warning. And you now know the IP-address of the first hop. Then traceroute sends a packet towards the same destination, but with TTL=2. The first router will forward the packet, the but 2nd router on the path will decrement TTL=0. The 2nd router sends a warning, and now you know the 2nd router on the path. It keeps doing this, until you get a reply from the destination.
Now my point:
When a router forwards a packet, it does that via the "fast path". Special hardware on high end routers, or in interrupt mode on a general-purple CPU. But when there is an error (TTL=0), the packet is treated differently. It is often "punted" to the control plane of the router, where a dedicated process will handle errors and generates and sends back the ICMP warning. This might take a *lot* longer than when the hardware forwards a packet. And that is why you can't totally trust the timing values you see in traceroute.
Likewise, if it outright rejects ICMP traffic you can see timeouts and the number could be further skewed.
True. Or if a router filters certain UDP ports, and by coincedence it's the port traceroute is sending packets too. (Not on Windows, as that one uses ICMP).
But you forget to mention the biggest weakness of traceroute.
Traffic on the Internet does not always follow symmetrical paths !
In fact, in most cases the forward traffic and the backward traffic will go over different paths. This is a result of the way ISPs deal with traffic amongst themselves. (There doesn't seem to be a good webpage with explanation to why most inter-AS routing is asymetrical. If you wanna know, ask, and I'll explain).
So when you do a traceroute from A to B, you will see the path that is taken from A to B. However, the path from B to A is probably significantly different. You can not find out how it is, unless B helps you.
In gaming (and other applications), the total RTT is important. (RTT = Round Trip Time. The time to go from A to B and back to A). Traceroute shows you only *half* the truth. The path from A to B might seem fine, but the path from B to A might be congested. And your gaming will be bad. But you don't know why.
Another minor issues might be load balancing. If there are hops with 2 parallel links between them, or if there are 2 different paths to get to the destination, then traffic will be "load balanced" over those paths. To get better overall throughput. However, the path of one "flow" will not change. That means you traceroutes from A to B might go over a slightly different path than your gaming packets from A to B. I think this usually isn't an issue, but in theory it certainly can happen.
It's also important to understand what exactly a tracert is telling you. It's a single data point from a test at that specific point in time. Routing protocols might update five minutes after you did it and give you an entirely different route based on what the internet as a whole worked out was a "better" route based on the configuration of those protocols. A tracert is just a single diagnostic test, not a full picture of what's happening between A and B at all times.
True. It's just a snapshot of the situation.
If you want to know more, you need to do traceroutes at various times in the day. Maybe even during a few days.
But usually the routing won't change too much. Routing on the Internet is mostly based on policy. Because real money is involved, ISPs want to determine in great detail how traffic is exchanged between ISPs. They do this via all kinds of policy mechanisms in BGP. (BGP is the protocol used to route packets between networks (between ISPs, between ASs)). So even though traceroute is only a snapshot, that snapshot often shows the normal situation.
I'm not saying they don't have improvement, just that it is irrelevant to *you* as every connection is completely unique.
Completely correct.