After studying this chapter you will be able to: Be familiar with the ICMP message format, know the types of error reporting messages, know the types of query messages, be able to calculate the ICMP checksum, know how to use the ping and traceroute commands, understand the modules and interactions of an ICMP package. | Chapter 9 Internet Control Message Protocol (ICMP) CONTENTS TYPES OF MESSAGES MESSAGE FORMAT ERROR REPORTING QUERY CHECKSUM ICMP PACKAGE Figure 9-1 Position of ICMP in the network layer Figure 9-2 Encapsulation of ICMP packet TYPES OF MESSAGES Figure 9-3 ICMP messages MESSAGE FORMAT Figure 9-4 General format of ICMP messages ERROR REPORTING ICMP always reports error messages to the original source. Figure 9-5 Error-reporting messages Important points about ICMP error messages: 1. No ICMP error message for a datagram carrying an ICMP error message. 2. No ICMP error message for a fragmented datagram that is not the first fragment. 3. No ICMP error message for a datagram having a multicast address. 4. No ICMP error message for a datagram with a special address such as or . Figure 9-6 Contents of data field for error messages Figure 9-7 Destination-unreachable format Destination-unreachable messages with codes 2 or 3 can be created only by the . | Chapter 9 Internet Control Message Protocol (ICMP) CONTENTS TYPES OF MESSAGES MESSAGE FORMAT ERROR REPORTING QUERY CHECKSUM ICMP PACKAGE Figure 9-1 Position of ICMP in the network layer Figure 9-2 Encapsulation of ICMP packet TYPES OF MESSAGES Figure 9-3 ICMP messages MESSAGE FORMAT Figure 9-4 General format of ICMP messages ERROR REPORTING ICMP always reports error messages to the original source. Figure 9-5 Error-reporting messages Important points about ICMP error messages: 1. No ICMP error message for a datagram carrying an ICMP error message. 2. No ICMP error message for a fragmented datagram that is not the first fragment. 3. No ICMP error message for a datagram having a multicast address. 4. No ICMP error message for a datagram with a special address such as or . Figure 9-6 Contents of data field for error messages Figure 9-7 Destination-unreachable format Destination-unreachable messages with codes 2 or 3 can be created only by the destination host. Other destination-unreachable messages can be created only by routers. A router cannot detect all problems that prevent the delivery of a packet. There is no flow-control mechanism in the IP protocol. Figure 9-8 Source-quench format A source-quench message informs the source that a datagram has been discarded due to congestion in a router or the destination host. The source must slow down the sending of datagrams until the congestion is relieved. One source-quench message should be sent for each datagram that is discarded due to congestion. Whenever a router receives a datagram with a time-to-live value of zero, it discards the datagram and sends a time-exceeded message to the original source. When the final destination does not receive all of the fragments in a set time, it discards the received fragments and sends a time-exceeded message to the original source. In a time-exceeded message, code 0 is used only by routers to show that the value of