ICMP Type Numbers

The Internet Protocol [IP] is not designed to be absolutely reliable. The purpose of these control messages [ICMP] is to provide feedback about problems in the communication environment, not to make IP reliable. There are still no guarantees that a datagram will be delivered or a control message will be returned. Some datagrams may still be undelivered without any report of their loss. The higher level protocols that use IP (the transport layer, if TCP, or the application, if UDP) must implement their own reliability procedures if reliable communication is required.

The ICMP messages typically report errors in the processing of datagrams. To avoid the infinite regress of messages about messages etc., no ICMP messages are sent about ICMP messages. Also ICMP messages are only sent about errors in handling fragment zero of fragmented datagrams. (Fragment zero has the fragment offset equal zero).

The Internet Control Message Protocol (ICMP) has many messages that are identified by a "type" field, these are defined by RFCs. Many of the types of ICMP message are now obsolete and are no longer seen in the Internet. Some important ones which are widely used include:

Echo Reply (0), Echo Request (8), Redirect (5), Destination Unreachable (3), Traceroute (30), Time Exceeded (11).

The full list (from RFC1700) is shown below:

Type    Name                                    Reference
----    -------------------------               ---------
  0     Echo Reply                               [RFC792]
  1     Unassigned                                  [JBP]
  2     Unassigned                                  [JBP]
  3     Destination Unreachable                  [RFC792]
  4     Source Quench                            [RFC792]
  5     Redirect                                 [RFC792]
  6     Alternate Host Address                      [JBP]
  7     Unassigned                                  [JBP]
  8     Echo                                     [RFC792]
  9     Router Advertisement                    [RFC1256]
 10     Router Selection                        [RFC1256]
 11     Time Exceeded                            [RFC792]
 12     Parameter Problem                        [RFC792]
 13     Timestamp                                [RFC792]
 14     Timestamp Reply                          [RFC792]
 15     Information Request                      [RFC792]
 16     Information Reply                        [RFC792]
 17     Address Mask Request                     [RFC950]
 18     Address Mask Reply                       [RFC950]
 19     Reserved (for Security)                    [Solo]
 20-29  Reserved (for Robustness Experiment)        [ZSu]
 30     Traceroute                              [RFC1393]
 31     Datagram Conversion Error               [RFC1475]
 32     Mobile Host Redirect              [David Johnson]
 33     IPv6 Where-Are-You                 [Bill Simpson]
 34     IPv6 I-Am-Here                     [Bill Simpson]
 35     Mobile Registration Request        [Bill Simpson]
 36     Mobile Registration Reply          [Bill Simpson]
 37-255 Reserved                                    [JBP]

Many of these ICMP types have a "code" field. Here we list the types again with their assigned code fields.

Type    Name                        
----    -------------------------              
  0     Echo Reply                          (used by "ping")                     
		 Codes
            0  No Code
  1     Unassigned 
  2     Unassigned
  3     Destination Unreachable 
        Codes
            0  Net Unreachable
            1  Host Unreachable
            2  Protocol Unreachable
            3  Port Unreachable
            4  Fragmentation Needed and Don't Fragment was Set
            5  Source Route Failed
            6  Destination Network Unknown
            7  Destination Host Unknown
            8  Source Host Isolated
            9  Communication with Destination Network is
               Administratively Prohibited
           10  Communication with Destination Host is
               Administratively Prohibited
           11  Destination Network Unreachable for Type of Service
           12  Destination Host Unreachable for Type of Service
  4     Source Quench                           
        Codes
            0  No Code
  5     Redirect                                 
        Codes
            0  Redirect Datagram for the Network (or subnet)
            1  Redirect Datagram for the Host
            2  Redirect Datagram for the Type of Service and Network
            3  Redirect Datagram for the Type of Service and Host
  6     Alternate Host Address 
        Codes
            0  Alternate Address for Host
  7     Unassigned 
  8     Echo                 						(used by "ping")
        Codes
            0  No Code
  9     Router Advertisement 
        Codes
			  0  No Code
 10     Router Selection   
        Codes
            0  No Code
 11     Time Exceeded 
        Codes
            0  Time to Live exceeded in Transit
            1  Fragment Reassembly Time Exceeded
 12     Parameter Problem 
        Codes
            0  Pointer indicates the error
            1  Missing a Required Option   
            2  Bad Length
 13     Timestamp                                
        Codes
            0  No Code
 14     Timestamp Reply     
        Codes
            0  No Code
 15     Information Request 
        Codes
            0  No Code
 16     Information Reply            
        Codes
            0  No Code
 17     Address Mask Request    
        Codes
            0  No Code
 18     Address Mask Reply  
        Codes
            0  No Code
 19     Reserved (for Security) 
 20-29  Reserved (for Robustness Experiment) 
 30     Traceroute                             
 31     Datagram Conversion Error       
 32     Mobile Host Redirect              
 33     IPv6 Where-Are-You                
 34     IPv6 I-Am-Here                
 35     Mobile Registration Request      
 36     Mobile Registration Reply     


Gorry Fairhurst - Department of Engineering, University of Aberdeen, Scotland, UK.

http://www.erg.abdn.ac.uk/users/gorry Date: 10/11/1995 Revised: 7/10/2003