The Unix/Linux `traceroute` command and the Microsoft Windows `tracert` commands both accomplish the task of tracing network paths, but they do it in slightly different ways.
Both of these tools for tracing network routes send out a packet wth TTL (Time To Live) set to 1 and report it’s destnation. Then, they send out a packet with TTL=2 and report it’s destination. They continue until the packets reach their final destination or the TTL limit is exceeded.
The difference is that Unix/Linux `traceroute` uses UDP (User Datagram Protocol) packets to a random high port number, while Microsoft Windows uses ICMP (Internet Control Message Protocol) packets.
This difference is critical when trying to understand why traceroute sometimes fails. The firewall rulesets and the router Access Control Lists (ACLs) between you and the destination must be examined to determine if they allow UDP high ports (port numbers above 1024) and/or ICMP.
In addition, the command line options for Microsoft Windows `tracert` differ from the command line options for Unix/Linux `traceroute`. However, the command line options for Unix/Linux `traceroute` also differ between Unix versions. Read the manual page for your Unix/Linux system to explore the troubleshooting options available to you.
archit
what is mean by udp high ports? it has to be some fixed number , means standard udp port isn’t it?
WillSpencer
High ports are port numbers above 1,024.
archit
ya that is ok, so sender use high port but machine which receives this request will receive it on standard UDP port , right?
it may have close other ports for security reason
WillSpencer
That’s how most TCP and UDP protocols work: receivers wait on standard low ports and senders transmit on randomly chosen high ports.
Washuu
Very informative. Thank you.
Noreaga
thanks you