TCP vs. UDP

TCP vs. UDP

Es gibt zwei Arten von IP -Datenverkehr (Internet -Protokoll). Sie sind TCP oder Transmissionskontrollprotokoll Und UDP oder User Datagram Protocol. TCP ist verbindungsorientiert - Sobald eine Verbindung hergestellt ist, können Daten bidirektional gesendet werden. UDP ist ein einfacheres, verbindungsloses Internetprotokoll. Mehrere Nachrichten werden als Pakete in Stücken mit UDP gesendet.

Vergleichstabelle

Unterschiede - Ähnlichkeiten - TCP gegen UDP -Vergleichstabelle
TCPUDP
Akronym für Transmissionskontrollprotokoll User Datagram Protocol oder Universal Datagram Protocol
Verbindung Das Transmissionskontrollprotokoll ist ein verbindungsorientiertes Protokoll. Das Benutzer -Datagrammprotokoll ist ein verbindungsloses Protokoll.
Funktion Als Nachricht findet sich der Weg über das Internet von einem Computer zum anderen über das Internet. Dies basiert auf Verbindung. UDP ist auch ein Protokoll, das im Nachrichtentransport oder zur Übertragung verwendet wird. Dies ist nicht verbindungsbasiert, was bedeutet, dass ein Programm eine Ladung Pakete an ein anderes senden kann, und dies wäre das Ende der Beziehung.
Verwendung TCP eignet sich für Anwendungen, die eine hohe Zuverlässigkeit erfordern, und die Übertragungszeit ist relativ weniger kritisch. UDP eignet sich für Anwendungen, die eine schnelle und effiziente Übertragung benötigen, z. B. Spiele. Die staatenlose Natur von UDP ist auch für Server nützlich, die kleine Abfragen aus einer großen Anzahl von Kunden beantworten.
Verwendung durch andere Protokolle HTTP, HTTPS, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VoIP.
Bestellung von Datenpaketen TCP ordnet Datenpakete in der angegebenen Reihenfolge um. UDP hat keine inhärente Reihenfolge, da alle Pakete unabhängig voneinander sind. Wenn die Bestellung erforderlich ist, muss sie von der Anwendungsschicht verwaltet werden.
Übertragungsgeschwindigkeit Die Geschwindigkeit für TCP ist langsamer als UDP. UDP ist schneller, da die Fehlerwiederherstellung nicht versucht wird. Es ist ein "bestem Aufwand" -Protokoll.
Zuverlässigkeit Es besteht die absolute Garantie dafür, dass die übertragenen Daten intakt bleiben und in der gleichen Reihenfolge, in der sie gesendet wurden. Es gibt keine Garantie dafür, dass die gesendeten Nachrichten oder Pakete überhaupt reichen würden.
Headergröße Die Größe der TCP -Kopfzeile beträgt 20 Bytes Die UDP -Headergröße beträgt 8 Bytes.
Gemeinsame Headerfelder Quellport, Zielport, Überprüfen Sie die Summe Quellport, Zielport, Überprüfen Sie die Summe
Streaming von Daten Daten werden als Byte -Stream gelesen, wobei keine Unterscheidungsanzeigen an Signal Message (Segment) Grenzen übertragen werden. Pakete werden einzeln gesendet und nur dann auf Integrität überprüft, wenn sie ankommen. Die Pakete haben bestimmte Grenzen, die nach Erhalt geehrt werden, was bedeutet, dass ein Lesevorgang im Empfängerbuch.
Gewicht TCP ist schwer. TCP benötigt drei Pakete, um eine Socket -Verbindung einzurichten, bevor Benutzerdaten gesendet werden können. TCP übernimmt die Zuverlässigkeits- und Überlastungskontrolle. UDP ist leicht. Es gibt keine Bestellung von Nachrichten, keine Tracking -Verbindungen usw. Es handelt sich um eine kleine Transportschicht, die auf der IP entwickelt wurde.
Datenflussregelung TCP führt die Fließregelung aus. TCP benötigt drei Pakete, um eine Socket -Verbindung einzurichten, bevor Benutzerdaten gesendet werden können. TCP übernimmt die Zuverlässigkeits- und Überlastungskontrolle. UDP hat keine Option für die Durchflussregelung
Fehlerüberprüfung TCP führt die Fehlerprüfung und Fehlerwiederherstellung durch. Fehler werden von der Quelle zum Ziel erneut übertragen. UDP führt die Fehlerprüfung durch, verwirft jedoch einfach fehlerhafte Pakete. Fehlerwiederherstellung wird nicht versucht.
Felder 1. Sequenznummer 2. ACK -Nummer, 3. Datenversatz, 4. Reserviert, 5. Kontrollbit, 6. Fenster, 7. Dringender Zeiger 8. Optionen, 9. Polsterung, 10. Überprüfen Sie die Summe, 11. Quellport, 12. Zielhafen 1. Länge 2. Quellport, 3. Zielport, 4. Summe überprüfen
Wissen Anerkennungsegmente Keine Bestätigung
Handschlag Syn, Syn-ACK, ACK Kein Handschlag (verbindungsloser Protokoll)

Unterschiede in den Datenübertragungsfunktionen

TCP Gewährleistet eine zuverlässige und geordnete Lieferung eines Byt -Stroms vom Benutzer zum Server oder umgekehrt umgekehrt. UDP ist nicht dem End -to -End -Verbindungen gewidmet, und die Kommunikation überprüft keine Bereitschaft des Empfängers.

Zuverlässigkeit

TCP ist zuverlässiger, da es bei verloren. Daher fehlt es absolut keine fehlenden Daten. UDP stellt nicht sicher, dass die Kommunikation den Empfänger erreicht hat, da Konzepte der Anerkennung, Auszeit und Übermittlung nicht vorhanden sind.

Bestellung

TCP Übertragungen werden in einer Sequenz gesendet und in derselben Reihenfolge empfangen. Im Falle von Datensegmenten, die in falscher Reihenfolge ankommen. Im Fall von UDP, Die gesendete Nachrichtensequenz wird möglicherweise nicht beibehalten, wenn sie die Empfangsanwendung erreicht. Es gibt absolut keine Möglichkeit, die Reihenfolge vorherzusagen, in der Nachricht empfangen wird.

Verbindung

TCP ist eine Anschlüsse mit schwerem Gewicht, die drei Pakete für eine Sockelverbindung erfordert und die Überlastungskontrolle und Zuverlässigkeit behandelt. UDP ist eine leichte Transportschicht, die auf einer IP entworfen wurde. Es gibt keine Tracking -Verbindungen oder die Bestellung von Nachrichten.

Übertragungsmethode

TCP Lesen Daten als Byte -Stream und die Nachricht wird an Segmentgrenzen übertragen. UDP Nachrichten sind Pakete, die einzeln gesendet werden und bei der Ankunft auf ihre Integrität überprüft werden. Pakete haben Grenzen definiert, während der Datenstrom keine hat.

Fehlererkennung

UDP arbeitet auf "Best-Effort" -Basis. Das Protokoll unterstützt die Fehlererkennung über Überprüfungen, aber wenn ein Fehler erkannt wird, wird das Paket verworfen. Die Übermittlung des Pakets zur Wiederherstellung von diesem Fehler wird nicht versucht. Dies liegt daran. Die Wiederherstellung des Fehlers wäre sinnlos, da das erneut übertragene Paket nicht mehr nützlich ist.

TCP verwendet sowohl die Fehlererkennung als auch die Fehlerwiederherstellung. Fehler werden über Prüfsumme erkannt und wenn ein Paket fehlerhaft ist, wird es vom Empfänger nicht bestätigt, was eine Neuübertragung durch den Absender auslöst. Dieser Betriebsmechanismus wird als positive Anerkennung bei der Übertragung (PAR) bezeichnet.

Wie funktioniert TCP und UDP

Eine TCP -Verbindung wird über einen Drei -Wege. Sobald die Verbindung hergestellt ist, kann die Datenübertragung beginnen. Nach der Übertragung wird die Verbindung durch Schließen aller etablierten virtuellen Schaltungen beendet.

UDP verwendet ein einfaches Übertragungsmodell ohne implizite Handschütteln, um Zuverlässigkeit, Ordnung oder Datenintegrität zu gewährleisten. Somit bietet UDP einen unzuverlässigen Dienst, und Datagramme können außerhalb der Reihenfolge eintreffen, dupliziert oder ohne vorherige Ankündigung fehlen. UDP geht davon aus. Im Gegensatz zu TCP ist UDP mit Paketübertragungen (Senden an alle im lokalen Netzwerk) und Multicasting (an alle Abonnenten gesendet) kompatibel.

Verschiedene Anwendungen von TCP und UDP

Webbrowsing, E -Mail- und Dateiübertragung sind allgemeine Anwendungen, die TCP verwenden. TCP wird verwendet. TCP wird bevorzugt, wenn Fehlerkorrektureinrichtungen auf Netzwerkschnittstellenebene erforderlich sind. UDP wird größtenteils von zeitsensiblen Anwendungen sowie von Servern verwendet, die kleine Abfragen von einer großen Anzahl von Kunden beantworten. UDP ist mit Paketübertragung kompatibel - Senden an alle in einem Netzwerk und Multicasting - Senden an alle Abonnenten. UDP wird üblicherweise im Domainnamensystem, im Voice -Over IP, im trivialen Dateiübertragungsprotokoll und im Online -Spiel verwendet.

TCP vs. UDP für Spieleervers

Für massiv Multiplayer -Online -Spiele (MMO) müssen Entwickler häufig eine architektonische Entscheidung zwischen der Verwendung von UDP- oder TCP -Verbindungen treffen. Die Vorteile von TCP sind anhaltende Verbindungen, Zuverlässigkeit und können Pakete mit willkürlichen Größen verwenden. Das größte Problem mit TCP in diesem Szenario ist sein Algorithmus zur Überlastungsregelung, der den Packetverlust als Zeichen für Bandbreitenbeschränkungen behandelt und das Senden von Paketen automatisch droselt. In 3G- oder Wi-Fi-Netzwerken kann dies zu einer erheblichen Latenz führen.

Der erfahrene Entwickler Christoffer Lernö wog die Vor- und Nachteile ab und empfiehlt die folgenden Kriterien, um zu wählen, ob TCP oder UDP für Ihr Spiel verwendet werden soll:

  • Verwenden.
  • Verwenden Sie persistente einfache TCP -Sockets, wenn sowohl Client als auch Server unabhängig voneinander Pakete senden, aber eine gelegentliche Verzögerung ist in Ordnung (e.G. Online -Poker, viele MMOs).
  • Verwenden Sie UDP, wenn sowohl Client als auch Server möglicherweise unabhängig Pakete senden, und gelegentliche Verzögerung ist nicht in Ordnung (e.G. Die meisten Multiplayer -Actionspiele, einige MMOs).