# Calculate IPv4 (Internet Protocol) Packet Checksum? - Theory

Posted by Suraj Singh on January 14, 2018 · 6 mins read

#### Introduction

Well, guys, we all know that In programming profession many times we have to work on a project related to Networking. In Networking Projects, Without Understanding protocol concept clearly, Networking projects drives our mind crazy. Actually, the Calculating checksum is very hard and difficult concept for many guys because Networking concept is very big and complex. Hence, In networking protocols packets concept, the IPv4 checksum is an important topic to understand Because IPv4 checksum is One type of the hash value of complete packet that verifies the completeness and status of the packet. During a TCP  communication, Client Always sends IP checksum values into the IP packet so that the packet receiving server application can analyze the packet value and recalculate the checksum to verify the status of the packet.
So, are you working on a networking project where you created IPv4 ( Internet Protocol version 4 ) packets from scratch but don't know how to find checksum IPv4 packets? well, readers, you came to the right place. here, I am going to share with you the actual binary concept to calculate the checksum of IPv4 ( Internet Protocol version 4 ) packets. Before starting this tutorial, I want to highlight that for this tutorial you need basic information of binary number operations. By the way, In

#### How it works?

To calculate the checksum of IPv4 packet first, we need to create a complete IPv4 Header packet with checksum value set to Zero bytes to calculate the actual checksum of IPv4 packet.

Let me explore this theory concept in more depth so that you guys can understand it easily. actually first, we have to divide and slice binary data into 16 bits pieces. After slicing in 16-bit pieces, we have to do find out the binary addition of all sliced pieces. After getting the binary sum of 16-bit pieces, there is one more small trick before one's complement of the binary sum. actually, we just need to take a 4-bit number from starting point of binary number and then add it again with the main binary sum. At last, calculate one's complement of the binary sum. done! I hope now you got the basic concept of IPv4 Packet CheckSum.

#### Example To Understand Theory.

Step 1.

Let assume that We have 4 bytes of IPv4 header data (32-bits).

`Binary Representation = 10000000111111100101011111001010`

Step 2.

Divide binary Number Into 16-bit pieces.

`0                16-bit             32-bit    --------------------------------------- 1000000011111110   0101011111001010 ---------------------------------------`

Step 3.

Calculate the sum of all sliced pieces of binary numbers.

`  0-bit           16-bit   1000000011111110    + 0101011111001010 ----------------------   01101100011001000-----------------------`

Step 4.

Add 4-bits of binary number into the calculated binary number. here, these 4 bits are nothing other than starting 4 digits of the same calculated binary number.

` Calculated Binary Numbers =    011011000110010004-bit to add into same binary number = { 0110 } 1100011001000Addtion:  0-bit           16-bit   01101100011001000    +              0110----------------------   01101100011001110-----------------------`

Step 5.

Find One's Complement. (Just Change All 0's Into 1's).

`Binary Number    = 01101100011001110One's Complement = 00010011100110001`

Step 6.

Done! That One's Complemented binary number is our checksum.

`CheckSum = One's Complement = 00010011100110001`

I hope you enjoyed this tutorial.
if you have any suggestion or query.
comment below

have a nice day.