Heim häufiges Problem Was ist der Unterschied zwischen TCP und UDP?

Was ist der Unterschied zwischen TCP und UDP?

Nov 11, 2020 am 09:14 AM
tcp 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.

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie asynchrone Kommunikation mithilfe der PHP- und UDP-Protokolle So implementieren Sie asynchrone Kommunikation mithilfe der PHP- und UDP-Protokolle Jul 30, 2023 pm 07:31 PM

Verwendung der PHP- und UDP-Protokolle zur Implementierung asynchroner Kommunikation In modernen Internetanwendungen ist die asynchrone Kommunikation zu einer sehr wichtigen Methode geworden. Durch die Verwendung asynchroner Kommunikation können Benutzeranfragen gleichzeitig verarbeitet werden, ohne den Hauptthread zu blockieren, wodurch die Systemleistung und Reaktionsgeschwindigkeit verbessert werden. Wie kann PHP als beliebte Back-End-Programmiersprache das UDP-Protokoll verwenden, um eine asynchrone Kommunikation zu erreichen? In diesem Artikel wird die Verwendung des UDP-Protokolls in PHP zur Implementierung einer einfachen asynchronen Kommunikation vorgestellt und spezifische Codebeispiele angehängt. 1. Einführung in das UDP-ProtokollU

Wie setze ich das TCP/IP-Protokoll in Win10 zurück? So setzen Sie den TCP/IP-Protokollstapel in Windows 10 zurück Wie setze ich das TCP/IP-Protokoll in Win10 zurück? So setzen Sie den TCP/IP-Protokollstapel in Windows 10 zurück Mar 16, 2024 am 11:07 AM

Wie setze ich das TCP/IP-Protokoll in Win10 zurück? Tatsächlich ist die Methode sehr einfach. Benutzer können die Eingabeaufforderung direkt eingeben und dann die Tastenkombination Strg + Umschalt + Eingabetaste drücken, um den Vorgang auszuführen, oder den Reset-Befehl zum Einrichten direkt ausführen Benutzern eine detaillierte Einführung zum Zurücksetzen des TCP/IP-Protokollstapels in Windows 10. Methode 1 zum Zurücksetzen des TCP/IP-Protokollstapels in Windows 10. Administratorrechte 1. Wir verwenden die Tastenkombination Win+R, um das Ausführungsfenster direkt zu öffnen, geben dann cmd ein und halten die Tastenkombination Strg+Umschalt+Eingabe gedrückt. 2. Oder wir können direkt im Startmenü nach der Eingabeaufforderung suchen und mit der rechten Maustaste klicken

Wie lauten die UDP-Portnummern? Wie lauten die UDP-Portnummern? Feb 23, 2023 pm 02:00 PM

Gängige UDP-Portnummern sind 53, 69, 161, 2049, 68 und 520. UDP verwendet Portnummern, um eigene Datenübertragungskanäle für verschiedene Anwendungen zu reservieren: 1. Network File System (NFS), die Portnummer ist 2049; 2. Simple Network Management Protocol (SNMP), die Portnummer ist 161; System (DNS), die Portnummer ist 53; 4. Simple File Transfer System (TFTP), die Portnummer ist 69; 5. Dynamic Host Configuration Protocol (DHCP), die Portnummer ist 68; Portnummer ist 520 usw.

So verwenden Sie TCP, um die Konversation zwischen Client und Server in Python zu implementieren So verwenden Sie TCP, um die Konversation zwischen Client und Server in Python zu implementieren May 17, 2023 pm 03:40 PM

TCP-Client Ein Client-Beispielcode, der das TCP-Protokoll verwendet, um einen kontinuierlichen Dialog zu erreichen: importsocket#Client-Konfiguration HOST='localhost'PORT=12345#Erstellen Sie einen TCP-Socket und stellen Sie eine Verbindung zum Server her client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#Get user input message=input("Bitte geben Sie die zu sendende Nachricht ein:&

