Vernetzung

Was sind die Schritte in einem TCP-Handshake??

Was sind die Schritte in einem TCP-Handshake??

TCP oder Transmission Control Protocol ist ein Standardprotokoll der Transportschicht, das das Internet verwendet, um Daten zu übertragen. Request  For  Comments  (RFC)  793 definiert TCP als zuverlässiges und verbindungsorientiertes Protokoll. Da es verbindungsorientiert ist, muss vor der Übertragung von Daten ein Pfad oder eine Verbindung hergestellt werden. TCP verwendet einen Drei-Wege-Handshake-Mechanismus zum Herstellen einer Verbindung zwischen zwei Geräten. In dieser Anleitung werden wir sehen, wie der Drei-Wege-Handshake-Mechanismus funktioniert. Sehen wir uns zuerst die Probleme mit dem Zwei-Wege-Handshake-Modell an.

Probleme mit dem Zwei-Wege-Handshake-Modell

Das Zwei-Wege-Handshake-Modell ist aufgrund eines alten Problems mit doppelten Paketen fehlgeschlagen. Angenommen, ein altes doppeltes Paket kommt auf dem Servercomputer an. Dieses alte Paket ist von einer zuvor geschlossenen Verbindung angekommen und enthält eine Sequenznummer 'z'. Irgendwann während der neuen Verbindung akzeptiert der Server ein Paket mit einer Sequenznummer 'z'. Wenn es dieses alte Paket mit derselben Sequenznummer 'z' empfängt, nimmt es dieses alte Paket unwissentlich an und verwirft das eigentliche Paket von der neuen Verbindung.

Wenn im obigen Fall keine Verbindung zwischen Client und Server besteht, verursacht das Eintreffen eines alten doppelten Verbindungsanforderungspakets immer noch Probleme. Wenn der Server ein solches Paket empfängt, antwortet er mit einem SYN+ACK-Paket. Dieses Paket wird vom Client verworfen, da er keine Verbindung herstellen wollte. Aber der Server geht in den Deadlock-Zustand und wartet darauf, dass der Client die Daten sendet.

Ein weiteres Problem besteht darin, dass, wenn ein Host C eine Verbindungsanfrage an den Server sendet, indem er sich als Client ausgibt, der Server mit einer ACK an den Client antwortet. Der Client verwirft dieses 'ACK'-Paket und weist den Server an, die Verbindung zu beenden. Während dieses Ereignisintervalls kann Host C einen Spoofing-Angriff starten, indem er viele Pakete sendet.

Das Drei-Wege-Handshake-Modell in TCP/IP

Das Drei-Wege-Handshake-Modell ist sehr wichtig. Wenn wir es nicht verwenden und direkt mit dem Senden von Daten beginnen, empfängt die empfangende Anwendung möglicherweise doppelte Pakete. Der Angreifer kann zwischen einer Verbindung die Möglichkeit haben, Angriffe (wie DDoS) zu starten. Das Drei-Wege-Handshake-Verfahren wird von einer Maschine gestartet und die andere Seite antwortet darauf. Die folgende Konvention wird verwendet, um dieses Verfahren zu erklären:

„Wenn eine Site ein Paket mit der Sequenznummer 'x' empfängt, antwortet sie mit der ACK-Nummer 'x+1'.”

Lassen Sie uns die Schritte zusammenfassen, die beim Drei-Wege-Handshake zwischen einem Clientcomputer und einem Servercomputer ausgeführt werden:

Schritt 1. Beim ersten Handshake sendet der Client ein SYN-Verbindungsanforderungspaket mit einer zufälligen Anfangssequenznummer ('x') an den Server.

Schritt 2. Beim zweiten Handshake antwortet der Server mit einem SYN-Paket mit einer zufälligen Sequenznummer ('y') und einem ACK-Paket mit einer Sequenznummer ('x+1'), um die gesendete anfängliche Sequenznummer ('x') zu bestätigen vom Kunden.

