What are the specific ICMP errors that are generated during a tracero.docx
1. What are the specific ICMP errors that are generated during a
traceroute? In the diagram below, which systems would
generate which messages, if the traceroute was being run from
"System 1" to trace to "System 2"?
Solution
Ans;
Traceroute was designed to reveal when network failures such
as routing loops and black holes occur and shows roughly where
those failures exist.
1)The user sitting in front of the computer BINKY runs the
tracert command at the command line. The command line is the
MS-DOS prompt in Windows.
2)The user types the word tracert followed by the destination
address, which can be either a name or an IP address, and
presses the enter or return key on the keyboard.
Windows / MS-DOS
c:> tracert login.oscar.aol.com
3)Binky, running tracert on a Windows computer creates 3
2. ICMP echo (ICMP type '8') messages with the time to live in
the IP Header set to 1 and addresses the packets set to the
destination computer's IP address (we'll call the destination
computer clown).
4)Binky starts a timer.
5)Binky sends the three messages destined for clown out to the
network.
6)Binky waits for a response. This response will be:
An ICMP Time Exceeded message - this means the host
responding is not the destination.
An ICMP Destination Unreachable - this means the host
responding doesn't know how to get to the destination IP
address in the traceroute packets.
7)The computer on which the messages die because the time to
live expired (somewhere between Binky and clown ) sends back
ICMP Time Exceeded (ICMP Type '11') responses. These
messages indicate to Binky that the traceroute messages have
not yet reached the destination clown.
8)Binky receives those Time Exceeded messages, notes the
time they arrived, compares that to the time the ICMP Echo
Request was sent and shows the results of that round trip on the
screen.
9)Binky increments the TTL in the IP Header by one, then
3. repeats steps the previous six steps (creates 3 packets, sets the
Time to Live to the next highest number, starts a timer,
transmits the packets, waits for a response). This process is
repeated until the packets reach the destination computer
(clown) which Binky is tracing the route to.
10)When the destination computer (clown) receives the
packets, it sends back an ICMP Reply (ICMP type '0') and the
traceroute program stops.
If a router finds a TTL value of 1 or 0, it drops the datagram
and sends back an Internet Control Message Protocol (ICMP)
Time-Exceeded message to the sender. Traceroute determines
the IP address of the first hop by examining the source address
field of the ICMP Time-Exceeded message.
To identify the next hop, traceroute sends a UDP packet with a
TTL value of 2. The first router decrements the TTL field by 1
and sends the datagram to the next router. The second router
sees a TTL value of 1, discards the datagram, and returns the
Time-Exceeded message to the source. This process continues
until the TTL is incremented to a value large enough for the
datagram to reach the destination host or until the maximum
TTL is reached or the destniation host replies with an ICMP
Echo Reply.
4. The Traceroute command didn't actually work very well
originally because of the interpretation of RFC 791 by routing
equipment vendors. Thus, to fix this, Van Jacobson wrote a
variant to Traceroute that worked so well and reliably, it was
ported to all systems and used as the default. Many college
textbooks still refer to this application when describing the
functionality inside traceroute.
The Van Jacobson version used outbound UDP datagrams from
the host running traceroute instead of ICMP. This was the
default on any system using the Van Jacobson version of
Traceroute including most BSD and UNIX type systems.
To determine when a datagram reached its final destination,
traceroute set the UDP destination port in the datagram to a
very large value (33434 or higher) that the destination host is
unlikely to be using. When a host receives a datagram with an
unrecognized port number, it sends an ICMP Port Unreachable
error message to the source. The Port Unreachable error
message indicates to traceroute that the destination has been
reached.