Was sind TCP und UDP? Eine einfache Erklärung - TechRobot

Was sind TCP und UDP? Eine einfache Erklärung

Das Internet basiert auf zwei Protokollen, die den Informationsaustausch zwischen Computern ermöglichen. Diese Kommunikationsprotokolle definieren die Regeln, die bestimmen, wie die Datenübertragung zwischen zwei beteiligten Entitäten stattfindet, egal ob eins zu eins oder eins zu mehreren. Das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP) sind zwei Protokolle, die zur Übertragung von Daten über Netzwerke verwendet werden können. Beide arbeiten auf der Transportschicht des OSI-Modells. 

Obwohl diese beiden Protokolle ähnlich sind, erledigen sie ihre Aufgaben effizient. Während das eine eine Verbindung benötigt und erst nach deren Einrichtung mit der Datenübertragung beginnen kann, ist das andere verbindungslos und sendet Daten, ohne das Zielgerät zuvor zu informieren. Es gibt noch mehr zu diesen Protokollen zu erfahren, wie Sie weiter unten herausfinden werden. Dieser Artikel konzentriert sich auf TCP und UDP – wie sie funktionieren, ihre Vor- und Nachteile und Unterschiede. 

Was ist TCP?

Das Transmission Control Protocol ist ein Kommunikationsprotokoll, das hauptsächlich mit der Übertragung von Datenpaketen im Internet zu tun hat. Es arbeitet auf der Transportschicht (Schicht 4) des Open Systems Interconnection (OSI) Modells. Dieses Protokoll unterstützt die Übertragung von Datenpaketen zwischen einem Clientgerät/-anwendung und einem Server (zusammen mit UDP). 

TCP ist verbindungsorientiert, das bedeutet, dass der Client und der Server vor dem Senden von Daten in irgendeine Richtung eine Verbindung herstellen müssen. Darüber hinaus ist es ein zuverlässiges Protokoll, da es auf Fehler überprüft und sicherstellt, dass Datenpakete in der von Sendergerät oder -anwendung vorgesehenen Reihenfolge am Ziel ankommen. 

Wie funktioniert TCP?

Bei der Verwendung von TCP stellen ein Client und ein Server eine Verbindung her, die als sogenannter Drei-Wege-Handshake bezeichnet wird, bevor der bidirektionale Transfer von Datenpaketen beginnt. Bevor der Drei-Wege-Handshake beginnt, muss der Server an einem Port lauschen, um die Verbindung zu akzeptieren. Der Handshake beginnt mit dem Austausch von drei Meldungen (oder Flaggen), die als SYN, SYN/ACK und ACK zwischen dem Client und dem Server bekannt sind. 

Schauen wir uns den Austauschprozess Schritt für Schritt unten an. 

1. Der Client sendet ein SYN-Datenpaket an den Server. Das SYN-Paket enthält eine zufällige Sequenznummer (X), die der Client zuweist. Der Zweck dieses Pakets besteht darin, zu prüfen, ob der Server für eine neue Verbindung verfügbar ist. 

2. Der Server empfängt das SYN-Paket und bestätigt es, indem er ein SYN/ACK-Paket sendet. Der Server setzt die Bestätigungsnummer auf eins plus die Sequenznummer (1+X), die der Client dem anfänglichen SYN-Paket zugewiesen hat, und setzt eine weitere zufällige Sequenznummer (Y). Der Server sendet also zwei Sequenznummern zusammen mit seinem SYN/ACK-Paket an den Client.

3. Der Client empfängt das SYN/ACK-Paket vom Server und bestätigt es, indem er ein ACK-Paket sendet. Der Client setzt die Bestätigungsnummer auf eins plus die Sequenznummer (1+Y), die er vom Server empfangen hat. 

Sobald der Drei-Wege-Handshake-Prozess abgeschlossen ist, können der Client und der Server Daten senden und von einander empfangen. 

Vor- und Nachteile von TCP

Wie die meisten Protokolle ist auch TCP nicht fehlerfrei; es hat seine Vor- und Nachteile. Lassen Sie uns die Vor- und Nachteile der Verwendung von TCP im Folgenden betrachten. 

Vorteile

