ICMP is another critical network protocol that does not exchange or transport data. Its primary role is error reporting. Because IP is a best-effort, unreliable protocol, ICMP must be implemented by every IP module, as outlined in the original RFC, which is found at https://tools.ietf.org/html/rfc792. ICMP reports on issues encountered during transit such as network unreachable and host unreachable. Because there are two IP versions, there are two versions of ICMP:
- IPv4 uses ICMP
- IPv6 uses ICMPv6
During the encapsulation process, the PDU at the network layer is a packet. The network layer is responsible for routing and addressing data. One key element is an IP or logical address, as described next.