Was sind die Schritte in einem TCP -Handschlag??

Was sind die Schritte in einem TCP -Handschlag??

TCP- oder Transmission -Steuerungsprotokoll ist ein Standard -Transportschichtprotokoll, mit dem das Internet Daten übertragen. Anfrage für Kommentare (RFC) 793 definiert das TCP als zuverlässiges und verbindungsorientiertes Protokoll. Da es verbindungsorientiert ist, muss ein Pfad oder eine Verbindung hergestellt werden, bevor Daten übertragen werden. TCP verwendet einen Drei-Wege-Handshake-Mechanismus, um eine Verbindung zwischen zwei Geräten herzustellen. In diesem Leitfaden werden wir sehen, wie der Drei-Wege-Handshake-Mechanismus funktioniert. Lassen Sie uns zunächst die Probleme mit dem Zwei-Wege-Handshake-Modell sehen.

Probleme mit dem Zwei -Wege -Handshake -Modell

Das Zwei-Wege. Nehmen wir an, dass ein altes Duplikatpaket auf der Servermaschine ankommt. Dieses alte Paket ist aus 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, akzeptiert es unwissentlich dieses alte Paket und verwirft das eigentliche Paket aus der neuen Verbindung aus der neuen Verbindung.

Im obigen Fall führt die Ankunft eines alten doppelten Verbindungsanforderungspakets im obigen Fall immer noch Probleme. Wenn der Server ein solches Paket empfängt, reagiert er mit einem Syn+ACK -Paket zurück. Dieses Paket wird vom Client fallen gelassen, da es nicht vorhatte, eine Verbindung herzustellen. Der Server wird jedoch den Deadlock -Status eingeben und darauf wartet, dass der Client die Daten sendet.

Ein weiteres Problem ist, dass der Server, wenn ein Host C eine Verbindungsanforderung an den Server sendet, durch den Client mit einem ACK an den Client reagiert. Der Client verengt dieses "ACK" -Paket und fordert den Server an, die Verbindung zu beenden. Während dieses Ereignisintervalls kann Host C einen Spoofing -Angriff starten, indem viele Pakete gesendet werden.

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, kann die empfangende Anwendung doppelte Pakete empfangen. Der Angreifer kann die Chance bekommen, Angriffe (wie DDOs) zwischen einer Verbindung zu starten. Das Drei-Wege-Handshake-Verfahren wird von einer Maschine gestartet, und die andere Seite reagiert darauf. Die folgende Konvention wird verwendet, um dieses Verfahren zu erklären:

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

Fassen wir die im Drei-Wege-Handshake zwischen einer Clientmaschine und einem Servermaschine durchgeführten Schritte zusammen:

Schritt 1. Im ersten Handshake sendet der Client ein Syn -Verbindungsanforderungspaket mit einer zufälligen anfänglichen Sequenznummer ('x') an den Server.

Schritt 2. Im Second Handshake reagiert der Server mit einem SYN -Paket mit einer zufälligen Sequenznummer ('y') und einem ACK -Paket mit einer Sequenznummer ('x+1'), um die anfängliche Sequenznummer ('x') zu bestätigen, die gesendet wurde vom Kunden.

Schritt 3. Im dritten Handschlag sendet der Client ein ACK -Paket mit einer Sequenznummer ('Y+1') an den Server, um das vom Server gesendete Syn ('Y') -Paket zu bestätigen.

Schritt 4. Beide Enden werden jetzt synchronisiert und können Daten unabhängig voneinander übertragen. [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 Versenden eines „SYN“ -Pakets ein „Syn“ -Segment ohne Bestätigung. Wenn ein altes Duplikat "Syn" -Paket am Empfänger eintrifft, kann es dem Empfänger angezeigt werden, dass gleichzeitig ein Verbindungsinitiierungsprozess durchgeführt wird. Wir können die „Reset“ -Pakete verwenden, um diese Mehrdeutigkeit zu entfernen.

TCP -Verbindungsbeendigung

Eine der beiden Seiten kann eine TCP -Verbindung beenden. Dafür kann jede Seite ein TCP -Segment mit dem Flossenbitssatz übertragen. Dies bedeutet, dass die Senderseite keine weiteren Daten zum Senden hat. Die Empfangsseite bestätigt dieses FIN -Paket durch Senden eines Bestätigungspakets. Dadurch schließt die Verbindung von einer Seite (Seite des Absenders). Jetzt wird der Empfänger dieselben Schritte verwenden, um die Verbindung in seinem Namen zu beenden. Dies wird die Verbindung vollständig schließen.

Probleme mit dem Drei-Wege-Handshake-Modell

Falls ein ACK von Client zum Server in der dritten Handshake -Phase verloren geht oder blockiert ist, ist der Client diese Situation nicht bewusst. Der Kunde wird davon ausgehen, dass die Verbindung hergestellt wird und Daten sendet. Der Server wartet immer noch auf den bereits verlorenen ACK, sodass er die vom Client empfangenen Daten verwerfen wird. [2]

Abschluss

In diesem Leitfaden haben wir mit einem Drei-Wege-Handschlag über TCP-Verbindungsverfahren erfahren. Wir haben auch das Problem von doppelten Paketen gesehen, die mit dem Zwei-Wege-Handshake-Verfahren verbunden sind und wie es mit einem Drei-Wege. Viele Forscher haben verschiedene Forschungsarbeiten zur Verbesserung des Drei-Wege-Handshake-Modells und der Ü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 die TCP-Verbindungsanlage. 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 der Quantenverdünnung. Journal of Computern, 27 (3), 33-40, doi: 10.3966/199115592016102703004