1. Zuverlässigkeit

TCP ist zuverlässig, da es gewährleistet, dass Datenpakete in der richtigen Reihenfolge an ihrem Bestimmungsort ankommen. Wenn TCP ein Datensegment überträgt, startet es einen Timer und wartet auf eine Bestätigung vom Zielort. Es sendet das Segment erneut, wenn es keine Bestätigung erhält. Zudem verwendet es Sequenzierung, um zu erkennen, wann Datenpakete in der falschen Reihenfolge ankommen.

2. Fehlererkennung und -behebung

TCP verwendet eine End-to-End-Prüfsumme, um Änderungen in den Paketen zu überprüfen, wenn diese an ihrem Bestimmungsort ankommen. Es verwirft Pakete mit Fehlern und wartet darauf, dass der Sender sie erneut sendet. Außerdem verwirft es auch doppelte Daten. 

3. Staukontrolle

TCP verwendet Pufferung und Fensterung zur Behandlung von Staus. Ein Stau kann auftreten, wenn das empfangende Ende der TCP-Verbindung mehr Datenpakete empfängt, als es gleichzeitig verarbeiten kann. TCP verwendet Puffer, um Staus zu bewältigen, aber wenn die Puffer voll sind, verwendet es die Fensterung, um die Menge an Daten zu reduzieren, die der Sender auf einmal senden kann. 

Nachteile

1. Langsame Geschwindigkeit

Im Vergleich zu UDP ist TCP langsam. Zunächst nimmt der notwendige Drei-Wege-Handschlag Zeit in Anspruch. Dann gibt es die Geschwindigkeitsreduktion, die die Flusskontrolle, die Staukontrolle und die Fehlerüberprüfung während der Datenübertragung verursachen. In solchen Fällen opfert TCP die Geschwindigkeit zugunsten der Zuverlässigkeit. 

2. Anfällig für DoS-Angriffe

Die Dreifach-Handschlags-Methode von TCP macht es anfällig für DoS- oder DDoS-Angriffe. Eine SYN-Flut ist ein solcher Angriff, bei dem ein bösartiges Wesen einen Server unerreichbar macht, indem es ihn mit SYN-Paketen überschwemmt. Ziel dieses Angriffs ist es, den Server zu überlasten und ihn daran zu hindern, auf legitime Anfragen zu antworten. 

Was ist UDP?

Das User Datagram Protocol (UDP) ist ein Kommunikationsprotokoll wie TCP, das auf der Transportschicht des OSI-Modells arbeitet. Im Gegensatz zu TCP ist es ein verbindungsloses Protokoll, was bedeutet, dass ein Client keine Verbindung zum Server herstellen muss, bevor er Datenpakete überträgt. Daher gibt es keinen Dreifach-Handschlag, Flusskontrolle und Sequenzierung. 

UDP kümmert sich nicht darum, ob die gesendeten Datagramme an ihrem Ziel ankommen oder ob sie in der Reihenfolge ankommen, in der der Client sie gesendet hat. Dies macht es weniger zuverlässig als TCP, aber schneller, da es nicht auf Bestätigungen warten oder Daten erneut übertragen muss. UDP legt jedoch Wert auf Datenintegrität und verwendet eine Prüfsumme, um zu bestätigen, dass eine dritte Partei die Datagramme nicht manipuliert hat. 

Wie funktioniert UDP?

Mit UDP ist der Transport von Datagrammen von ihrem Ursprung zum Zielort ein einfacher Prozess. Nachdem UDP seinen Header zu den von der Netzwerkschicht empfangenen IP-Paketen hinzugefügt hat, sendet es Datagramme direkt an den Zielsystem, ohne zuvor eine Verbindung herstellen zu müssen. Es ist die einfache Natur dieses Prozesses, die UDP zu einem verbindungslosen Protokoll macht. 

Außerdem eignet sich UDP ideal für zeitsensible Kommunikationen, bei denen Datenverluste während der Übertragung akzeptabel sind. Beispielsweise nutzen Sprach- und Videokommunikationen UDP. 

Vor- und Nachteile von UDP

