Mein Router verfügt über zwei Protokolle (und eine Option "Beide"), 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 Portweiterleitung eines über das andere auswählen?
46
Eine gute Zusammenfassung finden Sie hier:
Was ist der Unterschied zwischen den Internetprotokollen UDP und TCP?
Sowohl TCP als auch UDP arbeiten im TCP / IP-Modell der Transportschicht, werden jedoch sehr unterschiedlich verwendet.
Die wichtigsten Unterschiede sind:
TCP: verbindungsorientiertes
UDP: verbindungslos
TCP: Reihenfolge des Nachrichtenempfangs ist garantiert
UDP: Reihenfolge ist nicht garantiert
TCP: Schwergewicht, wegen des Verbindungs- / Bestellungsaufwands
UDP: Leichtgewicht, sehr wenig Aufwand
TCP: Streaming, Daten werden als "Stream" gelesen, wobei nicht unterschieden wird, wo ein Paket endet und ein anderes beginnt. Es können mehrere Pakete pro Leseaufruf vorhanden sein.
UDP: Datagramme, ein Paket pro Leseaufruf.
Rahmenstruktur
Wenn Daten über das Netzwerk gesendet werden, müssen sie in sogenannte "Frames" eingekapselt werden. Abhängig vom verwendeten Protokoll und der verwendeten Topologie gibt es verschiedene Kapselungsmethoden. Die folgenden Bilder zeigen, wie sich TCP- und UDP-Frame-Strukturen unterscheiden.
Dies ist die TCP-Frame-Struktur:
Und dies ist die UDP-Frame-Struktur, viel einfacher:
Typische Protokolle, die TCP verwenden, sind HTTP, FTP und SMTP. Beispiele für UDP-Protokolle sind DNS und DHCP.
quelle
Und die Erklärung auf CEO-Ebene:
quelle
TCP und UDP sind beide Protokolle, die auf IP ausgeführt werden. TCP hat die Zustellung garantiert und UDP nicht. Sie würden den einen oder anderen Port für die Weiterleitung auswählen, je nachdem, welchen Dienst Sie weiterleiten möchten. HTTP ist beispielsweise TCP. Wenn Sie nicht wissen, welches Protokoll der Dienst ist, den Sie weiterleiten möchten, handelt es sich mit ziemlicher Sicherheit um TCP.
quelle
Um einen anderen Teil Ihrer Frage zu beantworten, müssen Sie weiterleiten, was Ihre Anwendung verwendet. Um HTTP-Verkehr weiterzuleiten, wählen Sie TCP. Um TFTP-Verkehr weiterzuleiten, wählen Sie UDP. p2p-programme verwenden meistens sowohl tcp als auch udp, leiten sie also beide weiter.
Es hängt alles von dem Protokoll und dem Programm ab, das Sie verwenden.
quelle
Neben den bisher genannten Unterschieden bietet auch TCP
Ablaufsteuerung. Mithilfe eines Fenstermechanismus begrenzt der Empfänger, wie viele Bytes er vom Absender empfangen möchte, bevor der Absender auf die Erlaubnis warten muss, weitere Daten zu senden. Die Größe des Fensters kann vom Empfänger während des Gesprächs geändert werden. Auf diese Weise kann ein Empfänger die von einem Absender kommende Datenrate "drosseln": UDP lässt dies nicht zu, und ein Empfänger kann nur Daten wegwerfen, die er bei Ankunft nicht puffern oder verarbeiten kann.
einige weitere technische Einrichtungen wie nicht zusammenhängende Bestätigung (verwendet selektive Bestätigungen, um es dem Absender zu ermöglichen, nur einen fehlenden Rahmen anstatt des fehlenden Rahmens und nachfolgender, die der Empfänger bereits hat, aber nicht auf die übliche Weise bestätigen konnte, erneut zu senden), Überlastungsbehandlung und adaptive Neuübertragung (Einstellen des Timers, der entscheidet, wann ein übertragener Frame erneut gesendet wird, wenn keine Bestätigung empfangen wird). Diese sind für UDP nicht relevant, helfen TCP jedoch dabei, zusätzliche Dienste über UDP bereitzustellen, ohne die Netzwerklast bei gleichem Nutzlastvolumen erheblich zu erhöhen.
quelle
TCP bemüht sich, sicherzustellen, dass die Daten beim Empfänger eingehen. UDP nicht.
quelle
Es macht nichts aus, alle Antworten zu erklären, eine gegen die andere. Zum Einrichten einer Portweiterleitung sind die Regeln ziemlich einfach: Sie müssen TCP auswählen, es sei denn, die Dokumentation für das verwendete Protokoll / die Anwendung verwendet UDP. Normalerweise beziehen sich diejenigen, die UDP verwenden, auf Streaming oder sehr einfache Dinge, die einfache Protokolle / Geschwindigkeit gegenüber Zuverlässigkeit bevorzugen (insbesondere DNS und NTP). Beachten Sie, dass es neben TCP und UDP auch andere Protokolle gibt - ICMP, Tunneling-Protokolle usw.
quelle
Je bekannter ein Protokoll ist, desto mehr Router auf dem Pfad greifen in das Protokoll ein. Senden Sie TCP-Pakete, und es besteht eine große Wahrscheinlichkeit, dass die empfangenen Pakete stark beschädigt sind. UDP ist normalerweise nicht so entstellt, und die anderen 254 IP-Paylod-Protokolle sind normalerweise völlig unberührt.
quelle
User Datagram Protocol (UDP)
Es ist Teil der Basisprotokolle der Internet Protocol Suite. Programme auf vernetzten Computern können Kurznachrichten senden, die manchmal als Datagramme bezeichnet werden. UDP garantiert keine Zuverlässigkeit (es kommt vor, dass Datagramm nicht in der richtigen Reihenfolge ankommt, dupliziert wird oder ohne Vorankündigung fehlt). Die Tatsache, dass nicht überprüft wird, ob alle Pakete tatsächlich zugestellt wurden, macht UDP für Anwendungen, die keine garantierte Zustellung benötigen, schneller und effizienter. UDP findet seine Verwendung in solchen Situationen:
Zeitkritische Anwendungen. Die Probleme aufgrund von verzögerten Paketen werden vermieden
Dies ist auch nützlich für Server, die kleine Anfragen von einer großen Anzahl von Clients beantworten. UDP unterstützt Packet Broadcast (Übertragung an alle Teilnehmer im lokalen Netzwerk) und Multicasting (Übertragung an alle Teilnehmer).
Übertragungssteuerungsprotokoll (TCP)
Aufgrund der Bedeutung dieses Protokolls in der Internet Protocol Suite wird es häufig als TCP / IP bezeichnet. TCP arbeitet auf einer höheren Ebene und betrifft nur die beiden Endsysteme (z. B. zwischen Webbrowser und Webserver). TCP ermöglicht die zuverlässige, sequenzielle Übermittlung eines Datenstroms von einem Programm auf einem Computer an ein anderes Programm auf einem anderen Computer. Häufige Verwendungen der Unterstützung für TCP-Umgruppierung von E-Mail-Nachrichten sowie von Dateiübertragungs- und Webanwendungen. TCP steuert unter anderem die Nachrichtengröße, die Rate, mit der Nachrichten ausgetauscht werden, und die Überlastung des Netzwerkverkehrs. Bei IP werden Übertragungen auf niedrigerer Ebene von Computer zu Computer als Nachricht behandelt, die über das Internet übertragen wird.
quelle
Nun, beide sind Netzwerkprotokolle, die auf etwas aufbauen, das als Internet Protocol oder IP bezeichnet wird. Das Internet-Protokoll ist das Hauptprotokoll des Internets und ermöglicht es uns beispielsweise, im Internet zu surfen. Aus diesem Grund werden diese Protokolle häufig als TCP / IP oder UDP / IP geschrieben. Sie sind eigentlich Kernprotokolle des Internets.
In beiden Fällen werden Ihre Daten in Blöcke aufgeteilt, die als Pakete bezeichnet werden. TCP stellt sicher, dass diese Pakete in der richtigen Reihenfolge und fehlerfrei an ihrem Ziel ankommen.
UDP hingegen stellt nicht sicher, dass überhaupt ein Datenpaket ankommt. Es wird nur sichergestellt, dass es fehlerfrei ist, wenn es eintrifft.
In der Regel werden andere Protokolle über TCP und UDP ausgeführt und werden als Anwendungsprotokolle bezeichnet, da sie innerhalb einer Anwendung und nicht innerhalb des Betriebssystems ausgeführt werden. Ihr Webbrowser verwendet das HTTP-Protokoll, das das TCP-Protokoll verwendet.
Domainnamen-Lookups oder DNS-Abfragen verwenden häufig UDP, können aber auch TCP verwenden. Einige Streaming-Dienste verwenden UDP unter anderen Anwendungsprotokollen.
Ich hoffe, das beantwortet Ihre Frage in einfacherem Englisch.
quelle