Schritt 3. Beim dritten Handshake sendet der Client ein ACK-Paket mit einer Sequenznummer ('y+1') an den Server, um das vom Server gesendete SYN-Paket ('y') zu bestätigen.

Schritt 4. Beide Enden sind jetzt synchronisiert und können unabhängig voneinander mit der Datenübertragung beginnen. [1]

Das TCP-Drei-Wege-Handshake-Verfahren ist weiterhin gültig, wenn beide Seiten gleichzeitig den Initialisierungsprozess starten. In einer solchen Situation erhält jede Maschine nach dem Senden eines „SYN“-Pakets ein „SYN“-Segment ohne Bestätigung. Wenn ein altes doppeltes ”SYN”-Paket beim Empfänger ankommt, kann es für den Empfänger so aussehen, als ob gleichzeitig ein Verbindungsaufbauprozess läuft. Wir können die „Reset“-Pakete verwenden, um diese Mehrdeutigkeit zu beseitigen.

Beendigung der TCP-Verbindung

Jede der beiden Seiten kann eine TCP-Verbindung beenden. Dazu kann jede Seite ein TCP-Segment mit gesetztem FIN-Bit übertragen. Dies bedeutet, dass die sendende Seite keine Daten mehr zu senden hat. Die Empfangsseite bestätigt dieses FIN-Paket, indem sie ein Bestätigungspaket sendet sending. Dadurch wird die Verbindung von einer Seite (der Seite des Absenders) geschlossen. Jetzt wird der Empfänger die gleichen Schritte ausführen, um die Verbindung in seinem Namen zu beenden. Dadurch wird die Verbindung vollständig geschlossen.

Probleme mit dem Drei-Wege-Handshake-Modell

Falls eine ACK vom Client zum Server in der dritten Handshake-Phase verloren geht oder blockiert wird, ist sich der Client dieser Situation nicht bewusst. Der Client geht davon aus, dass die Verbindung hergestellt ist und beginnt mit dem Senden von Daten. Der Server wartet noch auf das bereits verlorene ACK, verwirft also die vom Client empfangenen Daten data. [2]

Fazit

In diesem Handbuch haben wir TCP-Verbindungsverfahren mit einem Drei-Wege-Handshake kennengelernt. Wir haben auch das Problem doppelter Pakete im Zusammenhang mit dem Zwei-Wege-Handshake-Verfahren gesehen und wie es mit einem Drei-Wege-Handshake-Modell gelöst wurde. Viele Forscher haben verschiedene Forschungsarbeiten zur Verbesserung des Drei-Wege-Handshake-Modells und zur Überwindung der damit verbundenen Probleme beigetragen.

Verweise

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: Ein Drei-Wege-Handshake-Server für den TCP-Verbindungsaufbau. Angewandte Wissenschaften, 6(11), 358. https://doi.org/10.3390/app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP-Drei-Wege-Handshake-Protokoll basierend auf Quantenverschränkung. Journal of Computers, 27 (3), 33-40, doi:10.3966/199115592016102703004
So installieren Sie das Xenlism Minimalism GTK Theme auf Ubuntu 18.04 LTS
Das Anwenden von Designs ist eine großartige Möglichkeit, das Erscheinungsbild Ihres PCs zu ändern. Heute stellen wir Ihnen ein weiteres GTK-Theme für...
So installieren Sie ein vollständiges Ubuntu auf einem USB-Flash-Laufwerk
In diesem Tutorial werden wir eine vollständige Installation von Ubuntu auf einem USB-Stick durchführen. Beachten Sie, dass es hier nicht nur darum ge...
So installieren und konfigurieren Sie ownCloud unter Ubuntu 18.04 LTS
ownCloud ist ein Open-Source-Filesharing-Server und eine Kollaborationsplattform. Es ermöglicht die Kontrolle von Daten auf den Servern und Umgebungen...