Articles

Was ist tcp three way handshake ? Was sind SYN- und ACK-Pakete?

Wie wir wissen, ist TCP eines der Implementierungsbeispiele des Transportschichtprotokolls gemäß dem OSI-Modell. Das Protokoll ist verbindungsorientiert, d.h. bevor Daten an die Gegenstelle gesendet werden, baut der TCP-Client eine virtuelle Verbindung über das paketbasierte IP-Netzwerk auf. Das Drei-Wege-Handshake ist das Protokollverfahren, um den Verbindungsaufbau zu erreichen. Hier werden wir die Prozedur des TCP-Verbindungsaufbaus im Detail behandeln. Zunächst stellt sich die Frage, wer für den Start der TCP-Verbindung verantwortlich ist. Die Protokollschicht selbst, beim Start oder eine andere externe Instanz, die die Schicht zum Verbindungsaufbau anweist? Die Antwort lautet: Der TCP-Benutzer ist dafür verantwortlich, einen TCP-Dreiwege-Handshake zu starten. Zum Beispiel ist HTTP (Webbrowser verwendet HTTP) einer der Benutzer von TCP. Wenn der HTTP-Benutzer eine Web-Anfrage an den Remote-Server senden muss. Bevor die Benutzerdaten gesendet werden, fordert HTTP TCP auf, eine Verbindung mit dem Remote-Server herzustellen. Sobald die TCP-Schicht die Verbindungsanforderung erhält, beginnt sie mit dem TCP-3-Wege-Handshake. Wie bei jedem anderen Protokoll müssen auch beim 3-Way-Handshake Pakete oder Nachrichten zwischen Client und Server ausgetauscht werden. Im Folgenden werden die für den Verbindungsaufbau verwendeten Nachrichten beschrieben.

Nachfolgend der Nachrichtenfluss für den Drei-Wege-Handshake.

Der HTTP-Anwender stellt eine Verbindungsanfrage an die TCP-Schicht. Die TCP-Schicht arbeitet als tcp-Client und sendet das tcp-Syn mit einer anfänglichen Sequenznummer. Die Sequenznummer dient dazu, die Reihenfolge der Nachrichten aufrechtzuerhalten. Nach Erhalt der SYN sendet der Server eine neue Syn und eine Bestätigung der empfangenen Syn an den Client, dann sendet der Client die ACK für die vom Server empfangene Syn an den Server. Damit ist der Verbindungsaufbau abgeschlossen. Im Folgenden werden die einzelnen Nachrichten für den Drei-Wege-Handshake im Detail beschrieben.

Dies ist das erste Paket vom Client zum Server. Die TCP-Nachricht setzt das SYN-Flag in der Nachricht auf 1, so dass die TCP-Nachricht als SYN-Paket gilt. Es hat die anfängliche Sequenznummer des Clients zusammen mit ein paar anderen Parametern.

TCP SYN ACK-Paket:

Nach dem Empfang des SYN-Pakets sendet der Server das syn ack-Paket an den Client. Dabei handelt es sich um ein einzelnes tcp-Paket, bei dem syn- und ack-Bit auf 1 gesetzt sind. Die syn-Sequenznummer ist die anfängliche Sequenznummer des Servers, der die Verbindung annimmt. Der ack-Teil hat die Client-Sequenznummer plus eins. Auf diese Weise teilt der Server mit, dass er bereit ist, das Paket mit der nächsten Sequenznummer vom Client zu akzeptieren.

TCP ACK-Paket:

Das letzte Paket für den Verbindungsaufbau ist tcp ack. Der Client sendet ein tcp ack-Paket, nachdem er ein tcp syn ack vom Server erhalten hat. Das Paket enthält die Sequenznummer vom Server plus eins.

TCP-Benutzeranzeige nach Drei-Wege-Handshake:

Zu Beginn haben wir erwähnt, dass es der Benutzer ist, der die Verbindungsanfrage initiiert. Aber wie bekommt der Benutzer mit, dass die Verbindung hergestellt ist? Und kann der Benutzer die Verbindung nutzen, um Daten an den Remote-Server zu senden? Der Benutzer erhält von der TCP-Schicht einen Hinweis auf das Ergebnis des Verbindungsaufbaus. Wenn der Handshake erfolgreich ist, dann bekommt er die Verbindungskennung. Andernfalls und Fehler. Der Verbindungsbezeichner arbeitet als Handler für das Senden/Empfangen von Daten zum/vom Server. Wir werden in einem anderen Beitrag über die genaue Implementierung von TCP-Client/Server zeigen, dann können Sie ein klareres Bild des Verbindungshandlers erhalten.

Eine Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.