Heim Betrieb und Instandhaltung Sicherheit Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Nov 29, 2019 pm 04:43 PM
tcp

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

1. TCP (Transmission Control Protocol)

TCP ist verbindungsorientiert -zu-Prozess-Kommunikationsprotokoll
TCP bietet Vollduplex-Dienste, d. h. Daten können gleichzeitig in beide Richtungen übertragen werden

2. TCP-Segment ( Kapselung) Im IP-Datagramm)

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

1. Portnummer

1) Quellportnummer: Die dem Absender entsprechende Portnummer Im Prozess besteht die Funktion der Quell-IP und des Ports darin, die Absenderadresse der Nachricht zu markieren.

2) Zielportnummer: Entspricht dem Prozess des empfangenden Endes. Nach dem Empfang des Datensegments ordnet das empfangende Ende die Daten basierend auf diesem Port der Anwendungsschnittstelle zu.

Hinweis: Die Quell-Port-Nummer und die Ziel-Port-Nummer im TCP-Header stimmen mit der Quell-IP und der Ziel-IP im IP-Datagramm überein, die eine TCP-Verbindung eindeutig bestimmen.

2. Sequenznummer: Das sendende Ende nummeriert jedes Byte, um das korrekte Zusammensetzen auf der empfangenden Seite zu erleichtern.

3. Bestätigungsnummer: Wird zur Bestätigung der Informationen des Absenders verwendet.

4. Steuerbits

1) URG: Notfallzeiger-Gültigkeitsbit.
2) ACK: Sequenznummernbit bestätigen Wenn dieses Bit 1 ist, wird es zur Bestätigung der Absenderdaten verwendet.
3) PSH: Wenn das Flag-Bit 1 ist, muss der Empfangsverstärker die Daten so schnell wie möglich an die Anwendungsschicht liefern.
4) RST: Stellen Sie die TCP-Verbindung wieder her, wenn sie 1 ist.
5) SYN: Synchronisierungssequenznummernbit. Wenn TCP eine Verbindung herstellen muss, setzen Sie den Wert auf 1.
6) FIN: Wann TCP trennt die Verbindung. Setzen Sie diese Position auf 1

5. Fensterwert: Wird verwendet, um die Anzahl der lokal empfangbaren Datensegmente anzugeben. Dadurch wird die Geschwindigkeit gesteuert, mit der das sendende Ende Daten sendet, wodurch eine Flusskontrolle erreicht wird.

6. Prüfsumme: Wird zur Fehlerkontrolle verwendet

7. Der Notfallzeiger ist nur gültig, wenn das URG-Flag auf 1 gesetzt ist.

8. Optionen: 40 Byte optionale Informationen im TCP-Header. Das häufigste optionale Feld ist die längste Nachrichtengröße.

Hinweis: Die wichtigeren der 8 Felder sind die Portnummer, die Sequenznummer, die Bestätigungssequenznummer und die drei Steuerbits ACK, SYN und FIN.

3. TCP-Drei-Wege-Handshake (analysiert durch Wireshark-Paketerfassung)

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

PC1 ist für eine reale Maschine, PC2 ist eine virtuelle Maschine. PC1 und PC2 sind an dieselbe virtuelle Netzwerkkarte VNet8 gebunden. Die IP-Adresse von PC1 ist 192.168.90.10 und die IP-Adresse von PC2 ist 192.168.90.40. Erstellen Sie im Voraus die Konto-Website auf CentOS, PC1 greift auf PC2 zu und erfasst dann TCP-Berichte mit dem Paketerfassungstool, wie unten gezeigt:

1 >

Wie oben gezeigt, wird durch das Paketerfassungstool festgestellt, dass die Quelladresse (Quelle) 192.168.90.10 ist, die Quellportnummer (Quellport) 55604 ist und die Zieladresse (Ziel) 192.168.168.90 ist .40 und die Zielportnummer (Zielport) ist 80. Die anfängliche Sequenznummer und die Bestätigungsnummer sind beide 0. Beim ersten Handshake verwendet PC1 eine zufällige Portnummer, um eine Verbindungsaufbauanforderung an Port 80 von PC2 zu senden. Die typischste Darstellung dieses Prozesses ist, dass das SYN-Steuerbit von TCP 1 ist und die anderen fünf Steuerbits alle 0 sind.

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP2. Der zweite Handshake

