TCP, UDP-Protokoll der Network_Transport-Schicht

1. TCP- und UDP-Protokoll

TCP/IP协议族的传输层协议

TCP(Transmission Control Protocol)传输控制协议

UDP(User Datagram Protocol)用户数据报协议
  • TCP-Protokoll: Übertragungssteuerungsprotokoll, stabile und zuverlässige Übertragung

  • TCP ist ein verbindungsorientiertes, zuverlässiges Prozess-zu-Prozess-Kommunikationsprotokoll. TCP bietet Vollduplex-Dienste, dh Daten können gleichzeitig in beide Richtungen übertragen werden. Jeder TCP verfügt über einen Sendepuffer und einen Empfangspuffer, um vorübergehend Daten speichern.

  • UDP-Protokoll: Benutzer-Datagramm-Protokoll, höhere Übertragungseffizienz

  • Das UDP-Protokoll ist ein verbindungsloses und zuverlässiges Transportschichtprotokoll. Dem Absender ist es egal, ob die gesendeten Daten beim Zielhost ankommen, ob die Daten falsch sind usw. Der Host, der die Daten empfängt, teilt dem Absender nicht mit, ob er die Daten empfangen hat. Seine Zuverlässigkeit wird durch das Protokoll der oberen Schicht garantiert. Daten schneller und effizienter übertragen.

Das verbindungsorientierte Netzwerkprotokoll bezieht sich auf den Aufbau einer Verbindung zwischen den kommunizierenden Parteien vor der Kommunikation. Wenn Sie beispielsweise einen Anruf tätigen, müssen die beiden Teilnehmer vor dem Gespräch eine Verbindung herstellen.

Das verbindungslose Netzwerkprotokoll bedeutet, dass die Kommunikationsparteien nicht im Voraus eine Kommunikationsleitung einrichten müssen, sondern jedes Paket mit der Zieladresse an die Netzwerkleitung senden müssen und das System die Route für die Übertragung unabhängig auswählt. Zum Beispiel sendet qq, WeChat Informationen.

2. TCP-Pakete

TCP将若干个字节构成一个分组,叫报文段
TCP报文段封装在IP数据报中 10部分

Fügen Sie hier eine Bildbeschreibung ein

  • Quellportnummer: Die Portnummer, die dem Absenderprozess entspricht.
  • Zielportnummer: Entspricht der Portnummer des Prozesses auf der Empfangsseite.
  • Sequenznummer: Der Absender nummeriert jedes Byte, um den korrekten Zusammenbau des Empfängers zu erleichtern.
  • Bestätigungsnummer: Dient zur Bestätigung der Informationen des Absenders. Dies wird verwendet, um dem Absender mitzuteilen, dass die Datensegmente vor dem Empfang der Sequenznummer empfangen wurden. Wenn die Bestätigungsnummer N ist, bedeutet dies, dass die ersten N-1-Datensegmente empfangen wurden.
  • Header-Länge: Verwenden Sie diese Option, um die Bytelänge der TCP-Header-Datenstruktur zu bestimmen. Unter normalen Umständen beträgt der TCP-Header 20 Byte, die Länge des Headers kann jedoch auf höchstens 60 Byte erweitert werden.
  • Reserviert: als Erweiterungsbit, derzeit nicht verwendet.

Steuerbit:

