The difference between tracert(windows) and traceroute(linux) is that:
tracert(windows) will only use ICMP echo requests.
traceroute(linux) [and somewhat dependent on linux distro] default to UDP echo requests.
Both solutions are very old, and surprisingly have worked for a very long time, because for a large part of the internet's history many portions of the internet would still pass-along both types of traffic without filtering it. However, as time has progressed more & more core traffic routers have began filtering these "echo" requests. (For more information on echo requests, start here: https://en.wikipedia.org/wiki/Echo_Protocol)
An alternative to either ICMP or UDP echo requests is used by TCP Traceroute, in that it uses TCP SYN packets which are better able to traverse modern firewalls.
TCP Traceroute on Windows And Linux
and for a writeup on how it works:
And here's a copy of one of the simple/typical usage examples:
C:\tracetcp>tracetcp www.redhat.com:443 -h 3
Tracing route to 22.214.171.124 [a184-85-48-112.deploy.akamaitechnologies.com] on
Over a maximum of 30 hops.
3 32 ms 50 ms 56 ms 172.20.16.65
4 34 ms 14 ms 33 ms 172.26.16.1
5 503 ms 14 ms 68 ms 172.20.7.34
6 43 ms 170 ms 25 ms 126.96.36.199
7 28 ms 86 ms 26 ms 188.8.131.52
8 216 ms 168 ms 99 ms 184.108.40.206
9 * * * Request timed out.
10 Destination Reached in 211 ms. Connection established to 220.127.116.11
You MUST install the winpcap library for this version to work. tracetcp has been tested with version 3.* and 4.* of this library. (Because WinXP SP2 removed raw sockets.) But if you're a network guy, you probably already have winpcap & wireshark already installed anyway.