Heim  >  Artikel  >  Betrieb und Instandhaltung  >  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

青灯夜游
青灯夜游nach vorne
2019-11-29 16:43:352245Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen