Associated with IP is a
control protocol called the Internet control message protocol, or
ICMP, which sends control messages between hosts and
routers. ICMP messages are carried in IP datagrams
with the Protocol field set to 1. There are a number of different ICMP message
types usually sent by routers to inform hosts of errors or of better routes.
Some examples are:
destination unreachable, when a router cannot find an entry for a datagram and so cannot forward it;
source quench, when a router has no more buffer space available it discards datagrams and sends a "source quench" to ask the sender to slow its transmission rate;
routing redirect, where one
router informs a host or other router of a better route to a given destination;
time exceeded, where a datagram
has died because its Time-to-live has expired or reassembly timer expires before
all fragments of a datagram have arrived;
echo request, asks a target
system to echo back in an echo reply message;
timestamp request, asks target to echo a message in a timestamp reply, where the latter is stamped with the arrival time of the request and the departure time of the reply;
address mask request is broadcast by a host when it boots, asking any neighbouring router to send it the subnet mask in use on its network using an address mask reply.
ICMP is used to create some useful network utilities, notably ping, tracert and pathping. For example, ping simply sends an Echo Request to a selected destination and waits to see if an Echo Reply is received: this is useful in determining whether a host or router is alive. tracert sends out an Echo Request to a destination but with the ttl field of its IP packet set to 1. The first router on the path decrements this to zero and kills the packet, but also sends back a Time Exceeded message identifying itself. Next, an Echo Request with a ttl of 2 is sent, forcing the second router on the path to identify itself and so on until the source has a complete list of the routers on the current path to the selected destination. pathping is similar to tracert but also repeatedly pings routers on the path to a chosen destination and estimates the packet losses caused by overloaded routers (congestion). This can be helpful in attempting to locate the source of any problem experienced in reaching a destination.
Exercise: Open a Windows 2000 Command Windows and experiment with the three utilities mention. To get options for each command, type it with no parameters. Note that tracert and pathping both report round trip times to routers and both use 'return asterisks if a router does not reply.