Die fehlende Flusskontrolle und Datenwiederübertragung von UDP ist sowohl ein Vorteil als auch ein Nachteil. Im Folgenden betrachten wir die Vor- und Nachteile der Verwendung von UDP. 

Vorteile

1. Schnelle Datenübertragung

Da UDP keine Bestätigung von Datagrammen benötigt, bevor der Zielcomputer mehr empfangen kann, und keine Daten erneut überträgt, ist es schneller als TCP. Darüber hinaus führt die Abwesenheit eines Drei-Wege-Handshakes zu weniger Overhead und schnelleren Datenübertragungen. 

2. Fehlererkennung

Ähnlich wie TCP verwendet UDP eine end-zu-end Prüfsumme zur Fehlererkennung in Datagrammen. Damit wird die Datenintegrität aufrechterhalten und fehlerhafte Datagramme werden verworfen. Da kein Wiederholungsmechanismus vorhanden ist, kann UDP fehlerhafte Datagramme weder wiederherstellen noch erneut senden. 

Nachteile

1. Unzuverlässig

Die Funktionen, die eine Verbindung zuverlässig machen, fehlen bei UDP-Verbindungen. Im Gegensatz zu TCP garantiert UDP nicht, dass gesendete Datagramme ihr Ziel erreichen. Daher haben Datagramme keinen Timer und müssen nicht vom Empfangsgerät bestätigt werden. Zudem gibt es keine Garantie dafür, dass Datagramme in der richtigen Reihenfolge am Ziel ankommen. 

2. Keine Staukontrolle

UDP hat keinen Mechanismus zur Staukontrolle. Da es Datagramme nicht bestätigt oder Fenstersteuerung zur Datenübertragung verwendet, gibt es keine Möglichkeit, Stauungen zu verhindern. Dadurch können große Datenmengen zu Verkehrsstauungen führen. 

Unterschiede zwischen TCP und UDP

Im Folgenden betrachten wir die Unterschiede zwischen dem verbindungsorientierten TCP und dem verbindungslosen UDP.

1. Zuverlässigkeit

TCP ist im Vergleich zu UDP ein zuverlässigeres Protokoll. TCP bestätigt, dass ein Datensegment sein Ziel erreicht hat, bevor ein weiteres gesendet wird. Darüber hinaus stellt es sicher, dass die Segmente in der gleichen Reihenfolge ankommen, in der sie gesendet wurden und überträgt Daten erneut, die ihr Ziel nicht erreichen. Zudem verwendet TCP eine Flusssteuerung, um sicherzustellen, dass der Client keine Pakete schneller sendet, als der Server sie verarbeiten kann. Im Gegensatz dazu verzichtet UDP auf all diese Maßnahmen und legt mehr Wert auf eine möglichst schnelle Datenübertragung.

2. Geschwindigkeit

Die Funktionen von TCP, die es zuverlässig machen, machen es langsamer als UDP. Der Drei-Wege-Handshake, die Flusssteuerung, die Überlastungssteuerung und der Mechanismus zur Neuübertragung sind nicht Teil von UDP. Dadurch ist UDP aufgrund des geringeren Overheads schneller als TCP.

3. Nutzung

Die verbindungsorientierte Datenübertragung von TCP macht es für Anwendungen geeignet, die Zuverlässigkeit benötigen und keinen Datenverlust akzeptieren können. Beispielsweise unterstützt es Protokolle wie HTTP, SSH, FTP, SMTP und IMAP. Andererseits macht die Geschwindigkeit von UDP es für zeitkritische Anwendungen oder Protokolle, die Datenverlust hinnehmen können, passend, wie Live-Video- oder Audiochats, Voice over IP, DNS-Anfragen und Online-Gaming.

Schlussfolgerung

TCP und UDP bilden das Fundament der Kommunikation im Internet. Ohne diese beiden Protokolle wäre es schwierig für Geräte, die mit dem Internet verbunden sind, miteinander zu kommunizieren. TCP ist das Protokoll der Wahl, wenn Sie Zuverlässigkeit und Genauigkeit benötigen. Andererseits ist UDP das Protokoll, das Sie benötigen, wenn Sie weniger über das Verlieren von Datenpaketen besorgt sind und mehr daran interessiert sind, dass sie ihr Ziel schnell erreichen.