Skip to content

Instantly share code, notes, and snippets.

@zealfire
Created May 13, 2018 19:42
Show Gist options
  • Save zealfire/ef47eb8066db0043c1f98c4beef19f15 to your computer and use it in GitHub Desktop.
Save zealfire/ef47eb8066db0043c1f98c4beef19f15 to your computer and use it in GitHub Desktop.
The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information which indicates that a requested service is not available or that a host or router could not be reached.
It is layer 3 i.e. network layer protocol used by the ping command for sending message through ICMP payload which is encapsulated with IP Header packet. According to MTU the size of ICMP packet cannot be greater than 1500 bytes.
ICMP packet at Network layer
IP header ICMP header ICMP payload size MTU (1500)
20 bytes 8 bytes 1472 bytes (maximum) 20 + 8 + 1472 = 1500
ICMP packet at Data Link layer
Ethernet header IP header ICMP header ICMP payload size MTU (1514)
14 20 bytes 8 bytes 1472 bytes (maximum) 14 + 20 + 8 + 1472 = 1514
ICMP Message code & Packet description with Wireshark
ICMP message contains two types of codes i.e. query and error.
Query: The query messages are the information we get from a router or another destination host.
For example given below message types are some ICMP query codes:
Type 0 = Echo Reply
Type 8 = Echo Request
Type 9 = Router Advertisement
Type 10 = Router Solicitation
Type 13 = Timestamp Request
Type 14 = Timestamp Reply
A ping command sends an ICMP echo request to the target host. The target host responds with an echo Reply which means target host is alive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment