Heim >häufiges Problem >Was ist der Unterschied zwischen TCP und UDP?
Die Unterschiede zwischen TCP und UDP sind: 1. UDP ist verbindungslos, TCP ist verbindungsorientiert; 2. UDP ist unzuverlässige Übertragung, TCP ist zuverlässige Übertragung; 3. UDP ist nachrichtenorientiert, TCP ist byteorientiertes Streaming.
Vergleich:
(Empfehlung für Lernvideos: Java-Video-Tutorial)
UDP
Der vollständige Name des UDP-Protokolls ist User Datagram Protocol, das wie das TCP-Protokoll zur Datenverarbeitung im Netzwerk verwendet wird Paket ist ein verbindungsloses Protokoll. Im OSI-Modell ist die vierte Schicht – die Transportschicht – die obere Schicht des IP-Protokolls. UDP hat den Nachteil, dass es keine Gruppierung und Zusammenstellung von Datenpaketen ermöglicht und Datenpakete nicht sortieren kann. Mit anderen Worten: Nach dem Senden einer Nachricht ist es unmöglich zu wissen, ob sie sicher und vollständig angekommen ist.
Es hat die folgenden Eigenschaften:
1. Für verbindungslose
Erstens muss UDP keinen Drei-Wege-Handshake durchführen, um eine Verbindung wie TCP herzustellen. Sie können mit dem Senden beginnen, wenn Sie senden möchten Daten. Und es ist nur ein Porter von Datenpaketen und führt keine Aufteilungs- oder Spleißvorgänge für Datenpakete durch.
Im Einzelnen:
Auf der Sendeseite übergibt die Anwendungsschicht die Daten nur an das UDP-Protokoll der Transportschicht. Unter dem UDP-Protokoll werden diese dann an die Netzwerkschicht weitergeleitet Auf der Empfangsseite leitet die Netzwerkschicht die Daten an die Transportschicht weiter, und UDP entfernt nur den IP-Header und übergibt ihn ohne Spleißvorgang an die Anwendungsschicht.
2 Es verfügt über Unicast-, Multicast- und Broadcast-Funktionen UDP unterstützt nicht nur Eins-zu-Eins-Übertragungsmethoden, sondern auch Eins-zu-Viele-, Viele-zu-Viele- und Viele-zu-Eins-Methoden, was bedeutet, dass UDP Unicast-, Multicast- und Broadcast-Funktionen bereitstellt.
3. UDP ist nachrichtenorientiert.
Das UDP des Absenders übermittelt die Nachricht bis zur IP-Ebene, nachdem der Header hinzugefügt wurde. UDP führt die von der Anwendungsschicht übergebenen Pakete weder zusammen noch teilt es sie auf, behält jedoch die Grenzen dieser Pakete bei. Daher muss die Anwendung eine Nachricht mit geeigneter Größe auswählen
4. Unzuverlässigkeit
Erstens spiegelt sich die Unzuverlässigkeit in der fehlenden Verbindung wider. Sie können diese Situation nicht senden definitiv unzuverlässig.
Und die Daten werden beim Empfang übertragen und die Daten werden nicht gesichert. Beim Senden von Daten ist es egal, ob die andere Partei die Daten korrekt empfangen hat.
Außerdem ist die Netzwerkumgebung gut und schlecht, aber UDP sendet Daten immer mit konstanter Geschwindigkeit, da es keine Überlastungskontrolle gibt. Auch wenn die Netzwerkbedingungen nicht gut sind, wird die Senderate nicht angepasst. Der Nachteil dieser Implementierung besteht darin, dass es zu Paketverlusten kommen kann, wenn die Netzwerkbedingungen nicht gut sind. Die Vorteile liegen jedoch auch auf der Hand. In einigen Szenarien mit hohen Echtzeitanforderungen (z. B. Konferenzgesprächen) muss stattdessen UDP verwendet werden TCP.
5. Der Header-Overhead ist gering und bei der Übertragung von Datennachrichten sehr effizient.
TCP
Wenn ein Computer mit einem anderen Computer kommunizieren möchte, muss die Kommunikation zwischen den beiden Computern reibungslos und zuverlässig sein, um das korrekte Senden und Empfangen von Daten sicherzustellen. Wenn Sie beispielsweise eine Webseite anzeigen oder Ihre E-Mails abrufen möchten, möchten Sie die Webseite vollständig und in der richtigen Reihenfolge sehen, ohne dass Inhalte verloren gehen. Wenn Sie eine Datei herunterladen, hoffen Sie, die vollständige Datei und nicht nur einen Teil der Datei zu erhalten, denn wenn die Daten verloren gehen oder nicht in der richtigen Reihenfolge sind, ist dies nicht das gewünschte Ergebnis, daher wird TCP verwendet.
Der vollständige Name des TCP-Protokolls lautet Transmission Control Protocol. Es handelt sich um ein verbindungsorientiertes, zuverlässiges, Bytestream-basiertes Transportschicht-Kommunikationsprotokoll, das durch RFC 793 der IETF definiert ist. TCP ist ein verbindungsorientiertes, zuverlässiges Streaming-Protokoll. Ein Stream bezieht sich auf eine ununterbrochene Datenstruktur. Man kann es sich wie Wasser vorstellen, das in einem Abflussrohr fließt.
1. TCP-Verbindungsprozess
Erster Handshake
Der Client sendet ein Verbindungsanforderungssegment an den Server. Dieses Nachrichtensegment enthält eine eigene anfängliche Sequenznummer für die Datenkommunikation. Nachdem die Anfrage gesendet wurde, wechselt der Client in den SYN-SENT-Status.
Zweiter Handshake
Nachdem der Server das Verbindungsanforderungssegment empfangen hat und der Verbindung zustimmt, sendet er eine Antwort, die auch seine eigene anfängliche Datenkommunikationssequenznummer enthält. Nach Abschluss des Sendens wird SYN eingegeben -RECEIVED-Status.
Der dritte Handshake
Wenn der Client die Verbindungsgenehmigungsantwort erhält, sendet er auch eine Bestätigungsnachricht an den Server. Nachdem der Client dieses Nachrichtensegment gesendet hat, wechselt er in den Status ESTABLISHED. Nachdem der Server diese Antwort erhalten hat, wechselt er ebenfalls in den Status ESTABLISHED.
Möglicherweise haben Sie hier eine Frage: Warum benötigt TCP drei statt zwei Handshakes, um eine Verbindung herzustellen? Dies liegt daran, dass verhindert werden soll, dass ungültige Verbindungsanforderungssegmente vom Server empfangen werden, was zu Fehlern führt.
2. TCP-Trennung
TCP ist Vollduplex und beide Enden müssen beim Trennen FIN und ACK senden.
Erster Handshake
Wenn Client A denkt, dass das Senden der Daten abgeschlossen ist, muss er eine Verbindungsfreigabeanforderung an Server B senden.
Zweiter Handschlag
B Nach Erhalt der Verbindungsfreigabeanforderung wird die Anwendungsschicht angewiesen, die TCP-Verbindung freizugeben. Anschließend wird ein ACK-Paket gesendet und in den Zustand CLOSE_WAIT eingetreten. Dies zeigt an, dass die Verbindung von A nach B freigegeben wurde und die von A gesendeten Daten nicht mehr empfangen werden. Da die TCP-Verbindung jedoch bidirektional ist, kann B weiterhin Daten an A senden.
Der dritte Handshake
B sendet weiter, wenn zu diesem Zeitpunkt noch unvollendete Daten vorhanden sind. Nach Abschluss sendet es eine Verbindungsfreigabeanforderung an A und B wechselt dann in den LAST-ACK-Status.
Vierter Handschlag
Nach Erhalt der Freigabeanforderung sendet A eine Bestätigungsantwort an B. Zu diesem Zeitpunkt wechselt A in den TIME-WAIT-Status. Dieser Zustand dauert 2 MSL (maximale Segmentlebensdauer, die sich auf die Zeit bezieht, die das Nachrichtensegment im Netzwerk überlebt, und wird nach einer Zeitüberschreitung verworfen. Wenn innerhalb dieses Zeitraums keine erneute Sendeanforderung von B vorliegt, wird es in den Zustand GESCHLOSSEN versetzt). Zustand. Wenn B die Bestätigungsantwort erhält, wechselt es ebenfalls in den GESCHLOSSEN-Zustand.
3. Eigenschaften des TCP-Protokolls
Verbindungsorientiert
Verbindungsorientiert, was bedeutet, dass vor dem Senden von Daten an beiden Enden eine Verbindung hergestellt werden muss. Die Methode zum Herstellen einer Verbindung ist der „Drei-Wege-Handshake“, mit dem eine zuverlässige Verbindung hergestellt werden kann. Der Verbindungsaufbau legt den Grundstein für eine zuverlässige Datenübertragung.
Unterstützt nur die Unicast-Übertragung
Jede TCP-Übertragungsverbindung kann nur zwei Endpunkte haben, kann nur Punkt-zu-Punkt-Datenübertragungen durchführen und unterstützt keine Multicast- und Broadcast-Übertragungsmethoden.
An Byte-Streams orientiert
TCP überträgt Nachrichten nicht unabhängig wie UDP, sondern in einem Byte-Stream, ohne Nachrichtengrenzen beizubehalten.
Zuverlässige Übertragung
Für eine zuverlässige Übertragung hängt die Bestimmung von Paketverlust und -fehlern von der TCP-Segmentnummer und der Bestätigungsnummer ab. Um die Zuverlässigkeit der Nachrichtenübertragung sicherzustellen, gibt TCP jedem Paket eine Sequenznummer. Gleichzeitig stellt die Sequenznummer sicher, dass die an die empfangende Endeinheit übertragenen Pakete der Reihe nach empfangen werden. Die empfangende Entität sendet dann eine entsprechende Bestätigung (ACK) für die erfolgreich empfangenen Bytes zurück. Wenn die sendende Entität die Bestätigung nicht innerhalb einer angemessenen Umlaufverzögerung (RTT) erhält, werden die entsprechenden Daten (die als verloren gelten) erneut übertragen .
Sorgen Sie für eine Überlastungskontrolle.
Wenn das Netzwerk überlastet ist, kann TCP die Rate und Menge der in das Netzwerk eingespeisten Daten reduzieren und so die Überlastung verringern.
TCP bietet Vollduplex-Kommunikation.
TCP ermöglicht die Kommunikation von Anwendungen auf beiden Seiten der Kommunikation Es können jederzeit Daten gesendet werden, da an beiden Enden der TCP-Verbindung Caches vorhanden sind, in denen Daten für die bidirektionale Kommunikation vorübergehend gespeichert werden. Natürlich kann TCP ein Datensegment sofort senden oder es für eine Weile zwischenspeichern, um mehr Datensegmente gleichzeitig zu senden (die maximale Datensegmentgröße hängt vom MSS ab)
Verwandte Empfehlungen: php-Training
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen TCP und UDP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!