I see two commands giving similar output but have no idea if there is a difference between the two or not. For e.g.
[$] tracepath debian.org
1?: [LOCALHOST] pmtu 1500
1: _gateway 0.819ms
1: _gateway 0.780ms
2: _gateway 0.751ms pmtu 1400
2: ??? 43.462ms
3: ??? 43.907ms asymm 4
4: ??? 48.361ms
5: ??? 46.492ms
6: ??? 48.009ms asymm 10
7: ??? 74.740ms asymm 9
8: ix-ae-4-2.tcore1.CXR-Chennai.as6453.net 69.183ms asymm 10
9: if-ae-13-2.tcore1.SVW-Singapore.as6453.net 285.982ms asymm 17
10: if-et-23-2.hcore2.KV8-Chiba.as6453.net 204.874ms
11: 10ge4-5.core1.pao1.he.net 298.418ms asymm 15
12: isc.gige-g4-17.core1.pao1.he.net 299.967ms asymm 14
13: debian.org 307.865ms reached
Resume: pmtu 1400 hops 13 back 14
and
[$] traceroute debian.org
traceroute to debian.org (149.20.4.15), 30 hops max, 60 byte packets
1 _gateway (192.168.1.1) 0.538 ms 1.083 ms 1.474 ms
2 117.195.64.1 (117.195.64.1) 26.240 ms 28.890 ms 31.076 ms
3 218.248.164.82 (218.248.164.82) 34.412 ms 37.050 ms 39.784 ms
4 218.248.235.197 (218.248.235.197) 45.841 ms 47.977 ms 50.955 ms
5 218.248.235.198 (218.248.235.198) 52.842 ms 56.184 ms 57.904 ms
6 61.246.195.185 (61.246.195.185) 61.216 ms 62.437 ms 115.113.165.93.static-mumbai.vsnl.net.in (115.113.165.93) 64.571 ms
7 172.17.169.202 (172.17.169.202) 94.358 ms 125.62.187.214 (125.62.187.214) 145.327 ms *
8 ix (180.87.36.9) 48.755 ms 54.609 ms 56.072 ms
9 if (180.87.36.83) 274.598 ms 100ge4-1.core1.nyc4.he.net (72.52.92.166) 309.468 ms 310.433 ms
10 100ge14-1.core1.sjc2.he.net (184.105.81.213) 295.462 ms 295.832 ms if (180.87.67.33) 198.356 ms
11 10ge4 (72.52.92.69) 299.283 ms 304.763 ms 297.574 ms
12 isc.gige (72.52.94.70) 310.593 ms 313.728 ms 286.095 ms
13 debian.org (149.20.4.15) 274.097 ms if-ae-7-2.tcore1.PDI-Palo-Alto.as6453.net (209.58.86.74) 259.125 ms debian.org (149.20.4.15) 279.229 ms
While I understand that both might have taken different routes, although had the same number of hops. I do see that the latter/second traceroute gives slightly more information about the servers in-between i.e. instead of just giving the static IP numbers, give the name/URL if somebody wants to address or figure out in-between address.
For what it's worth, here are the two packages/commands –
[$] dpkg -L iputils-tracepath | grep /usr/bin/tracepath
/usr/bin/tracepath
and
[$] traceroute: /usr/bin/traceroute.db
I have read the manpages, and at least for tracepath it says the main thing is giving the MTU and if my guess is right, that MTU is probably the gateway of my ISP which it shares as PMTU (I'm not sure what the P stands for)
_gateway 0.751ms pmtu 1400
all other connections are asymmetric which means they are prone to change.
Update – The link shared by the commentator seems to have some outdated info.
As far as I can tell neither of the commands need to be root anymore –
[$] which traceroute
/usr/bin/traceroute
[$] which tracepath
/usr/bin/tracepath
It has been hinted in one of the links shared on the askubuntu.com fora https://www.techwalla.com/articles/differences-between-traceroute-tracepath that traceroute has some more advanced commands
Unfortunately, that web-page is outdated so I'm not sure how good or bad it holds up today
[$] aptitude show traceroute | grep Version
Version: 1:2.1.0-2
[$] aptitude show iputils-tracepath | grep Version
Version: 3:20161105-1
It would be nice if somebody could compare between the two and share some of the findings.
Also could somebody share of the advanced commands that traceroute can do but tracepath cannot?
Looking forward to know.
Best Answer
traceroute
is the traditional UNIX command.tracepath
is a newer command which added in support for detecting the MTU. Sincetraceroute
now has an --mtu option and can be run as an ordinary user, I don't even bother to installtracepath
on my machines.If you want to try something fancier and more useful than either of those, give
mtr
(apt install mtr-tiny
) a shot. It's like a combination of traceroute and ping. In particular, I find the stripchart when using--displaymode 1
to be very useful for diagnosing exactly where network problems are occurring.