With our three‑way handshake successfully completed,
it's time to send our data. But how is our data transported?
Let's take a closer look into data segmentation.
Data segmentation utilizes multiple mechanisms to achieve its end goal.
First, the data being transported is chunked into smaller sections.
The data is then numbered via the sequence number. The
sequence number is incremented in integers of 1.
But it also adds the TCP payload to the integer number.
Let's say we had a session with a sequence number of 57 and a TCP
payload of 2. Our next sequence number would be 59. If we were to view
this through an application like Wireshark,
the acknowledgment number would acknowledge the data that's been sent.
So using our prior example of the sequence number 59, the receiving
computer's acknowledgement number should be 59.
Let's drop to a quick diagram to explain this further.
In this scenario,
the computer of 192.168.1.1 would like to download a super cool image of a
robot from the web server of 192.168.1.100. With the three‑way handshake
and windowing between both devices completed,
the download now can begin.
The web server breaks the image down into four separate sequences,
which are then transported to the computer of
192.168.1.1. But it looks like a problem has occurred as
all the data has arrived successfully, but it's out of order. Luckily for us, that's where reassembly comes into play.