Frage Was ist der Unterschied zwischen UDP und TCP?


Mein Router hat zwei Protokolle (und eine "beide" Option), die ich beim Einrichten der Portweiterleitung auswählen kann: UDP und TCP. Was ist der Unterschied zwischen diesen beiden Protokollen und wann würden Sie bei der Port-Weiterleitung eine über die andere wählen?


44
2018-05-16 20:25


Ursprung




Antworten:


TCP wird durch Acks und Wiederholungen unterstützt, um sicherzustellen, dass die Daten dorthin gelangen, wo sie hingehören. UDP ist verbindungslos und "fire and forget". UDP wird hauptsächlich für Anwendungen vom Streaming-Typ verwendet. Wenn Sie Daten verlieren, müssen Sie nicht versuchen, sie erneut zu senden.

Welche Sie verwenden, hängt von der Anwendung ab. Ein Webserver verwendet beispielsweise TCP.


51
2018-05-16 20:30



Das ist sinnvoll - wenn Sie also ein Video streamen, ist es nicht sinnvoll, ein fehlendes Bild später erneut zu senden, da Sie diesen Punkt bereits überschritten haben. Vielen Dank - Guy
+1. Nur um hinzuzufügen, sollte jemand, der nach tieferem Verständnis sucht, einen von W. Richard Stevens viele ausgezeichnete Bücher zu dem Thema lesen. "TCP / IP Illustrated, V1" und "UNIX Network Programming" dienen als hervorragende Tutorials und Referenzen. - Murali Suriar


Hier finden Sie eine gute Zusammenfassung:

Was ist der Unterschied zwischen UDP- und TCP-Internetprotokollen?

Sowohl TCP als auch UDP arbeiten im TCP / IP-Modell der Transportschicht, haben jedoch eine sehr unterschiedliche Verwendung.

Die wichtigsten Unterschiede sind:

  • Zuverlässigkeit:
    TCP: verbindungsorientiert
    UDP: verbindungslos
  • Bestellt:
    TCP: Reihenfolge des Nachrichtenempfangs ist garantiert
    UDP: Bestellung ist nicht garantiert
  • Protokollgewicht:
    TCP: Schwergewicht, wegen des Verbindungs- / Bestellaufwands
    UDP: leicht, sehr wenig Overhead
  • Pakete:
    TCP: Streaming, Daten werden als "Stream" gelesen, wobei nichts unterscheidet, wo ein Paket endet und ein anderes beginnt. Es kann mehrere Pakete pro Leseaufruf geben.
    UDP: Datagramme, ein Paket pro gelesenem Anruf.

Rahmenstruktur

Wenn Daten über das Netzwerk gesendet werden, müssen sie in sogenannte "Frames" eingekapselt werden. Abhängig von dem verwendeten Protokoll und der verwendeten Topologie gibt es verschiedene Verkapselungsmethoden. Die folgenden Bilder zeigen, wie sich TCP- und UDP-Frame-Strukturen unterscheiden.

Dies ist die TCP-Rahmenstruktur:

TCP frame

Dies ist die UDP-Frame-Struktur, viel einfacher:

UDP frame

Typische Protokolle, die TCP verwenden, sind HTTP, FTP und SMTP. Beispiele für Protokolle, die UDP verwenden, sind DNS und DHCP.


71
2018-05-16 20:38



+1 - das hat mir geholfen, und ich weiß ein bisschen darüber. Vielen Dank! - tomjedrz
@splattne - Reihenfolge der Nachricht Quittung ist Garantie, keine Übertragung - Alnitak
@ Alnitak: natürlich hast du recht. Ich meinte, der Empfang ist in der Übertragungsreihenfolge garantiert. Ich werde aktualisieren, um das klarzustellen. - splattne
Diese Bilder sind gestorben. - strugee
Kannst du bitte neue Bilder posten? - user6607


Und die Erklärung auf CEO-Ebene:

UDP ist, wenn Sie Ihr Papier in die allgemeine Richtung des Behälters werfen.

TCP ist, wenn es fehlt, wirfst du immer wieder exakte Kopien des gleichen Papiers, bis es in den Papierkorb fällt. Es würde Papierverschwendung geben, selbst wenn TCP-Pakete erneut gesendet werden, führt dies zu einer Verschwendung von Netzwerk- oder Systemressourcen.


42
2018-06-02 16:20



Das ist eine sehr gute "CEO Level" Erklärung - ich mag es! - Keithius
Ich bin kein CEO, aber warum hat mir das früher keiner gesagt! : p - Nicolas Dorier
Das ist brilliant! - shylent
Bei TCP holen Sie das verpasste Papier nicht auf: Stattdessen werfen Sie immer wieder exakte Kopien des gleichen Papiers, bis es in den Papierkorb fällt. Es würde Papierverschwendung geben, selbst wenn TCP-Pakete erneut gesendet werden, führt dies zu einer Verschwendung von Netzwerk- oder Systemressourcen. - nixnotwin


