IPv4 header checksum
The IPv4 header checksum is a simple checksum used in version 4 of the Internet Protocol (IPv4) to protect the header of IPv4 data packets against data corruption. This checksum is calculated only for the header bytes (with the checksum bytes set to 0), is 16 bits long and is a part of the P packet header.
The checksum is calculated by forming the ones' complement of the ones' complement sum of the header's 16-bit words. The result of summing the entire IP header, including checksum, should be zero if there is no corruption. At each hop, the checksum is recalculated and the packet will be discarded upon checksum mismatch. The router must adjust the checksum if it changes part of the IP header (such as when decrementing the TTL.)
The IPv6 protocol lacks a header checksum: its designers considered that the whole-packet link-layer checksumming provided in layer 2 transports such as PPP and Ethernet, combined with the use of checksums in upper-layer protocols such as TCP and UDP, were sufficient to make a separate header checksum unnecessary.