Bis bald! TCP winkt zweimal, hast du es gesehen? Was ist mit den vier Händeschütteln? Bis bald! TCP winkt zweimal, hast du es gesehen? Was ist mit den vier Händeschütteln? Jul 24, 2023 pm 05:18 PM

Das hier erwähnte „verbindungsorientierte“ bedeutet, dass Sie eine Verbindung herstellen, die Verbindung verwenden und die Verbindung freigeben müssen. Der Verbindungsaufbau bezieht sich auf den bekannten TCP-Drei-Wege-Handshake. Bei der Nutzung einer Verbindung erfolgt die Datenübertragung in Form eines Versands und einer Bestätigung. Es gibt auch die Freigabe der Verbindung, bei der es sich um unsere gemeinsame TCP-Vierwellenwelle handelt.

Verwendung von Netty4 für die TCP-Kommunikation in der Java-API-Entwicklung Verwendung von Netty4 für die TCP-Kommunikation in der Java-API-Entwicklung Jun 17, 2023 pm 11:18 PM

TCP ist eine Art Computernetzwerk-Kommunikationsprotokoll und ein verbindungsorientiertes Übertragungsprotokoll. In der Java-Anwendungsentwicklung wird die TCP-Kommunikation häufig in verschiedenen Szenarien verwendet, z. B. bei der Datenübertragung zwischen Client und Server, bei der Audio- und Videoübertragung in Echtzeit usw. Netty4 ist ein leistungsstarkes, hoch skalierbares und leistungsstarkes Netzwerkprogrammier-Framework, das den Datenaustauschprozess zwischen Server und Client optimieren kann, um ihn effizienter und zuverlässiger zu machen. Die spezifischen Implementierungsschritte bei der Verwendung von Netty4 für die TCP-Kommunikation lauten wie folgt: Einführung

Wie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java? Wie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java? Apr 27, 2023 am 08:49 AM

Warum gibt es in diesem Blog die Verwendung einer TCP-Verbindung zum Senden mehrerer Dateien? Ich habe kürzlich einige verwandte Dinge gelesen. Es ist kein Problem, Socket einfach zum Programmieren zu verwenden, aber dies legt nur einige grundlegende Konzepte fest. Gegen das eigentliche Problem lässt sich noch immer nichts unternehmen. Wenn ich Dateien übertragen muss, stelle ich fest, dass ich scheinbar gerade die Daten gesendet habe (Binärdaten), aber einige Informationen über die Datei verloren gegangen sind (die Dateierweiterung). Und ich kann jedes Mal nur einen Socket verwenden, um eine Datei zu senden, und es gibt keine Möglichkeit, Dateien kontinuierlich zu senden (da ich darauf angewiesen bin, den Stream zu schließen, um das Senden von Dateien abzuschließen, was bedeutet, dass ich die Länge der Datei tatsächlich nicht kenne , also kann ich nur Dateien senden, da eine Socket-Verbindung eine Datei darstellt).

Wie nutzt die Java-Netzwerkprogrammierung UDP für die verbindungslose Kommunikation? Wie nutzt die Java-Netzwerkprogrammierung UDP für die verbindungslose Kommunikation? Apr 15, 2024 pm 12:51 PM

UDP (User Datagram Protocol) ist ein leichtes, verbindungsloses Netzwerkprotokoll, das häufig in zeitkritischen Anwendungen verwendet wird. Es ermöglicht Anwendungen, Daten zu senden und zu empfangen, ohne eine TCP-Verbindung herzustellen. Beispiel-Java-Code kann zum Erstellen eines UDP-Servers und -Clients verwendet werden, wobei der Server auf eingehende Datagramme wartet und antwortet und der Client Nachrichten sendet und Antworten empfängt. Mit diesem Code können reale Beispiele wie Chat-Anwendungen oder Datenerfassungssysteme erstellt werden.