TCP vs. UDP

Es gibt zwei Arten von IP-Verkehr (Internet Protocol). Sie sind TCP oder Übertragungssteuerprotokoll und UDP oder Protokoll des Benutzerdatagramms. 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 Paketen unter Verwendung von UDP gesendet.

Vergleichstabelle

Vergleichstabelle für TCP und UDP
TCPUDP
Abkürzung für Übertragungssteuerprotokoll User Datagram Protocol oder Universal Datagram Protocol
Verbindung TCP ist ein verbindungsorientiertes Protokoll. UDP ist ein verbindungsloses Protokoll.
Funktion So gelangt eine Nachricht über das Internet von einem Computer zum anderen. Dies ist verbindungsbasiert. UDP ist auch ein Protokoll, das beim Nachrichtentransport oder -transfer verwendet wird. Dies ist nicht verbindungsbasiert, was bedeutet, dass ein Programm eine Last von Paketen an ein anderes senden kann, und das wäre das Ende der Beziehung.
Verwendungszweck TCP eignet sich für Anwendungen, die eine hohe Zuverlässigkeit erfordern, und die Übertragungszeit ist relativ unkritisch. UDP eignet sich für Anwendungen, die eine schnelle und effiziente Übertragung erfordern, wie z. B. Spiele. Die Stateless-Eigenschaft von UDP ist auch für Server nützlich, die kleine Anfragen von einer großen Anzahl von Clients 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 eine Bestellung erforderlich ist, muss sie von der Anwendungsebene verwaltet werden.
Übertragungsgeschwindigkeit Die Geschwindigkeit für TCP ist langsamer als UDP. UDP ist schneller, da keine Fehlerbehebung versucht wird. Es ist ein "Best-Effort" -Protokoll.
Zuverlässigkeit Es besteht die absolute Garantie, dass die übermittelten Daten erhalten bleiben und in derselben Reihenfolge ankommen, in der sie gesendet wurden. Es gibt keine Garantie dafür, dass die gesendeten Nachrichten oder Pakete überhaupt erreicht werden.
Header-Größe Die Größe des TCP-Headers beträgt 20 Byte Die UDP-Header-Größe beträgt 8 Byte.
Gemeinsame Header-Felder Quellport, Zielport, Prüfsumme Quellport, Zielport, Prüfsumme
Streaming von Daten Daten werden als Bytestrom gelesen, es werden keine Unterscheidungsangaben an Signalnachrichten- (Segment-) Grenzen übertragen. Pakete werden einzeln gesendet und nur dann auf Integrität geprüft, wenn sie ankommen. Pakete haben bestimmte Grenzen, die beim Empfang beachtet werden. Das heißt, ein Lesevorgang am Empfängersockel führt zu einer vollständigen Nachricht, wie sie ursprünglich gesendet wurde.
Gewicht TCP ist schwer. TCP erfordert drei Pakete, um eine Socket-Verbindung aufzubauen, bevor Benutzerdaten gesendet werden können. TCP sorgt für Zuverlässigkeit und Überlastungskontrolle. UDP ist leichtgewichtig. Es gibt keine Reihenfolge für Nachrichten, keine Tracking-Verbindungen usw. Es handelt sich um eine kleine Transportschicht, die auf IP aufgebaut ist.
Datenflusskontrolle TCP übernimmt die Flusskontrolle. TCP erfordert drei Pakete, um eine Socket-Verbindung aufzubauen, bevor Benutzerdaten gesendet werden können. TCP sorgt für Zuverlässigkeit und Überlastungskontrolle. UDP hat keine Option für die Flusskontrolle
Fehlerüberprüfung TCP führt Fehlerprüfung und Fehlerbehebung durch. Fehlerhafte Pakete werden erneut von der Quelle an das Ziel übertragen. UDP prüft die Fehler, verwirft jedoch einfach fehlerhafte Pakete. Fehlerbehebung wird nicht versucht.
Felder 1. Folgenummer, 2. ACK-Nummer, 3. Datenoffset, 4. Reserviert, 5. Steuerbit, 6. Fenster, 7. Dringender Zeiger 8. Optionen, 9. Auffüllung, 10. Check Sum, 11. Quellport, 12. Zielhafen 1. Länge, 2. Quellport, 3. Zielport, 4. Überprüfen Sie die Summe
Wissen Bestätigungssegmente Keine Bestätigung
Handshake SYN, SYN-ACK, ACK Kein Handshake (verbindungsloses Protokoll)

Inhalt: TCP vs. UDP

  • 1 Unterschiede bei den Datenübertragungsfunktionen
    • 1.1 Zuverlässigkeit
    • 1.2 Bestellung
    • 1.3 Verbindung
    • 1.4 Überweisungsmethode
    • 1.5 Fehlererkennung
  • 2 So funktionieren TCP und UDP
  • 3 verschiedene Anwendungen von TCP und UDP
    • 3.1 TCP vs. UDP für Game Server
  • 4 Referenzen

Unterschiede bei den Datenübertragungsfunktionen

TCP sorgt für eine zuverlässige und geordnete Übermittlung eines Bytestroms von Benutzer zu Server oder umgekehrt. UDP ist nicht für End-to-End-Verbindungen vorgesehen, und die Kommunikation prüft die Bereitschaft des Empfängers nicht.

Zuverlässigkeit

TCP ist zuverlässiger, da es die Nachrichtenbestätigung und die erneute Übertragung im Fall von verlorenen Teilen verwaltet. Es fehlen also absolut keine Daten. UDP stellt nicht sicher, dass die Kommunikation beim Empfänger angekommen ist, da keine Konzepte für Bestätigung, Timeout und erneute Übertragung vorhanden sind.

Bestellung

TCP Übertragungen werden in einer Reihenfolge gesendet und in derselben Reihenfolge empfangen. Wenn Datensegmente in falscher Reihenfolge ankommen, ordnet TCP die Anwendung neu zu und liefert sie. Im Falle von UDP, Die Reihenfolge der gesendeten Nachrichten wird möglicherweise nicht beibehalten, wenn sie die empfangende Anwendung erreicht. Es ist absolut unmöglich, die Reihenfolge vorherzusagen, in der die Nachricht empfangen wird.

Verbindung

TCP ist eine Verbindung mit hohem Gewicht, die drei Pakete für eine Socket-Verbindung erfordert und die Überlastungskontrolle und Zuverlässigkeit regelt. UDP ist eine leichte Transportschicht, die auf einer IP-Adresse entwickelt wurde. Es gibt keine Tracking-Verbindungen oder Reihenfolge von Nachrichten.

Überweisungsmethode

TCP Liest Daten als Bytestrom und die Nachricht wird an die Segmentgrenzen übertragen. UDP Nachrichten sind Pakete, die einzeln gesendet und bei Ankunft auf ihre Integrität geprü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 eine Prüfsumme, aber wenn ein Fehler erkannt wird, wird das Paket verworfen. Eine erneute Übertragung des Pakets zur Wiederherstellung nach diesem Fehler wird nicht versucht. Dies liegt daran, dass UDP normalerweise für zeitkritische Anwendungen wie Spiele oder Sprachübertragung verwendet wird. Die Behebung des Fehlers wäre sinnlos, da das neu übertragene Paket zum Zeitpunkt des Empfangs nicht von Nutzen ist.

TCP verwendet sowohl Fehlererkennung als auch Fehlerbehebung. Fehler werden über die Prüfsumme erkannt und wenn ein Paket fehlerhaft ist, wird es vom Empfänger nicht bestätigt, was eine erneute Übertragung durch den Sender auslöst. Dieser Betriebsmechanismus wird als positive Bestätigung mit erneuter Übertragung (PAR) bezeichnet..

Wie funktionieren TCP und UDP?

Eine TCP-Verbindung wird über einen Drei-Wege-Handshake hergestellt. Dabei handelt es sich um einen Prozess zum Initiieren und Bestätigen einer Verbindung. Sobald die Verbindung hergestellt ist, kann die Datenübertragung beginnen. Nach der Übertragung wird die Verbindung durch Schließen aller eingerichteten virtuellen Verbindungen beendet.

UDP verwendet ein einfaches Übertragungsmodell ohne implizite Dialoge, um die Zuverlässigkeit, Ordnung oder Datenintegrität zu gewährleisten. Daher bietet UDP einen unzuverlässigen Dienst, und Datagramme können fehlerhaft ankommen, doppelt erscheinen oder ohne Ankündigung verschwinden. UDP geht davon aus, dass die Fehlerprüfung und -korrektur entweder nicht erforderlich ist oder in der Anwendung ausgeführt wird, wodurch der Aufwand für eine solche Verarbeitung auf Netzwerkschnittstellenebene vermieden wird. Im Gegensatz zu TCP ist UDP mit Packet Broadcasts (Senden an alle im lokalen Netzwerk) und Multicasting (Senden an alle Teilnehmer) kompatibel..

Verschiedene Anwendungen von TCP und UDP

Web-Browsing, E-Mail und Dateiübertragung sind übliche Anwendungen, die TCP verwenden. TCP wird zur Steuerung der Segmentgröße, Datenaustauschrate, Flusskontrolle und Netzwerküberlastung verwendet. TCP wird bevorzugt, wenn Fehlerkorrekturfunktionen auf Netzwerkschnittstellenebene erforderlich sind. UDP wird hauptsächlich von zeitkritischen Anwendungen sowie von Servern verwendet, die kleine Anfragen von einer großen Anzahl von Clients beantworten. UDP ist kompatibel mit Packet Broadcasting - Senden an alle in einem Netzwerk und Multicasting - Senden an alle Teilnehmer. UDP wird häufig in Domain Name System, Voice over IP, Trivial File Transfer Protocol und Online-Spielen verwendet.

TCP vs. UDP für Game Server

Bei Massively Multiplayer Online (MMO) -Spielen müssen Entwickler häufig eine architektonische Wahl zwischen der Verwendung von persistenten UDP- oder TCP-Verbindungen treffen. Die Vorteile von TCP sind dauerhafte Verbindungen, Zuverlässigkeit und die Möglichkeit, Pakete mit beliebiger Größe zu verwenden. Das größte Problem bei TCP in diesem Szenario ist der Algorithmus zur Überlastungskontrolle, der den Paketverlust als Zeichen von Bandbreitenbeschränkungen behandelt und das Senden von Paketen automatisch drosselt. In 3G- oder Wi-Fi-Netzwerken kann dies zu erheblichen Latenzen führen.

Der erfahrene Entwickler Christoffer Lernö hat die Vor- und Nachteile abgewogen und empfiehlt die folgenden Kriterien, um zu entscheiden, ob Sie TCP oder UDP für Ihr Spiel verwenden möchten:

  • Verwenden Sie HTTP über TCP, um gelegentlich vom Client initiierte zustandslose Abfragen durchzuführen, wenn eine gelegentliche Verzögerung in Ordnung ist.
  • Verwenden Sie permanente, einfache TCP-Sockets, wenn sowohl Client als auch Server unabhängig voneinander Pakete senden, eine gelegentliche Verzögerung jedoch in Ordnung ist (z. B. Online Poker, viele MMOs)..
  • Verwenden Sie UDP, wenn sowohl Client als auch Server unabhängig voneinander Pakete senden können und gelegentliche Verzögerungen nicht in Ordnung sind (z. B. die meisten Multiplayer-Action-Spiele, einige MMOs)..

Verweise

  • Wikipedia: Übertragungssteuerprotokoll
  • Wikipedia: User Datagram Protocol
  • UDP vs TCP für Spieleserver
  • Das Übertragungssteuerprotokoll