


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)
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)
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.2. Der zweite Handshake
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. 2) 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
Vier Wellen der TCP-Verbindungsbeendigung
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 PC1 (Server) sendet FIN- und ACK-Bits von 1 zum PC2-Client-TCP-Segment. 2. Zum zweiten Mal winken Der PC2-Client gibt ein TCP-Segment mit einem ACK-Bit von 1 an den PC1-Server zurück. 3. Zum dritten Mal winken PC2-Client sendet ein TCP-Segment mit FIN- und ACK-Bits 1 an PC1-Server. 4. Zum vierten Mal winken 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





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

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:&

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.

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

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).

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

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?

[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
