Grundlagen TCP/IP



Das Transport Control Protocol (TCP) ist um einiges komplexer als das User Datagram Protocol (UDP). Es zeichnet sich durch folgende Eigenschaften aus:

  • Es ist verbindungsorientiert
  • Es ist sehr zuverlässig
  • Es ist flexibel in der Bandbreitennutzung


Das Protokoll TCP/IP ist auf der dritten und vierten Schicht des OSI-Modells anzuordnen.

Bei TCP wird für den Verbindungsaufbau zwischen 2 Systemen der "Three-Way-Handshake" verwendet. Dies ist ein Verfahren, bei dem beide Systeme zu Beginn einer Datenaustaschsequenz eine Synchronisation des TCP-Dienstes durchführen. Dieses Verfahren basiert auf 3 Schritten:

  1. Zuerst sendet der Sender ein Paket mit einer Synchronisationsanforderung (SYN) mit einer Sequenznummer "Seq = X".
  2. Daraufhin schickt der Empfänger eine Synchronisationsbestätigung (Acknoledgement, ACK). Die empfangene Synchronisationsnummer wird dabei um den Wert 1 erhöht und als "ACK = X + 1" zurückgesendet. Gleichzeitig fordert der Empfänger seinerseits eine Synchronisation (SYN) an, die ebenfalls eine Synchronisationsnummer enthält ("Seq = Y").
  3. Ist dieses Paket beim Sender angekommen, so übermittelt der Sender eine Bestätigung (ACK). Dieses Paket enthält die eigene Synchronisationsnummer ("Seq = X + 1") und eine Bestätigungsnummer ("ACK = Y + 1").

Sicherheti gegen Datenverlust

Mit Hilfe der Sequenz-Nummern können Datagramme in die korrekte Reihenfolge gebracht werden. Außerdem kann ein Sender erkennen, wenn innerhalb einer bestimmten Zeit kein ACK für ein gesendetes Datagramm eintrifft. Dieses Datagramm wird dann erneut gesendet, um so Datenverlusten bei der Übermittlung vorzubeugen.



Flusskontrolle

Bei der Informationsübermittlung kann es vorkommen, dass ein Sender einem Empfänger mehr Daten übermittelt, als dieser zu einem gegebenen Zeitpunkt verarbeiten kann. Diese Daten werden dann in einem Puffer zwischengespeichert. Aber auch dieser Puffer hat nur eine begrenzte Größe, und so kann es zu einem Pufferüberlauf kommen. Um dies zu verhindern, schickt ein System, dessen Verarbeitungspuffer voll ist, ein ECN-Echo (Explicit Congestion Notification Echo), sozusagen eine Datenstau-Information. Daraufhin halbiert das sendende System seine Sendegeschwindigkeit, bis das empfangende System durch das CWR-Flag (Congestion Window Reduced), also reduziertes Übertragungsfenster wegen Datenstau signalisiert, dass die Übertragung wieder in normaler Geschwindigkeit erfolgen kann.



Sliding Window Size

In der regel wird in einem TCP-Netzwerk für jedes gesendete Datagramm eine Empfangsbestätigung übertragen. Dadurch wird die Netzlast deutlich erhöht. Durch den Einsatz der Sliding Window Size (fließende Fenstergröße) können aber auch mehrere Datagramme übermittelt werden, bevor eine Empfangsbestätigung erfolgt.
Üblicherweise folgt auf eine gegebene Sequenznummer direkt die erwartete ACK-Nummer. Sollen jedoch mehrere Datagramme nacheinander gesendet werden, arbeitet das System so:
Nach einer Sequenz-Nummer wird die nächste Sequenz-Nummer des Folge-Datagramms angegeben, während die erwartete Acknowledgment Nummer für den ganzen Datagramm-Strang glech bleibt. Nur wenn der Empfänger sämtliche Datagramme des Strangs empfängt, sendet er das entsprechende Acknowledgment Paket.


Das Internet Protocol IP (Adressklassen / Subnetzmasken)