When a destination is unreachable or slow, traceroute shows every router along the way and where the packets stop — turning "the internet is broken" into a specific hop.
Why: ping tells you IF a host is reachable; traceroute tells you the PATH and where it breaks or slows — by sending packets with increasing TTL so each router along the way reveals itself. When: use it when a destination is unreachable or latency is high, to find the responsible hop. Where: the hop where replies stop (or latency jumps) is where to focus.
traceroute google.com # Linux / macOS
tracert google.com # Windows
# Each line is one hop (router) toward the destination:
# 1 192.168.1.1 1 ms <- your gateway
# 2 10.20.0.1 8 ms <- ISP
# 3 * * * <- no reply (filtered or the break point)
# 8 142.250.1.1 14 ms <- reached GoogleWhy: a trace has to be read carefully — a few * timeouts mid-path are often just a router that de-prioritizes ICMP (not a fault), but timeouts that continue to the end mean the path really breaks there. When: look for the last hop that replies, then the first that does not, and where latency steps up. Where: high latency at one hop that stays high afterward indicates congestion at that hop.
Reading a trace:
stars in the MIDDLE, replies after -> that router just ignores ICMP (fine)
stars from a hop to the END -> the path breaks THERE
latency jumps at hop N and stays up -> congestion at/after hop N
loops (same hops repeating) -> a routing loop
Compare a working trace with a broken one to spot the divergence.Why: a single traceroute is a snapshot, but intermittent problems need continuous data — mtr runs traceroute in a loop and shows per-hop loss and latency updating live, which is far better for catching flaky links. When: use mtr for intermittent or latency issues; plain traceroute for a quick one-shot path check. Where: sustained loss that STARTS at one hop and continues points to that hop.
mtr google.com # live, continuous per-hop stats (Linux/macOS)
mtr --report google.com # run N cycles then print a summary
# Watch the Loss% column: loss that begins at hop N and persists to the
# end implicates hop N. Loss at one hop that DOESN'T carry forward is
# usually just that router rate-limiting ICMP.