Get the App
SLTechnology News&Howtos  ›  Network Security  › 

Parsing the first checksum of ip protocol

Shulou Source: shulou.com Published: 2022-06-01 06:43:34 09月27日 Update

3. The checksum field is filled with zeros when the checksum field is initially calculated

This is how the checksum is calculated for the sender, and for the receiver, the verification is simple:

1. The received IP header is summed up one by one in 16 bits.

two。 If the result is 1, the check is correct, otherwise the error is discarded.

The principle is very simple, the receiver's calculation object is the inverse XOR of An and A, and the result is, of course, 1!

Specific examples of program implementation are as follows:

SHORT checksum (USHORT* buffer, int size)

{

Unsigned long cksum = 0

While (size > 1)

{

Cksum + = * buffer++

Size-= sizeof (USHORT)

}

If (size)

{

Cksum + = * (UCHAR*) buffer

}

Cksum = (cksum > > 16) + (cksum&0xffff)

Cksum + = (cksum > > 16)

Return (USHORT) (~ cksum)

}

IP header:

4500 0046

17d9 0000

4011 ec1d (check field)

Ac1c 0f3b

Ac1c 0f3d

Calculate:

4500 + 0046 + 17d9 + 0000 + 4011 + ec1d + ac1c + 0f3b + ac1c + 0f3d

The sum taken out is the checksum that should be filled.

When receiving an IP packet, to check whether the IP header is correct, check the IP header, using the same method as above:

Calculate:

44500 + 0046 + 17d9 + 0000 + 4011 + ec1d + ac1c + 0f3b + ac1c + 0f3d is added to FFFF again, and the result is all-in-one and correct.

Tags: Field result number example again unit principle sender header object message receiver receiver data method program check check verify Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Huawei Shulou Information vpn Apple OPPO Reno