TCP und UDP sind beide Protokolle, die auf IP ausgeführt werden. TCP hat garantierte Zustellung und UDP nicht. Je nachdem, welchen Dienst Sie weiterleiten möchten, würden Sie das eine oder andere für die Portweiterleitung auswählen. HTTP ist zum Beispiel TCP. Wenn Sie nicht wissen, welches Protokoll der Dienst, den Sie weiterleiten möchten, ist, ist es fast sicher TCP.


7
2018-05-16 20:34





Um einen anderen Teil Ihrer Frage zu beantworten, müssen Sie das weiterleiten, was Ihre Anwendung verwendet. Um HTTP-Datenverkehr weiterzuleiten, wählen Sie TCP. Um TFTP-Datenverkehr weiterzuleiten, wählen Sie UDP. P2P-Programme verwenden meistens sowohl tcp als auch udp, also leiten sie beide weiter.

Es kommt auf das Protokoll und das Programm an, das Sie verwenden.


3
2018-05-16 21:12



Du hast nicht ganz recht. dns benutzt auch tcp / 53, nicht so oft aber immernoch [zb. für die Zonenübertragung]. - pQd
Ja. Außerdem ist es durchaus zulässig, normale DNS-Abfragen über TCP zu senden. Ich habe das Beispiel in TFTP geändert, das ausschließlich UDP verwendet. - hayalci
eigentlich hast du es zu TFTP anstatt TFTP geändert ... Leider habe ich noch zu wenig Rep, um es für dich zu reparieren. - Peter Hansen
@ peter-hansen danke, korrigiert den fehler. - hayalci


Neben den bisher genannten Unterschieden bietet TCP auch

Ablaufsteuerung. Mithilfe eines Fenstermechanismus begrenzt der Empfänger die Anzahl der Oktette (Bytes), die er vom Absender empfangen möchte, bevor der Absender auf die Berechtigung zum Senden weiterer Daten warten muss. Die Größe des Fensters kann vom Empfänger geändert werden, während die Konversation fortschreitet. Dadurch kann ein Empfänger die Datenrate eines Absenders "drosseln": UDP lässt dies nicht zu und alles, was ein Empfänger tun kann, ist das Wegwerfen von Daten, die er bei der Ankunft nicht puffern oder verarbeiten kann.

etwas mehr technische Einrichtungen wie nicht-zusammenhängende Bestätigung (verwendet selektive Bestätigungen, um dem Sender zu erlauben, nur einen fehlenden Rahmen statt des fehlenden Rahmens und nachfolgender, die der Empfänger bereits hat, aber nicht auf die übliche Weise bestätigen konnte, erneut zu übertragen), Überlastungsbehandlung und adaptive Rückübertragung (Anpassung des Timers, der entscheidet, wie schnell ein übertragener Rahmen erneut gesendet wird, wenn keine Bestätigung empfangen wird). Diese sind für UDP nicht relevant, helfen TCP jedoch, zusätzliche Dienste über UDP bereitzustellen, ohne die Netzwerkbelastung für dasselbe Nutzlastvolumen stark zu erhöhen.


2
2018-06-20 13:00





TCP bemüht sich sicherzustellen, dass die Daten an den Empfänger gelangen. UDP nicht.


2
2018-06-17 20:24



Falsch. Das IP-Protokoll ist nicht zuverlässig und Datenverlust kann auftreten. TCP bemüht sich sicherzustellen, dass gesendete Daten (die in kleine Teile aufgeteilt und über IP-Pakete gesendet werden) es zum Empfänger schaffen (indem sie ggf. kleine Teile erneut senden). - Anonymous
@ Anonymous - Du hast im Grunde gesagt, was ich oben gesagt habe. Wie liege ich falsch? - J. Polfer
Ich denke, Sie werden beide feststellen, dass IP das zugrunde liegende Framework (Stack) und das grundlegende Kommunikationsprotokoll ist, das sowohl UDP als auch TCP verwenden. Mit JUST IP kann man eigentlich keine brauchbaren Daten über das Internet austauschen, so weit ich weiß - selbst einfache Pings etc. benutzen ein Protokoll über IP (das andere Haupt; ICMP). - Lee B


Vergiss nicht alle Antworten, die eine gegen die andere erklären. Zum Einrichten einer Portweiterleitung sind die Regeln ziemlich einfach: Sie müssen TCP auswählen, es sei denn, die Dokumente für das von Ihnen verwendete Protokoll / Anwendung verwenden UDP. Normalerweise beziehen sich diejenigen, die UDP verwenden, auf Streaming oder sehr einfache Dinge, die leichte Protokolle / Geschwindigkeit gegenüber Zuverlässigkeit bevorzugen (insbesondere DNS und NTP). Beachten Sie, dass es neben TCP und UDP noch weitere Protokolle gibt - ICMP, Tunneling-Protokolle usw.


1
2018-04-25 23:37





Je bekannter ein Protokoll ist, desto mehr Router auf dem Pfad intervenieren mit dem Protokoll. Sende tcp-Pakete, und es gibt eine große Wahrscheinlichkeit, dass die empfangenen Pakete stark verfälscht sind. UDP ist normalerweise nicht so fehlerhaft und die anderen 254 IP-Paylod-Protokolle sind normalerweise völlig unangetastet.


1
2017-11-17 10:30