TCP (Transmission Control Protocol)
ist ein verbindungsorientiertes Protokoll, das heißt, es muss vor dem Senden und Empfangen von Daten erfolgen Stellen Sie eine zuverlässige Verbindung zur anderen Partei her. Eine TCP-Verbindung muss drei „Gespräche“ durchlaufen, bevor sie hergestellt werden kann
TCPDrei-Wege-HandshakeProzess:
1 Host A sendet ein Datensegment mit dem Flag-Bit der Synchronisationssequenznummer an Host B und fordert Host B auf, eine Verbindung herzustellen. Über dieses Datensegment teilt Host A Host B zwei Dinge mit: I Ich möchte mit Ihnen kommunizieren. Können Sie die Sequenznummer als Startdatensegment verwenden, um mir zu antworten?
2 Host B antwortet mit Eine Bestätigung (das Datensegment mit ACK) und Synchronisierungssequenznummer (SYN) antwortet Host A und teilt Host A zwei Dinge mit: Ich habe Ihre Anfrage erhalten und Sie können Daten übertragen, welche Sequenznummer Sie als Start verwenden möchten Punkt?
3 Nach dem Empfang dieses Datensegments sendet Host A eine Bestätigungsantwort, um zu bestätigen, dass er das Datensegment von Host B erhalten hat: „Ich habe eine Antwort erhalten.“ Jetzt wird mit der Übertragung der eigentlichen Daten begonnen
Auf diese Weise ist der Drei-Wege-Handshake abgeschlossen und Host A und Host B können Daten übertragen
Eigenschaften des 3-Wege-Handshakes:
1) Keine Anwendungsschichtdaten
2) SYN flag Das Bit wird nur auf 1 gesetzt, wenn TCP eine Produktionsverbindung aufbaut
3) Nach Abschluss des Handshakes wird das SYN-Flag auf 0 gesetzt
TCP erfordert 3 Handshakes, um eine Verbindung herzustellen, während 4 Mal die Verbindung trennt
1 Wenn Host A die Datenübertragung abschließt, Es steuert das FIN-Bit, das auf 1 gesetzt ist, und fordert zum Stoppen der TCP-Verbindung an.
2 Host B antwortet auf das FIN, nachdem es es empfangen hat, und bestätigt, dass die TCP-Verbindung in diese Richtung besteht wird geschlossen und setzt ACK auf 1
3 Das B-Ende macht eine Schließanforderung in die entgegengesetzte Richtung, setzt FIN auf 1
4 Host A bestätigt die Anfrage von Host B, setzt ACK auf 1 und das bidirektionale Herunterfahren endet
Daraus ist ersichtlich Der Drei-Wege-Handshake von TCP und die vier Trennungen von TCP Die Verwendung der verbindungsorientierten Kommunikation verbessert die Zuverlässigkeit der Datenkommunikation erheblich und ermöglicht die Interaktion zwischen dem sendenden Datenende und dem empfangenden Ende, bevor die Daten offiziell übertragen werden, wodurch eine zuverlässige Grundlage für die formale Kommunikation gelegt wird Datenübertragung
Begriffserklärung
ACK – eines der Steuerbits im TCP-Header, das die Daten bestätigt. Wenn die Bestätigungsnummer beispielsweise ungültig ist, müssen die Daten erneut übertragen werden Stellen Sie die Integrität der Daten sicher.
SYN – Synchronisierungssequenznummer, setzen Sie diese Position auf 1, wenn TCP eine Verbindung aufbaut
FIN – Die Das sendende Ende hat das Sendeaufgabenbit abgeschlossen. Wenn TCP die Datenübertragung abgeschlossen hat und getrennt werden muss, setzt die Partei, die die Verbindung trennen möchte, dieses Bit auf 1
TCP-Header Struktur:
Quellport 16 Bits
Zielport 16 Bits
Sequenz Nummer 32 Ziffern
Antwortsequenznummer 32 Ziffern
TCP-Header-Länge 4 Ziffern
reserviert 6 Bits
Steuercode 6 Bits
Fenstergröße 16 Bits
Offset 16 Bits
Prüfsumme 16 Bits
Option 32 Bits (optional)
Auf diese Weise erhalten wir die Mindestlänge des TCP-Headers, die 20 Byte beträgt.
UDP (User Data Protocol, User Datagram Protocol)
(1) UDP ist ein Nicht-Verbindungsprotokoll, bevor die Daten übertragen werden. Wenn Daten übertragen werden sollen, werden die Daten einfach von der Anwendung übertragen möglich. Werfen Sie es ins Internet. Auf der Sendeseite wird die Geschwindigkeit, mit der UDP Daten überträgt, nur durch die Geschwindigkeit, mit der die Anwendung Daten generiert, die Fähigkeiten des Computers und die Übertragungsbandbreite auf der Empfangsseite begrenzt. UDP stellt jedes Nachrichtensegment in eine Warteschlange Die Anwendung liest jedes Mal ein Nachrichtensegment aus der Warteschlange.
(2) Da keine Verbindung zum Übertragen von Daten hergestellt wird, besteht keine Notwendigkeit, den Verbindungsstatus, einschließlich Sende- und Empfangsstatus usw., aufrechtzuerhalten. Daher kann ein Servercomputer die Daten übertragen dieselben Daten gleichzeitig an mehrere Clients senden.
(3) Der Header des UDP-Pakets ist sehr kurz, nur 8 Bytes im Vergleich zum 20-Byte-Paket von TCP, der zusätzliche Overhead ist sehr gering.
(4) Der Durchsatz wird nicht durch den Überlastungskontrollalgorithmus reguliert und ist nur durch die von der Anwendungssoftware generierte Datenrate, die Übertragungsbandbreite sowie die Leistung des Quell- und Terminal-Hosts begrenzt.
(5) UDP verwendet die Best-Effort-Zustellung, das heißt, eine zuverlässige Zustellung ist nicht garantiert, sodass der Host keine komplexe Verbindungsstatustabelle verwalten muss (es gibt viele Parameter in Es).
(6) UDP ist nachrichtenorientiert. Die vom UDP des Absenders an das Anwendungsprogramm übergebene Nachricht wird nach dem Hinzufügen eines Headers bis zur IP-Schicht übermittelt. Es erfolgt weder eine Aufteilung noch eine Zusammenführung, aber die Grenzen dieser Pakete bleiben erhalten, sodass die Anwendung eine geeignete Paketgröße auswählen muss. Wir verwenden häufig den Befehl „ping“, um zu testen, ob die TCP/IP-Kommunikation zwischen zwei Hosts normal ist. Tatsächlich besteht das Prinzip des Befehls „ping“ darin, ein UDP-Datenpaket an den anderen Host und dann an den anderen Host zu senden bestätigt den Empfang des Datenpakets. Wird das Datenpaket rechtzeitig zurückgemeldet, ist das Netzwerk geöffnet.
UDP-Header-Struktur:
Quellport 16 Bit
Zielport 16 Bit
Länge 16 Bit
Prüfsumme 16 Bit
Zusammenfassung der Unterschiede zwischen TCP und UDP:
1. Verbindungsbasiert und verbindungslos
2. mehr TCP, weniger UDP);
3. UDP-Programmstruktur ist einfacher;
5.TCP garantiert die Richtigkeit der Daten, UDP kann Pakete verlieren, TCP garantiert die Datenreihenfolge, UDP jedoch nicht.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen TCP/IP und UDP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!