ICMP, Internet Control Message Protocol

Description Glossary RFCs Publications Obsolete RFCs

Description:

Protocol suite: TCP/IP.
Protocol type:Transport layer control protocol.
IP Protocol:1.
MIME subtype:
SNMP MIBs:iso.org.dod.internet.mgmt.mib-2.icmp (1.3.6.1.2.1.5).
Working groups: itrace, ICMP Traceback.
Links: IANA: ICMP parameters.

RFC 792, page 2:

ICMP messages are sent in several situations: for example, when a datagram cannot reach its destination, when the gateway does not have the buffering capacity to forward a datagram, and when the gateway can direct the host to send traffic on a shorter route. The Internet Protocol is not designed to be absolutely reliable. The purpose of these control messages 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 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.

IP implementations are required to support this protocol. ICMP is considered an integral part of IP, although it is architecturally layered upon IP. ICMP provides error reporting, flow control and first-hop gateway redirection.


MAC header IP header ICMP header Data :::

ICMP header:

0001020304050607 0809101112131415 1617181920212223 2425262728293031
Type Code ICMP header checksum
Data :::

Type. 8 bits.
Specifies the format of the ICMP message.

TypeDescriptionReferences
0 Echo reply. RFC 792
1  
2  
3 Destination unreachable. RFC 792
4 Source quench. RFC 792
5 Redirect. RFC 792
6Alternate host address. 
7  
8 Echo request. RFC 792
9 Router advertisement. RFC 1256
10 Router solicitation. RFC 1256
11 Time exceeded. RFC 792
12 Parameter problem. RFC 792
13 Timestamp request. RFC 792
14 Timestamp reply. RFC 792
15 Information request. Obsolete. RFC 792
16 Information reply. Obsolete. RFC 792
17 Address mask request. RFC 950
18 Address mask reply. RFC 950
19reserved (for security). 
20
-
29
reserved (for robustness experiment). 
30 Traceroute. RFC 1393
31 Conversion error. RFC 1475
32Mobile Host Redirect. 
33IPv6 Where-Are-You. 
34IPv6 I-Am-Here. 
35Mobile Registration Request. 
36Mobile Registration Reply. 
37 Domain Name request. RFC 1788
38 Domain Name reply. RFC 1788
39SKIP Algorithm Discovery Protocol. 
40Photuris, Security failures. RFC 2521
41Experimental mobility protocols. RFC 4065
42
-
255
Reserved. 

Code. 8 bits.
Further qualifies the ICMP message.

ICMP Header Checksum. 16 bits.
Checksum that covers the ICMP message. This is the 16-bit one's complement of the one's complement sum of the ICMP message starting with the Type field. The checksum field should be cleared to zero before generating the checksum.

Data. Variable length.
Contains the data specific to the message type indicated by the Type and Code fields.


Glossary:


RFCs:

[IEN 212] IP - Local Area Network Addressing Issues.

[RFC 777] Internet Control Message Protocol.

[RFC 778] DCNET Internet Clock Service.

[RFC 792] INTERNET CONTROL MESSAGE PROTOCOL.

[RFC 816] FAULT ISOLATION AND RECOVERY.

[RFC 844] Who Talks ICMP, too? Survey of 18 February 1983.

[RFC 950] IP Subnet Extension.

[RFC 1108] U.S. Department of Defense Security Options for the Internet Protocol.

[RFC 1122] Requirements for Internet Hosts -- Communication Layers.

[RFC 1123] Requirements for Internet Hosts -- Application and Support.

[RFC 1127] A Perspective on the Host Requirements RFCs.

[RFC 1156] Management Information Base for Network Management of TCP/IP-based internets.

[RFC 1191] Path MTU Discovery.

[RFC 1213] Management Information Base for Network Management of TCP/IP-based internets: MIB-II.

[RFC 1256] ICMP Router Discovery Messages.

[RFC 1393] Traceroute Using an IP Option.

[RFC 1435] IESG Advice from Experience with Path MTU Discovery.

[RFC 1475] TP/IX: The Next Internet.

[RFC 1788] ICMP Domain Name Messages.

[RFC 1812] Requirements for IP Version 4 Routers.

[RFC 1940] Source Demand Routing: Packet Format and Forwarding Specification (Version 1).

[RFC 2003] IP Encapsulation within IP.

[RFC 2474] Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers.

[RFC 2521] ICMP Security Failures Messages.

[RFC 2765] Stateless IP/ICMP Translation Algorithm (SIIT).

[RFC 2780] IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers.

[RFC 3344] IP Mobility Support for IPv4.

[RFC 4065] Instructions for Seamoby and Experimental Mobility Protocol IANA Allocations.

[RFC 4067] Context Transfer Protocol (CXTP).

[RFC 4213] Basic Transition Mechanisms for IPv6 Hosts and Routers.

[RFC 4293] Management Information Base for the Internet Protocol (IP).

[RFC 4301] Security Architecture for the Internet Protocol.


Publications:


Obsolete RFCs:

[RFC 760] DOD STANDARD INTERNET PROTOCOL.

[RFC 985] Requirements for Internet Gateways -- Draft.

[RFC 1009] Requirements for Internet Gateways.

[RFC 1038] Draft Revised IP Security Option.

[RFC 1063] IP MTU Discovery Options.

[RFC 1066] Management Information Base for Network Management of TCP/IP-based internets.

[RFC 1349] Type of Service in the Internet Protocol Suite.

[RFC 1716] Towards Requirements for IP Routers.

[RFC 1825] Security Architecture for the Internet Protocol.

[RFC 1933] Transition Mechanisms for IPv6 Hosts and Routers.

[RFC 2002] IP Mobility Support.

[RFC 2011] SNMPv2 Management Information Base for the Internet Protocol using SMIv2.

[RFC 2401] Security Architecture for the Internet Protocol.

[RFC 2893] Transition Mechanisms for IPv6 Hosts and Routers.

[RFC 3220] IP Mobility Support for IPv4.


Description Glossary RFCs Publications Obsolete RFCs