Internet Control Message Protocol The IP (Internet Protocol) relies on several other protocols to perform necessary control and routing functions: Control functions (ICMP) Multicast signaling (IGMP) Setting up routing tables (RIP, OSPF, BGP, PIM, …) CA528 - Advanced Data Communications
CA528 - Advanced Data Communications Introduction • The Internet Control Message Protocol (ICMP) is ahelper protocol that supports IP with facility for Error reporting Simple queries ICMP messages are encapsulated as IP datagrams: CA528 - Advanced Data Communications
CA528 - Advanced Data Communications Message Format 4 byte header: Type (1 byte): type of ICMP message Code (1 byte): subtype of ICMP message Checksum (2 bytes): similar to IP header checksum. Checksum is calculated over entire ICMP message If there is no additional data, there are 4 bytes set to zero. Each ICMP messages is at least 8 bytes long CA528 - Advanced Data Communications
CA528 - Advanced Data Communications ICMP Query Message ICMP query: ICMP Request sent by host to a router or host ICMP Reply sent back to querying host CA528 - Advanced Data Communications
Example of ICMP Queries Type/Code: Description 8/0 Echo Request 0/0 Echo Reply 13/0 Timestamp Request 14/0 Timestamp Reply 10/0 Router Solicitation 9/0 Router Advertisement The ping command uses Echo Request/ Echo Reply CA528 - Advanced Data Communications
Example Query: Echo Request and Reply Pings are handled directly by the kernel Each Ping is translated into an ICMP Echo Request The Pinged host responds with an ICMP Echo Reply CA528 - Advanced Data Communications
Another Example: ICMP Timestamp A system (host or router) asks another system for the current time. Time is measured in milliseconds after midnight UTC (Universal Coordinated Time) of the current day Sender sends a request, receiver responds with reply CA528 - Advanced Data Communications
CA528 - Advanced Data Communications ICMP Error Message ICMP error messages report error conditions Typically sent when a datagram is discarded Error message is often passed from ICMP to the application program CA528 - Advanced Data Communications
CA528 - Advanced Data Communications ICMP error messages include the complete IP header and the first 8 bytes of the payload (typically: UDP, TCP) CA528 - Advanced Data Communications
Common ICMP Error Messages CA528 - Advanced Data Communications
Destination Unreachable CA528 - Advanced Data Communications
Example: ICMP Port Unreachable RFC 792: If, in the destination host, the IP module cannot deliver the datagram because the indicated protocol module or process port is not active, the destination host may send a destination unreachable message to the source host. CA528 - Advanced Data Communications