‫Internet control message protocol ICMP is an error reporting protocol that network devices like routers
‫use to generate error messages to the source IP address when network problems prevent delivery of IP
‫packets.
‫ICMP messages are sent in several situations.
‫For example, when a data gram cannot reach its destination, when the Gateway does not have the buffering
‫capacity to forward a data gram.
‫And when a gateway can direct the host to send traffic on a shorter route.
‫The Internet protocol is not designed to be absolutely reliable.
‫No, I'll explain why.
‫Hold on.
‫The purpose of these control messages is to provide feedback about problems in the communication environment,
‫not to make IP reliable.
‫There's still no guarantees that a data Graham will be delivered or a control message will be returned.
‫Some two grams 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.
‫So the ICMP headers start after the IPV four header.
‫All ICMP packets have an eight byte header and variable size data section.
‫The first four bytes of the header have a fixed format.
‫While the last four bites depend on the type and code of that ICMP packet.
‫ICMP type and code in the header identifies a control message.
‫Some of the ICMP control messages are shown in this slide.
‫So Ping is the most well known application of the ICMP.
‫It operates by sending ICMP Echo request packets to the target host and then waiting for an ICMP Echo
‫reply.