Heim > häufiges Problem > Hauptteil

Was ist der Unterschied zwischen TCP und UDP?

王林
Freigeben: 2020-11-11 09:14:25
Original
269586 Leute haben es durchsucht

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.

Was ist der Unterschied zwischen TCP und UDP?

Vergleich:

(Empfehlung für Lernvideos: Java-Video-Tutorial)

Was ist der Unterschied zwischen TCP und UDP?

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!