Netzwerkschichten | ||
Transportschicht | ||
|
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).