URG Notbit Effektives Bit des Notfallzeigers, das mit dem Notfallzeiger verwendet wird
ACK Bestätigungsbit Wenn ACK = 1 ist, ist das Feld für die Bestätigungssequenznummer gültig, wenn es 0 ist, ist es ungültig
PSH Dringlichkeit Wenn das Flag-Bit 1 ist, muss der Empfänger das Datensegment so schnell wie möglich an die Anwendungsschicht senden
RST Bit zurücksetzen Wenn der RST-Wert 1 ist, wird er benachrichtigt, um die TCP-Verbindung wiederherzustellen
SYN Synchronisationsbit (Verbindungsbit) Setzen Sie diesen Wert auf 1, wenn TCP eine Verbindung herstellen muss
ENDE Aus Bit Wenn TCP die Datenübertragung abgeschlossen hat und die Verbindung trennen muss, setzt die Partei, die die Verbindung vorschlägt, diesen Wert auf 1.
  • Fenstergröße: Gibt die Anzahl der Datensegmente an, die lokal akzeptiert werden können. Die Größe dieses Werts ist variabel. Wenn das Netzwerk entsperrt ist, antwortet das empfangende Ende auf die Nachricht, um diesen Fensterwert zu erhöhen und die Übertragungsgeschwindigkeit zu beschleunigen. Wenn das Netzwerk instabil ist, kann durch Verringern dieses Werts die zuverlässige Übertragung von Netzwerkdaten sichergestellt werden Der Datenverkehr in TCP Control wird durch Ändern der Fenstergröße erreicht. Beispielsweise erhöht sich die Download-Geschwindigkeit allmählich von einigen KB auf einige MB zu Beginn. Wird zur Steuerung der Netzwerkgeschwindigkeit verwendet.

  • Prüfsumme: wird zur Fehlerkontrolle verwendet. Der Umfang der Feldinspektion umfasst zwei Teile: Header und Daten. Das Datensegment wird überprüft und berechnet, wenn es gesendet wird und wenn es das Ziel erreicht. Wenn die Werte inkonsistent sind, werden die Daten als beschädigt betrachtet und das empfangende Ende verwirft die Daten.

  • Notfallzeiger: Wird in Verbindung mit URG verwendet und ist gültig, wenn URG = 1 ist.

  • Option: Der TCP-Header kann bis zu 40 Byte optionale Informationen enthalten. Zum Beispiel die maximale Segmentlänge MSS (Maximum Segment Size). MSS teilt dem TCP des anderen Teilnehmers mit: Das Datenfeld des Nachrichtensegments, das mein Puffer empfangen kann, beträgt bis zu MSS-Bytes.

3. Drei-Wege-Handshake-Prozess

Fügen Sie hier eine Bildbeschreibung ein

  • PC1 möchte eine Verbindung mit PC2 herstellen. Senden Sie zuerst eine SYN-Nachricht (SYN = 1), um den Aufbau einer Verbindung PC1seq-Sequenznummer x anzufordern

  • Nachdem PC2 es empfangen hat, sendet es SYN- und ACK-Pakete, dh (ACK = 1) Bestätigung und auch (SYN = 1) Anforderung zum Herstellen einer Verbindung. PC2seq ist y, Ack = x + 1, diese Bestätigung ist die Bestätigungsnummer , was bedeutet, dass das x von PC1 Roger das war.

  • PC1 empfängt die Anforderung von PC2, eine Verbindung herzustellen, und bestätigt auch (ACK = 1) und antwortet mit seq = x + 1, Ack = y + 1 bedeutet, dass y von PC2 empfangen wurde.

Viertens. Vier winkten

Fügen Sie hier eine Bildbeschreibung ein

  • PC1 möchte die Verbindung zu PC2 trennen. Senden Sie zuerst (FIN = 1), um die Trennung und (ACK = 1) Bestätigung anzufordern.

  • PC2 antwortet (ACK = 1) und stimmt der Trennung zu. Dies ist zur Hälfte nicht verbunden. Zu diesem Zeitpunkt kann PC1 keine Verbindung mehr zu PC2 herstellen, PC2 kann jedoch weiterhin Daten an PC1 senden.

  • Dann möchte PC2 auch die Verbindung zu PC1 trennen, senden (FIN = 1) und bestätigen (ACK = 1).

  • PC1 (ACK = 1) bestätigt die Trennung.

Ich denke du magst

Origin blog.csdn.net/Wsxyi/article/details/113658534
Empfohlen
Rangfolge