Wie oben gezeigt, sind beim zweiten Handshake die Quelladresse, die Portnummer, die Zieladresse und der Port identisch erster Handshake Stattdessen ist die anfängliche Sequenznummer 0, die Bestätigungssequenznummer ist 1 und sowohl ACK als auch SYN in den Steuerbits sind 1. Der zweite Handshake wird tatsächlich in zwei Teilen abgeschlossen:

1) PC2 empfängt die Anfrage von PC1 und antwortet mit einer Bestätigungsnachricht an PC1. Das Vorzeichen dieses Prozesses ist, dass das TCP-ACK-Steuerbit 1 ist und die anderen fünf Steuerbits alle 0. und bestätigen Sie, dass die Seriennummer der ursprünglichen Seriennummer von PC1 plus 1 entspricht. Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP2) PC2 sendet auch eine Anfrage zum Herstellen einer Verbindung an PC1. Die Flags dieses Prozesses sind die gleichen wie beim ersten Handshake. Das SYN-Steuerbit von TCP ist 1 und die anderen fünf Steuerbits sind alle 0.

3. Der dritte Handshake

Wie in der Abbildung gezeigt, sind Quelladresse, Portnummer, Zieladresse und Portnummer dieselben wie beim ersten Handshake, wobei die anfängliche Sequenznummer die Bestätigungssequenznummer 1 des zweiten Handshakes ist und die Bestätigungssequenznummer die anfängliche Sequenznummer des zweiten Handshakes plus 1 ist. Nachdem PC1 die Antwort von PC2 (einschließlich Anfrage und Bestätigung) erhalten hat, muss er auch mit einer Bestätigungsnachricht an PC2 antworten. Das typischste Zeichen dieses Prozesses ist, dass das TCP-ACK-Steuerbit 1 ist und die anderen fünf Steuerbits 0 sind Die Bestätigungssequenznummer lautet: Die anfängliche Seriennummer von PC2 wird um 1 erhöht. Damit ist der Drei-Wege-Handshake abgeschlossen und eine TCP-Verbindung zwischen PC1 und PC2 hergestellt.

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Vier Wellen der TCP-Verbindungsbeendigung

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Zu diesem Zeitpunkt ist PC1 CentOS und die entsprechende IP-Adresse ist 192.168.90.40. PC2 ist eine echte Maschine und die entsprechende IP-Adresse ist 192.168.90.10 Der Vorgang ist wie folgt:

1. Wave zum ersten Mal

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

PC1 (Server) sendet FIN- und ACK-Bits von 1 zum PC2-Client-TCP-Segment.

2. Zum zweiten Mal winken

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Der PC2-Client gibt ein TCP-Segment mit einem ACK-Bit von 1 an den PC1-Server zurück.

3. Zum dritten Mal winken

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

PC2-Client sendet ein TCP-Segment mit FIN- und ACK-Bits 1 an PC1-Server.

4. Zum vierten Mal winken

Detaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP

Der PC1-Server sendet ein TCP-Segment mit einem ACK-Bit von 1 an den PC2-Client zurück und schließt damit die Verbindungsbeendigung ab .

5. Das halbgeschlossene Konzept der vier TCP-Wellen (TCP-Seite sendet keine Daten mehr, kann sie aber empfangen)

1) PC2-Client-FIN-Nachrichtensegment, halbgeschlossene Verbindung, PC1-Server ACK-Segment senden und halbgeschlossen empfangen.

2) PC1-Server sendet weiterhin Daten, während PC2-Client nur eine ACK-Bestätigung sendet und keine Daten mehr sendet.

