/
/

TCP vs UDP: Worin liegt der Unterschied?

von Team Ninja
TCP vs UDP: What’s the Difference blog banner image

Kurzüberblick

Dieser NinjaOne-Blogbeitrag bietet eine umfassende Liste grundlegender CMD-Befehle und einen tiefen Einblick in die Windows-Befehle mit über 70 wichtigen CMD-Befehlen für Anfänger:innen und Fortgeschrittene. Der Blogartikel erklärt praktische Befehle der Eingabeaufforderung für die Dateiverwaltung, die Navigation in Verzeichnissen, die Fehlersuche im Netzwerk, Festplattenoperationen und die Automatisierung mit echten Beispielen zur Steigerung der Produktivität. Egal, ob Sie grundlegende CMD-Befehle lernen oder fortgeschrittene Windows CLI-Tools beherrschen möchten, dieser Leitfaden hilft Ihnen, die Eingabeaufforderung effektiver zu verwenden.

Was wissen wir eigentlich über TCP vs UDP? Internet, Blockchain, Cloud-Computing: Ganz gleich, um welchen Bereich es geht, Computer entfalten ihre volle Wirkung erst, wenn sie miteinander verbunden sind. Daten zu versenden und dabei sicherzustellen, dass sie vollständig beim Empfänger ankommen, erfordert allerdings ein komplexes Zusammenspiel aus Netzwerken und Knotenpunkten. Bevor wir uns die Besonderheiten von Transport Control Protocol (TCP) und User Datagram Protocol (UDP) im Detail ansehen, lohnt sich ein Schritt zurück.

Alle Netzwerkmodelle beschreiben letztlich denselben Vorgang: wie Datenbits als elektrischer Impuls über Kabel oder als Lichtmuster über Glasfaserkabel verschickt werden. Und wie diese Datenbits auf der Empfängerseite wieder entgegengenommen und zusammengesetzt werden.

Daten von einer Anwendung auf einem Computer zu einer anderen zu übertragen, wäre technisch auch mit einem einzigen Protokoll möglich. Diese Methode wäre jedoch extrem anfällig: Jede Änderung an der Hardware würde bedeuten, dass die gesamte Anwendungs- und Protokollsoftware angepasst werden müsste. Um die nötige Flexibilität beim Verbinden von Geräten zu erreichen, arbeiten Netzwerke mit geschichteten Stapeln unterschiedlicher Protokolle. Jede Schicht im Stapel hat eine bestimmte Funktion und kommuniziert mit den direkt darüber- und darunterliegenden Schichten.

Das umfassendste Rahmenwerk ist heute das Open System Interconnection (OSI)-Modell. UDP und TCP verändern einige der beteiligten Schichten, deshalb ist das OSI-Modell der beste Ausgangspunkt für eine tiefere Betrachtung.

Das OSI-Modell im Schnelldurchlauf

Bitübertragungsschicht

Auf der grundlegendsten Ebene besteht diese Schicht aus den mechanischen Elementen des Datenversands und -empfangs. Hier wird festgelegt, wie Pins und Kabel die Nullen und Einsen in ein Signal kodieren, das anschließend als Licht-, elektrisches oder Funksignal an das lokale Medium weitergegeben wird.

Sicherungsschicht (Data Link Layer, DLL)

Die Sicherungsschicht fungiert als Vermittler zwischen den physischen Komponenten eines Geräts und den netzwerkbasierten Datenpaketen. Die Daten in der Bitübertragungsschicht sind im Grunde unstrukturiert, und es ist die Aufgabe dieser Schicht, sie in Frames zu verpacken. Dabei wird der kontinuierliche Datenstrom in Gruppen zusammengefasst, ein Vorgang, der Multiplexing genannt wird. Jedes Datenpaket erhält hier einen Header, der Absender und Ziel kennzeichnet.

Vermittlungsschicht

Sobald die Datenpakete bereitstehen, kann die Vermittlungsschicht (auch Internetschicht) sie von einem Gerät zu einem anderen über ein Netzwerk leiten. Dazu erhält jedes Gerät eine eindeutige IP-Adresse, über die es identifiziert wird und anhand derer der Weg bestimmt wird, den die Pakete nehmen sollen.

Transportschicht

Die Transportschicht liegt zwischen Vermittlungs- und Sitzungsschicht und kümmert sich darum, Nachrichten an einen Host zuzustellen. Sie sorgt dafür, dass Anwendungen und Dienste schneller laufen, weil die nachgelagerten Prozesse die individuellen Eigenheiten des jeweiligen Kommunikationsnetzes nicht berücksichtigen müssen. Diese Schicht bildet die Grundlage der UDP- und TCP-Protokolle, zu denen wir gleich kommen.

Sitzungsschicht

Die Transportschicht interessiert es nicht, ob zwei Computer bereits miteinander kommuniziert haben, sie schiebt lediglich Pakete hin und her. Die Sitzungsschicht ordnet den Datenverkehr in einen logischen Anfang und ein logisches Ende.

Darstellungsschicht

Das Volumen dieser Datenpakete kann sehr hoch sein. Die Darstellungsschicht kümmert sich vor allem darum, diese Pakete zu kodieren und zu komprimieren, um ihren Bandbreitenbedarf zu senken, bevor sie das Gerät des Absenders verlassen.

Anwendungsschicht

Schließlich müssen die empfangenen Daten (oder die Daten, die gleich versendet werden) an die Benutzer:innen weitergegeben werden. Das OSI-Modell ist ein nützliches Modell, aber bedenken Sie: Kein modernes Protokoll folgt seinen genauen Konturen über alle 7 Schichten hinweg. Die Protokolle TCP und UDP konzentrieren sich beispielsweise ausschließlich auf die Vermittlungs- und die Transportschicht.

Was ist TCP?

Das Transport Control Protocol war im Grunde das erste Netzwerkprotokoll. Es entstand 1981, kurz nach den Anfängen des Internets, und war in seiner ersten Form darauf ausgerichtet, Daten in Pakete zu segmentieren. In den Jahrzehnten danach hat es sich zum TCP/IP-Stack weiterentwickelt, der heute der Standard ist. Die Pakete innerhalb von TCP verteilen sich auf 4 Schichten: Sicherungsschicht, Vermittlungsschicht, Transportschicht und Anwendungsschicht.

Wie der Name schon andeutet, hat TCP den größten Einfluss auf der Transportschicht. Bevor Daten versendet werden, baut TCP über einen Drei-Wege-Handshake eine kurze Verbindung zwischen zwei Netzwerkendpunkten auf.

Zuerst initiiert der Client die Verbindung mit einer SYN-Nachricht (synchronize) in Form einer Zufallszahl. Der Server bestätigt den Empfang mit einem SYN-ACK, das lediglich eine 1 an die Zahl des Clients anhängt. Dieses SYN-ACK wiederum bestätigt der Client mit einer ACK-Nachricht. Dieser virtuelle Handshake stellt sicher, dass Sender und Empfänger kommunikationsbereit sind und wissen, dass der Kanal steht. Ist der empfangende Port offline oder nicht erreichbar, tritt an die Stelle der ACK-Nachricht ein TCP-RST-Paket (reset).

Nicht nur der Verbindungsaufbau beruht auf einer beidseitigen Bestätigung: Auch der Abbau erfolgt zweiseitig und bestätigt, dass ein Client oder Server das Senden von Daten abgeschlossen hat. Nach demselben Muster schickt der Client, sobald alle relevanten Daten übertragen wurden, ein FIN-Segment in Form seiner eigenen Sequenznummer. Der Server bestätigt es erneut. Wenn der Server alle Daten erhalten hat, sendet er seinerseits ein FIN-Paket, das bestätigt wird, woraufhin die Verbindung beendet ist.

Die Bedeutung von IP

Entscheidend für diesen Ablauf ist, dass für jede Verbindung vor dem Versand ein Ziel festgelegt sein muss. Erst danach kann der TCP-Handshake stattfinden. Genau hier kommt das Internet Protocol (IP) als die andere Seite der TCP/IP-Medaille ins Spiel.

Jedes Gerät und jede Domain im Internet hat eine eindeutige IP-Adresse. Im Header jedes Datenpakets steht die IP-Adresse des vorgesehenen Empfängers, sodass die Daten dort ankommen, wo sie gebraucht werden. Sobald die IP-Adresse feststeht, kann der TCP-Prozess die Datenübertragung starten. Die empfangenen Daten müssen allerdings am richtigen Port landen, und genau deshalb enthalten TCP-Pakete Port-Informationen. Stellen Sie sich die IP-Adresse als Postleitzahl vor und die TCP-Port-Daten als konkrete Hausnummer. Außerdem enthalten TCP-Pakete eine Sequenznummer, vergleichbar mit nummerierten Seiten in einem Brief; sie gibt an, in welcher Reihenfolge die Pakete versendet werden.

TCP/IP hat sich zum Standard für sichere und zuverlässige Datenübertragung über das Internet entwickelt. Ein großer Vorteil des IP-Ansatzes ist seine Flexibilität, und TCP ist nicht der einzige Weg, Daten von A nach B zu transportieren.

Was ist UDP?

Das User Datagram Protocol (UDP) ist ein schlankes Transportprotokoll, das auf den Grundlagen von IP aufsetzt. Statt des aufwendigen TCP-Handshakes verschickt UDP jedoch kleine, voneinander unabhängige Pakete, sogenannte Datagramme, ohne vorher eine Verbindung abzugleichen. Das mag riskant wirken, doch UDP ist von vornherein darauf ausgelegt, Informationen zu verlieren, ohne dass die Kommunikation deshalb zusammenbricht.

Jedes Datagramm ist eine eigenständige Einheit und enthält keine Informationen über die Datenteile davor oder danach. So muss ein Server keinen Rückstau verzögerter Pakete abarbeiten, sondern kann Anfragen vollkommen linear bearbeiten. Unterstützt wird das durch die Größe der UDP-Pakete. Man denke an die integrierte Fehlerprüfung und die fortlaufende Nummerierung bei TCP-Paketen: Weil UDP all diese optionalen Zusätze weglässt, sind UDP-Datagramme nur einen Bruchteil so groß. Diese schlanken Dateneinheiten lassen sich dann blitzschnell verarbeiten.

Deshalb kommt UDP in Diensten zum Einsatz, die eine nahezu echtzeitnahe Verarbeitung benötigen. Denken Sie an Videostreaming und Computerspiele: Sie benötigen womöglich sehr viele UDP-Datagramme, aber deren Tempo ist für eine gute Benutzererfahrung unverzichtbar. Und wenn ein Paket verloren geht oder nicht ankommt, besteht die reale Folge vielleicht aus einem fehlenden Pixel für die Dauer eines Frames. Auch Domain Name Service (DNS)-Anfragen, die einen Domainnamen mit einer erkennbaren Webadresse verknüpfen, nutzen UDP. Diese Anfragen sind winzig und bestehen aus je einem Anfrage-Antwort-Paar, müssen aber schnell ablaufen, was sie zu einem naheliegenden Anwendungsfall für UDP macht.

TCP und UDP im Funktionsvergleich

Funktion UDP (User Datagram Protocol) TCP (Transmission Control Protocol)
Verbindung Verbindungslos, baut vor dem Senden von Daten keine Verbindung auf. Verbindungsorientiert, baut vor der Datenübertragung einen Drei-Wege-Handshake auf.
Zuverlässigkeit Garantiert weder Zustellung noch Reihenfolge noch Fehlerprüfung. Die Paketarchitektur stellt die Zustellung in der richtigen Reihenfolge sicher.
Geschwindigkeit Schnell. Langsamer als UDP, bedingt durch die umfangreichen Mechanismen zur Fehlerprüfung.
Datenflusssteuerung Keine Flusskontrolle; sendet Daten so schnell, wie der Absender sie erzeugen und das Netzwerk sie verarbeiten kann. Die Flusskontrolle erfolgt über Windowing-Verfahren, die den Datenfluss anpassen.
Einsatz Wird für zeitkritische Anwendungen genutzt, bei denen ein gewisser Datenverlust verkraftbar ist (z. B. Live-Audio- und -Videostreaming). Wird dort genutzt, wo eine zuverlässige Datenzustellung entscheidend ist (z. B. Surfen im Web, E-Mail).
Header-Größe Kleinerer Header (8 Byte). Größerer Header (mindestens 20 Byte).
Sequenzierung Nummeriert Datenpakete nicht fortlaufend. Nummeriert Datenpakete fortlaufend, um eine geordnete Zustellung zu gewährleisten.

Zum Schluss noch ein paar Gedanken zur Sicherheit

Wenn Sie sich in Ihren eigenen Projekten zwischen UDP und TCP entscheiden, denken Sie daran: Das Tempo von UDP macht es zwar attraktiv, es ist aber von Natur aus anfälliger für Sicherheitsprobleme wie Spoofing und Denial-of-Service-Angriffe. Der Handshake-Mechanismus von TCP verhindert, dass gefälschte IP-Adressen Schaden anrichten, doch auch TCP ist nicht immun. In den vergangenen Jahren haben DDoS-Amplification-Angriffe genau dieses Hin und Her gekapert, um einen Server dazu zu bringen, auf eine abschließende ACK-Nachricht zu warten, die nie eintrifft.

Eine anschauliche Erklärung der Unterschiede zwischen TCP und UDP finden Sie hier: TCP vs. UDP: Worin liegt der Unterschied?

Das könnte Sie auch interessieren

Sind Sie bereit, die schwierigsten Aufgaben der IT zu vereinfachen?

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche „Ich akzeptiere“ klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird „wie gesehen“ und „wie verfügbar“ bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).