This preview shows page 1. Sign up to view the full content.
Unformatted text preview: field puts an
upper limit on these looping datagrams.
When a router gets an IP datagram whose TTL is either 0 or 1 it must not forward the
datagram. (A destination host that receives a datagram like this can deliver it to the
application, since the datagram does not have to be routed. Normally, however, no system
should receive a datagram with a TTL of 0.) Instead the router throws away the datagram
and sends back to the originating host an ICMP "time exceeded" message. The key to
Traceroute is that the IP datagram containing this ICMP message has the router's IP address
as the source address.
We can now guess the operation of Traceroute. It sends an IP datagram with a TTL of 1 to
the destination host. The first router to handle the datagram decrements the TTL, discards
the datagram, and sends back the ICMP time exceeded. This identifies the first router in the
path. Traceroute then sends a datagram with a TTL of 2, and we find the IP address of the
second router. This continues until the datagram reaches the destination host. But even
though the arriving IP datagram has a TTL of 1, the destination host won't throw it away
and generate the ICMP time exceeded, since the datagram has reached its final destination.
How can we determine when we've reached the destination?
Traceroute sends UDP datagrams to the destination host, but it chooses the destination UDP
port number to be an unlikely value (larger than 30,000), making it improbable that an
application at the destination is using that port. This causes the destination host's UDP
module to generate an ICMP "port unreachable" error (Section 6.5) when the datagram
arrives. All Traceroute needs to do is differentiate between the received ICMP messagestime exceeded versus port unreachable-to know when it's done.
The Traceroute program must be able to set the TTL field in the outgoing datagram. Not all
programming interfaces to TCP/IP support this, and not all implementations support the
capability, but most current systems do, and are able to run...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12