3) Wenn der PC1-Server alle Daten gesendet hat, sendet er ein FIN-Segment und der PC2-Client sendet ein ACK-Segment, wodurch die TCP-Verbindung geschlossen wird.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Drei-Wege-Handshakes und der Vier-Wege-Welle von TCP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie setze ich das TCP/IP-Protokoll in Win10 zurück? So setzen Sie den TCP/IP-Protokollstapel in Windows 10 zurück Wie setze ich das TCP/IP-Protokoll in Win10 zurück? So setzen Sie den TCP/IP-Protokollstapel in Windows 10 zurück Mar 16, 2024 am 11:07 AM

Wie setze ich das TCP/IP-Protokoll in Win10 zurück? Tatsächlich ist die Methode sehr einfach. Benutzer können die Eingabeaufforderung direkt eingeben und dann die Tastenkombination Strg + Umschalt + Eingabetaste drücken, um den Vorgang auszuführen, oder den Reset-Befehl zum Einrichten direkt ausführen Benutzern eine detaillierte Einführung zum Zurücksetzen des TCP/IP-Protokollstapels in Windows 10. Methode 1 zum Zurücksetzen des TCP/IP-Protokollstapels in Windows 10. Administratorrechte 1. Wir verwenden die Tastenkombination Win+R, um das Ausführungsfenster direkt zu öffnen, geben dann cmd ein und halten die Tastenkombination Strg+Umschalt+Eingabe gedrückt. 2. Oder wir können direkt im Startmenü nach der Eingabeaufforderung suchen und mit der rechten Maustaste klicken

So verwenden Sie TCP, um die Konversation zwischen Client und Server in Python zu implementieren So verwenden Sie TCP, um die Konversation zwischen Client und Server in Python zu implementieren May 17, 2023 pm 03:40 PM

TCP-Client Ein Client-Beispielcode, der das TCP-Protokoll verwendet, um einen kontinuierlichen Dialog zu erreichen: importsocket#Client-Konfiguration HOST='localhost'PORT=12345#Erstellen Sie einen TCP-Socket und stellen Sie eine Verbindung zum Server her client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#Get user input message=input("Bitte geben Sie die zu sendende Nachricht ein:&

Bis bald! TCP winkt zweimal, hast du es gesehen? Was ist mit den vier Händeschütteln? Bis bald! TCP winkt zweimal, hast du es gesehen? Was ist mit den vier Händeschütteln? Jul 24, 2023 pm 05:18 PM

Das hier erwähnte „verbindungsorientierte“ bedeutet, dass Sie eine Verbindung herstellen, die Verbindung verwenden und die Verbindung freigeben müssen. Der Verbindungsaufbau bezieht sich auf den bekannten TCP-Drei-Wege-Handshake. Bei der Nutzung einer Verbindung erfolgt die Datenübertragung in Form eines Versands und einer Bestätigung. Es gibt auch die Freigabe der Verbindung, bei der es sich um unsere gemeinsame TCP-Vierwellenwelle handelt.

Verwendung von Netty4 für die TCP-Kommunikation in der Java-API-Entwicklung Verwendung von Netty4 für die TCP-Kommunikation in der Java-API-Entwicklung Jun 17, 2023 pm 11:18 PM

TCP ist eine Art Computernetzwerk-Kommunikationsprotokoll und ein verbindungsorientiertes Übertragungsprotokoll. In der Java-Anwendungsentwicklung wird die TCP-Kommunikation häufig in verschiedenen Szenarien verwendet, z. B. bei der Datenübertragung zwischen Client und Server, bei der Audio- und Videoübertragung in Echtzeit usw. Netty4 ist ein leistungsstarkes, hoch skalierbares und leistungsstarkes Netzwerkprogrammier-Framework, das den Datenaustauschprozess zwischen Server und Client optimieren kann, um ihn effizienter und zuverlässiger zu machen. Die spezifischen Implementierungsschritte bei der Verwendung von Netty4 für die TCP-Kommunikation lauten wie folgt: Einführung

Wie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java? Wie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java? Apr 27, 2023 am 08:49 AM

