Is cyclic redundancy check (CRC) done by Internet Control Message Protocol(ICMP)?
How can Time to live (TTL) help for this?
Network Engineering Stack Exchange is a question and answer site for network engineers. It only takes a minute to sign up.Sign up to join this community
ICMP is used to send IP layer notifications between hosts. The IPv4 header has got a header checksum, as do many transport layer protocol headers.
TTL is a method to keep packets from circulating endlessly in case of a routing loop. Each hop decrements the TTL value until the destination is reached or the TTL expires. In the latter case, the last hop drops the packet and is supposed to return an ICMP "time exceeded" message to the source (but not nearly all do) except for ICMP messages themselves.
In addition to Zac67's good clarification about ICMP and TTL, cyclic redundancy check (CRC) is an error-detection technique typically used in the link layer in an adapter.
Before talking about CRC, you should know the checksum method which is used in the transport layer protocol (header and date) and network layer protocol IPv4 (header only) to detect errors in packets. In this method, bytes of data treated as 16-bit integers are summed. The 1s complement of this sum then forms the checksum.
Now, for CRC, it is implemented in dedicated hardware in adapters for the link layer protocol, which can rapidly perform the more complex CRC operations. It can detect "burst" errors (bit errors clustered together). The basic idea is to use a generator, denoted as G. Consider a d-bit piece of sending data, D. The sender will choose r additional bits, R, and append them the D such that the resulting d+r bit pattern is exactly divisible by G using modulo-2 arithmetic. The receiver will divide received d+r bit pattern by G. If the remainder is nonzero, the receiver knows that an error has occurred.