5. Segmentierung
in TCP-Segment hat typischerweise eine Größe von maximal 1500 Bytes, auch wenn theoretisch größere TCP-Segmentgrößen möglich sind. Ein TCP-Segment muss jedoch in die darunter liegende Übertragungsschicht passen, das Internetprotokoll (IP).
IP-Pakete wiederum sind zwar theoretisch bis 65.535 Bytes (64 KiB) spezifiziert, werden aber selbst meist über Ethernet übertragen, und bei Ethernet ist die Rahmengröße auf 1500 Bytes festgelegt. TCP- und IP-Protokoll definieren jeweils einen Header von 20 Bytes Größe. Für die Nutzdaten bleiben in einem TCP/IP-Paket also 1460 Bytes (= 1500 Bytes [Nutzdaten] − 20 Bytes − 20 Bytes) übrig.
Die Anwendung, die Daten versenden möchte, etwa ein Webserver, legt zum Beispiel einen 10 Kilobyte großen Datenblock im Puffer ab.
Um mit einem 1460 Byte großen Nutzdatenfeld 10 Kilobyte Daten zu versenden, teilt man die Daten auf mehrere Pakete auf, fügt einen TCP-Header hinzu und versendet die TCP-Segmente. Dieser Vorgang wird Segmentierung genannt.
Der Datenblock im Puffer wird in fünf Segmente aufgeteilt. Jedes Segment erhält durch die TCP-Software einen TCP-Header. Drei TCP-Segmente wurden nacheinander abgeschickt. Diese kommen beim Empfänger nicht notwendigerweise in der gleichen Reihenfolge an wie sie versendet wurden, da im Internet unter Umständen jedes TCP-Segment einen anderen Weg nimmt. Damit die TCP-Software im Empfänger die Segmente wieder sortieren kann, ist jedes Segment nummeriert. Bei der Zuordnung der Segmente im Empfänger wird die Sequenznummer herangezogen.
Der Empfänger muss diejenigen TCP-Segmente bestätigen, die einwandfrei (das heißt mit korrekter Prüfsumme) angekommen sind.