8

I wanted to know if there is a range which is usually used for destination port that is used in traceroute command. Like the starting address for destination port is 33434. but is there some standard range which is preferred for traceroute ?

0

3 Answers 3

9

Using UDP for traceroute is considered by some poor practice, because UDP is supposed to be a data-carrying application protocol. ICMP ECHO_REQUEST is the preferred method, though there is no standard. The main reason to use ICMP is that UDP can carry a payload, so allowing it through a firewall has greater security implications; for the end-user it's more likely to be blocked. It's also possible for an application to use the UDP ports resulting in potentially unwanted side-effects. Despite the preference for ICMP, classic traceroute(1) and its decedents all use UDP, including the implementations shipped with Mac OS X, most Linux distros, the BSDs and Cisco IOS.

For these UDP implementations the port number is incremented by 1 for each probe so the highest port number for any given run is equal to 33434 + (max-ttl * probes-per-hop - 1). The default setting for max-ttl is usually 32 or 64, depending on the implementation. The default probes-per-hop is usually 1 or 3. Using the more liberal defaults of 64 and 3, the range would be 33434-33625. In practice a max-ttl of 32 is usually more than enough in which case the range would be 33434-33529.

Also note that IANA has allocated only port 33434 to traceroute, but it has left 33435-33655 unallocated.


For info on ICMP vs. UDP see: Why do some common traceroute implementations default to using UDP probes?

4

After googling I found out that 33434 is the port that is used as the base port for traceroute.

The range goes to 33434 + (max-ttl * numberofprobes - 1), that usually means

  • max-ttl = 30
  • numberofprobes = 3
3

Traceroute works by sending ICMP packets, which are their own protocol entirely. No ports.

In more detail - traceroute sends ICMP echo packets starting with a TTL of 1. That causes the packet to return a failure at the first router. Then a TTL of 2 - which brings it to the second router. TTL is increased until the destination is reached. The set of routers found along the way is the traced route.

7
  • We can specify the destination port where the udp packets are send to the destination .(I am going for linux implementaion) .
    – Jiten Shah
    Nov 9, 2011 at 4:50
  • Why do you prefer a UDP packet over the standard ICMP echo? Nov 9, 2011 at 5:00
  • actually i have a assignment in my college and I need to add some options to it . the orignal code provided to me uses UDP .
    – Jiten Shah
    Nov 9, 2011 at 5:12
  • What does the assignment ask you to do? Nov 9, 2011 at 5:26
  • to add the port option to the command . It internally uses 33434(default value) as the destination port but I need to add option to the command thru which we can specify the destiantion port .
    – Jiten Shah
    Nov 9, 2011 at 5:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .