Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Format des TCP-Datensegment-Headers

Format des TCP-Datensegment-Headers

齐天大圣
齐天大圣Original
2020-12-19 14:15:193584Durchsuche

Nachdem wir die Bedeutung jedes Felds im TCP-Header verstanden haben, können wir das TCP-Protokoll besser verstehen. Es gibt 20 Bytes im TCP-Header, die festgelegt sind, und danach gibt es optionale Optionen. TCP ist 32-Bit (4 Byte) ausgerichtet.

Format des TCP-Datensegment-Headers

Quellport und Zielport: TCP kommuniziert zwischen Anwendungsprozessen über Portnummern.

Seriennummer: Der Bereich der Seriennummer beträgt 0~(2^32-1), die nächste Seriennummer beginnt wieder bei 0. Wenn die Sequenznummer eines Nachrichtensegments 1001 ist und seine Länge 100 Byte beträgt, dann ist die Sequenznummer des nächsten Nachrichtensegments 1101.

Bestätigungsnummer: 32 Ziffern. Die Bestätigungsnummer wird verwendet, um das empfangene Paket zu bestätigen. Wenn A ein Nachrichtensegment an B sendet, die Sequenznummer von A 101 ist und die Länge des Nachrichtensegments 100 Byte beträgt, muss B nach dem Empfang des Nachrichtensegments ein Bestätigungsnachrichtensegment an A senden. Diese Bestätigungsnachricht Die Bestätigungsnummer in Der Absatz ist 201. Es gibt die folgende Formel:

Wenn die Bestätigungsnummer N+1 ist, bedeutet dies, dass alle Daten bis zur Position der Sequenznummer N empfangen wurden.

Datenoffset: Dieses Feld stellt die Länge des TCP-Headers dar. Dieses Feld belegt 4 Bits und die Einheit beträgt 4 Bytes. Daher beträgt die maximale Größe eines TCP-Headers 60 Byte.

Sechs Steuerbits: Jedes Steuerbit belegt nur ein Bit.

  • UGR: Dringendes Feld. Wenn der Wert 1 ist, bedeutet dies, dass dieses Segment dringende Daten enthält und zuerst gesendet werden sollte. Dieses Feld muss in Verbindung mit dem später erwähnten Notfallzeiger verwendet werden.

  • ACK: Bestätigungsfeld. Dieses Feld wird beim Auf- und Abbau von Verbindungen verwendet. Die Datenübertragungsphase ist immer 1.

  • PSH: Feld drücken. Der Wert 1 gibt Daten mit einem Push-Flag an, was bedeutet, dass der Empfänger das Segment nach dem Empfang des Segments so schnell wie möglich an die Anwendung übergeben sollte, anstatt es im Puffer in die Warteschlange zu stellen.

  • RST: Verbindungsfeldprotokolle zurücksetzen. Wird verwendet, um eine Verbindung zurückzusetzen, die aufgrund eines Host-Absturzes oder aus anderen Gründen fehlgeschlagen ist. Oder wird verwendet, um illegale Nachrichtensegmente und Verbindungsanfragen abzulehnen.

  • SYN: Synchronisierungsfeld. Wird beim Verbindungsaufbau verwendet.

  • FIN: Terminierungsfeld. Wird beim Lösen einer Verbindung verwendet.

Fenster: 16 Bit. Der Fensterwert ist eine Ganzzahl im Bereich [0, 2^16-1]. Beachten Sie, dass es das Akzeptanzfenster darstellt und die Anzahl der Bytes angibt, die akzeptiert werden dürfen. Beispielsweise sendet B ein Bestätigungsnachrichtensegment an A. Die Bestätigungsnummer des Nachrichtensegments ist 101 und der Fensterwert ist 1000. Dann bedeutet dies, dass die nächste von B akzeptierte Nachrichtensegmentnummer 101 und die Länge der Nachricht sein sollte Das Segment darf nicht mehr als 1000 Bytes umfassen.

Prüfsumme: 16 Bit. Wird verwendet, um zu prüfen, ob im Nachrichtensegment Fehler vorliegen.

Notfallzeiger: 16 Bit. Dieses Feld ist nur interessant, wenn das URG-Feld 1 ist. Zeigt die Länge der Notfalldaten an

Verwandte Empfehlungen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonFormat des TCP-Datensegment-Headers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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