Warum gibt es in diesem Blog die Verwendung einer TCP-Verbindung zum Senden mehrerer Dateien? Ich habe kürzlich einige verwandte Dinge gelesen. Es ist kein Problem, Socket einfach zum Programmieren zu verwenden, aber dies legt nur einige grundlegende Konzepte fest. Gegen das eigentliche Problem lässt sich noch immer nichts unternehmen. Wenn ich Dateien übertragen muss, stelle ich fest, dass ich scheinbar gerade die Daten gesendet habe (Binärdaten), aber einige Informationen über die Datei verloren gegangen sind (die Dateierweiterung). Und ich kann jedes Mal nur einen Socket verwenden, um eine Datei zu senden, und es gibt keine Möglichkeit, Dateien kontinuierlich zu senden (da ich darauf angewiesen bin, den Stream zu schließen, um das Senden von Dateien abzuschließen, was bedeutet, dass ich die Länge der Datei tatsächlich nicht kenne , also kann ich nur Dateien senden, da eine Socket-Verbindung eine Datei darstellt).

Linux SIGPIPE-Signal Linux SIGPIPE-Signal Feb 19, 2024 pm 04:00 PM

Unter den TCP-Kommunikationsparteien werden der Einfachheit halber im Folgenden die Kommunikationsparteien durch A und B ersetzt. Wenn B gemäß dem TCP-Protokoll weiterhin Daten sendet, nachdem A die Verbindung geschlossen hat, empfängt B die RST-Antwort von A. Wenn B weiterhin Daten sendet, sendet das System ein SIGPIPE-Signal, um darüber zu informieren, dass die Verbindung getrennt wurde, und stoppt das Senden. Das Standardverarbeitungsverhalten des Systems für das SIGPIPE-Signal besteht darin, Prozess B beenden zu lassen. Das Standardverarbeitungsverhalten des Betriebssystems für das SIGPIPE-Signal ist sehr unfreundlich. Die TCP-Kommunikation ist ein Vollduplex-Kanal, der zwei Simplex-Kanälen entspricht, und jedes Ende der Verbindung ist für einen verantwortlich. Wenn das gegenüberliegende Ende „schließt“, obwohl die Absicht besteht, alle beiden Kanäle zu schließen, empfängt das lokale Ende nur das FIN-Paket. Gemäß den Bestimmungen des TCP-Protokolls, wenn a

Der Interviewer fragte: Wie viele HTTP-Anfragen kann eine TCP-Verbindung senden? Der Interviewer fragte: Wie viele HTTP-Anfragen kann eine TCP-Verbindung senden? Feb 22, 2023 pm 12:00 PM

Es gab einmal so eine klassische Interviewfrage: Was passiert im Prozess von der Eingabe der URL im Browser bis zur Anzeige der Seite? Ich glaube, dass die meisten Studenten, die sich vorbereitet haben, darauf antworten können, aber wenn Sie weiterhin fragen: Wenn der empfangene HTML-Code Dutzende von Bild-Tags enthält, auf welche Weise, in welcher Reihenfolge, wie viele Verbindungen hergestellt werden und welches Protokoll zum Herunterladen verwendet wird diese Bilder?

Fähigkeiten zur Verarbeitung langer TCP-Verbindungen mit hoher Parallelität für die Swoole-Entwicklungsfunktion Fähigkeiten zur Verarbeitung langer TCP-Verbindungen mit hoher Parallelität für die Swoole-Entwicklungsfunktion Aug 25, 2023 pm 10:01 PM

[Titel] Hochgradig gleichzeitige TCP-Techniken zur Verarbeitung langer Verbindungen für Swoole-Entwicklungsfunktionen [Einleitung] Mit der rasanten Entwicklung des Internets stellen Anwendungen immer höhere Anforderungen an die gleichzeitige Verarbeitung. Als leistungsstarke Netzwerkkommunikations-Engine auf PHP-Basis bietet Swoole leistungsstarke asynchrone, Multiprozess- und Coroutine-Funktionen, wodurch die gleichzeitigen Verarbeitungsfähigkeiten von Anwendungen erheblich verbessert werden. In diesem Artikel wird erläutert, wie Sie die Swoole-Entwicklungsfunktion verwenden, um lange TCP-Verbindungen mit hoher Parallelität zu verarbeiten, und detaillierte Anweisungen mit Codebeispielen bereitstellen. 【Text】1

See all articles