Netzwerkschichten
 Transportschicht 
TCP

TCP (Transmission Control Protocol) erstellt immer eine point to point-Verbindung in der die Daten gleichzeitig in beide Richtungen übertragen werden können (Vollduplex). Die von lokalen Prozessen ankommenden Daten werden in max. 64 kByte, meist jedoch 1500 Byte große Pakete zerlegt, und jeweils als einzelnes IP-Datagramm verschickt.

Zu Beginn einer Datenübertragung mit TCP wird vom Sender eine Verbindungsanfrage an den Empfänger geschickt (Connection Request) worauf der Empfänger üblicherweise antwortet (Connection accepted). Anschließend besteht diese Verbindung solange bis die Verbindung beendet wird (Disconnect) oder aber das Netzwerk gestört ist. Für jedes ankommende Datensegment wird vom Empfänger eine Bestätigung an den Sender verschickt. Kommt die Empfangsbestätigung nicht innerhalb eines bestimmten Zeit-Intervalls (Timeout) wieder beim Sender an, verschickt dieser nochmals das unbestätigte Datensegment. Auch in falscher Reihenfolge ankommende IP-Datagramme werden vom TCP des Empfängers wieder geordnet und an den zugeordneten Anwendungsprozeß weitergeleitet.


TCP Datensegment

Jedem übertragenem Datenbyte wird unter TCP eine Abschnittsnummer gegeben. Im Abschnittsnummernfeld steht die Abschnittsnummer des ersten Datenbyte dieses Segments. Die Bestätigungsnummer gibt an, welches Segment der Sender als nächstes erwartet. Das Flagfeld steuert den Protokollbetrieb und enthält einen Teil der die Länge des TCP-Headers beziffert. Das Fenster-Feld dient der Flußsteuerung, um unterschiedlich schnelle Rechner aneinander anzupassen. Die Prüfsumme enthält einen Wert zur Überprüfung der Gültigkeit des Segments. Mögliche Protokolloptionen folgen und als letztes kommt das Datenfeld.

Fehler innerhalb der Datenübertragung können verschiedene Gründe haben. Häufige Ursache von Fehlern sind Engpässe im Bereich des Datenweges einer TCP-Verbindung. Diese müssen erkannt und die Datenrate daran angepaßt werden.
TCP verschickt ein neues Datenpaket erst dann, wenn das vorherige angekommen ist. Dieses Abwarten durch einen Timeout begrenzt, der eine zeitliches Fenster definiert, in dem die Datensegmente verschickt werden. Um Überlastungen zu vermeiden, wird schon beim Verbindungsaufbau die max. Datenrate der TCP-Verbindung ermittelt. Zum einen wird das Fenster durch die Puffergröße des Empfängers, dem Empfängerfenster begrenzt, diese Begrenzung wird dem Sender vom Empfänger übermittelt.
Zum anderen stellt jede Übertragungsstrecke nur eine begrenzte Kapazität zur Verfügung. Verzögert sich der Transport der Datensegmente an einem langsameren Teilnetz stauen sich die darauffolgenden Datensegmente und erreichen den Empfänger nicht mehr innerhalb des vorgegebenen Zeitfensters, diese unbestätigten Datensegmente werden nochmals gesendet und der Datenstau vergrößert bis zum Zusammenbruch der Übertragung. Die Begrenzung durch die Übertragungsstrecke bestimmt das sogenannte Überlastungsfenster (Congestion Window).