- Fragen aus S und 177 lesen, beantworten und verstehen
Kapitel 3 einstieg Ende S.60
Thema Transport
Themen
- Flusssteuerung & Staukontrolle
- Protokolle
- TCP
- UDP
- Netzunabhängiger Transport von Nachrichten zwischen Endsystemen
- Verbindungsorientiert
- Verbindungsauf-und-abbau
- Sequenznummern & Quittungen
- Verbindungslos
Kurzüberblick Transport
Grundkonzept: Transportprotokolle und -prozesse sichern Datenübertragungen zwischen Endsystemen in Netzwerken.
- Flusssteuerung: Verhindert Datenüberflutung beim Empfänger.
- Staukontrolle: Reduziert Netzwerküberlastung.
- Hauptprotokolle:
- TCP: Zuverlässig, verbindungsorientiert, mit Fluss- und Staukontrolle.
- UDP: Schnell, verbindungslos, ohne Übertragungsgarantien.
- Methoden:
- Verbindungsorientiert (TCP): Drei-Wege-Handshake, Quittungen, Sequenznummern.
- Verbindungslos (UDP): Kein Verbindungsaufbau, schneller Transfer, ideal für zeitkritische Anwendungen.
Der unten stehende Teil wurde im Voraus ohne Vorliegen des Skriptes herausgearbeitet. Um zu den Notizen aus der Vorlesung zu springen, klicke hier
Vorabzusammenfassung
Thema Transport
Transport im Kontext der Netzwerktechnologie bezieht sich auf die Prozesse und Protokolle, die für die Datenübertragung zwischen Endsystemen innerhalb eines Netzwerks verwendet werden. Diese Technologien sind entscheidend für das Management von Datenflüssen, die Gewährleistung der Zuverlässigkeit der Kommunikation und die Optimierung der Ressourcennutzung in digitalen Kommunikationsumgebungen.
Flusssteuerung & Staukontrolle
Die Flusssteuerung ist ein Mechanismus, der sicherstellt, dass die Datenübertragungsrate zwischen zwei Geräten optimal gehalten wird, so dass der Sender nicht mehr Daten sendet, als der Empfänger verarbeiten kann. Staukontrolle hingegen zielt darauf ab, Netzwerküberlastungen zu vermeiden. Sie regelt den Datenverkehr zwischen Sendern und Empfängern, um zu verhindern, dass das Netzwerk überlastet wird und die Datenübertragungsqualität beeinträchtigt.
Flusssteuerung
- Ziel: Vermeidung von Überflutung des Empfängers durch zu viele Daten.
- Methoden: Schiebefensterverfahren, Quittungsbasiertes Senden, Ratenbasierte Steuerung.
Staukontrolle
- Ziel: Vermeidung von Netzwerküberlastung durch zu viele gesendete Daten.
- Methoden: Slow Start, Congestion Avoidance, Fast Retransmit, Fast Recovery.
Protokolle
Die Transportschicht umfasst verschiedene Protokolle, die den Datenfluss zwischen den Netzwerkschichten regeln. Die bekanntesten Protokolle sind das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP).
TCP
Das Transmission Control Protocol ist ein verbindungsorientiertes Protokoll, das eine zuverlässige Datenübertragung zwischen den Endsystemen sicherstellt. Es verwendet Methoden wie Sequenznummern, Quittungen und Flusssteuerung, um sicherzustellen, dass alle Daten korrekt und in der richtigen Reihenfolge empfangen werden.
Eigenschaften von TCP
- Verbindungsorientiert: Aufbau einer Verbindung vor der Datenübertragung.
- Zuverlässigkeit: Sicherstellung der korrekten Übertragung durch Quittungen und erneute Übertragungen.
- Fluss- und Staukontrolle: Mechanismen zur Vermeidung von Überlastung und Datenflussunterbrechungen.
UDP
Das User Datagram Protocol ist ein verbindungsloses Protokoll, das für Anwendungen verwendet wird, die schnelle, aber nicht unbedingt zuverlässige Übertragungen benötigen. UDP ist einfacher und schneller als TCP, bietet jedoch keine Garantien für die Lieferung oder die Reihenfolge der Daten.
Eigenschaften von UDP
- Verbindungslos: Kein Aufbau einer Verbindung vor der Datenübertragung.
- Schnell: Minimale Verzögerungen durch fehlenden Handshake.
- Unzuverlässig: Keine Quittungen, keine geordnete Übertragung.
Netzunabhängiger Transport von Nachrichten zwischen Endsystemen
Verbindungsorientiert
Der verbindungsorientierte Transport schafft eine logische Verbindung zwischen den Endpunkten vor der eigentlichen Datenübertragung. Dieser Ansatz ist typisch für TCP.
Verbindungsauf-und-abbau
- Aufbau: Drei-Wege-Handshake zur Synchronisierung und Bestätigung.
- Abbau: Vier-Wege-Verfahren, das den ordnungsgemäßen Abschluss der Sitzung sicherstellt.
Sequenznummern & Quittungen
- Sequenznummern: Jedes Datenpaket wird nummeriert, um die Reihenfolge zu gewährleisten.
- Quittungen: Bestätigung vom Empfänger, dass die Datenpakete erhalten wurden.
Verbindungslos
Verbindungslose Übertragungen, typisch für UDP, erfordern keinen Aufbau einer Verbindung, was die Übertragungszeiten verkürzt, aber auf Kosten der Zuverlässigkeit geht.
Eigenschaften
- Schneller Datentransfer: Geringere Latenz durch Wegfall des Verbindungsaufbaus.
- Flexibilität: Geeignet für Anwendungen, bei denen Geschwindigkeit wichtiger als Zuverlässigkeit ist, wie z.B. bei Live-Streaming oder Online-Spielen.
Die Auswahl zwischen verbindungsorientierten und verbindungslosen Ansätzen hängt stark von den Anforderungen der spezifischen Anwendung und den Netzwerkbedingungen ab.
Flusssteuerung und Staukontrolle
Die Flusssteuerung und Staukontrolle sind zwei wesentliche Mechanismen in Netzwerkprotokollen, die dazu beitragen, die Effizienz und Zuverlässigkeit der Datenübertragung zwischen Computern in einem Netzwerk zu gewährleisten. Diese Techniken sind besonders wichtig in Umgebungen, wo das Risiko von Datenverlust oder Netzwerküberlastung besteht.
Flusssteuerung
Die Flusssteuerung ist ein Verfahren zur Steuerung der Datenmenge, die zwischen zwei Geräten übertragen wird, um sicherzustellen, dass der Sender nicht mehr Daten sendet, als der Empfänger verarbeiten und bestätigen kann. Ziel ist es, eine Überflutung des Empfängerspeichers zu vermeiden, was zu Datenverlust führen könnte.
- Ziel: Sicherstellen, dass der Empfänger nicht mehr Daten empfängt, als er verarbeiten kann, um Überflutung und Datenverlust zu vermeiden.
- Methoden:
- Schiebefensterverfahren (Sliding Window Protocol): Dieses Verfahren verwendet ein Fenster, das auf der Empfängerseite definiert ist, um die Menge der Daten, die gesendet werden können, bevor eine Bestätigung erforderlich ist, zu begrenzen.
- Quittungsbasiertes Senden (Acknowledgement Based Sending): Hierbei sendet der Empfänger nach dem Empfang einer bestimmten Datenmenge eine Bestätigung zurück zum Sender, der daraufhin die nächsten Daten sendet.
- Ratenbasierte Steuerung (Rate Based Control): Bei dieser Methode wird die Übertragungsrate basierend auf der aktuellen Netzwerklast oder den Empfängerkapazitäten dynamisch angepasst.
Staukontrolle
Die Staukontrolle zielt darauf ab, Überlastungen im Netzwerk zu vermeiden. Sie regelt den Datenverkehr, um zu verhindern, dass zu viele Daten gleichzeitig gesendet werden und somit die Netzwerkleistung beeinträchtigen.
- Ziel: Reduzierung der Netzwerküberlastung, um hohe Latenzzeiten und Paketverlust zu vermeiden und die Datenübertragungsqualität zu erhalten.
- Methoden:
- Slow Start: Eine Technik, bei der die Übertragungsrate von Verbindungen langsam gesteigert wird, beginnend mit einem niedrigen Schwellenwert, der schrittweise erhöht wird, bis ein optimaler Durchsatz erreicht ist oder Paketverlust eintritt.
- Congestion Avoidance: Sobald die Übertragungsrate einen bestimmten Schwellenwert erreicht, wird die Rate so angepasst, dass das Risiko einer Überlastung minimiert wird.
- Fast Retransmit: Diese Technik erkennt verlorene Segmente schneller und fordert eine erneute Übertragung an, ohne auf einen Timeout zu warten.
- Fast Recovery: Nach dem Erkennen eines Paketverlusts reduziert diese Methode die Sendefenstergröße nicht sofort auf Null, sondern halbiert sie, um den Durchsatz zu erhalten und gleichzeitig das Netzwerk zu entlasten.
Die Kombination aus Flusssteuerung und Staukontrolle ermöglicht eine effiziente und zuverlässige Netzwerkkommunikation, indem sie sicherstellt, dass Datenpakete weder verloren gehen noch das Netzwerk überlastet wird. Diese Techniken sind unerlässlich für die Aufrechterhaltung der Leistung und Stabilität von Netzwerken, besonders in hochvolumigen oder dynamischen Umgebungen.
Protokolle
In der Transportschicht sind mehrere Protokolle integriert, die für die Regelung des Datenflusses zwischen verschiedenen Netzwerkschichten entscheidend sind. Die bedeutendsten Protokolle hier sind das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP), die unterschiedliche Ansätze für die Datenübertragung bieten.
TCP (Transmission Control Protocol)
TCP ist ein verbindungsorientiertes Protokoll, das auf eine sichere und zuverlässige Datenübermittlung zwischen kommunizierenden Endsystemen ausgerichtet ist. Dieses Protokoll gewährleistet die korrekte Reihenfolge und Vollständigkeit der übertragenen Daten durch eine Reihe von Mechanismen.
Eigenschaften von TCP
- Verbindungsorientiert: Bevor Daten übertragen werden, wird eine Verbindung zwischen den beteiligten Parteien hergestellt.
- Zuverlässigkeit: TCP gewährleistet durch den Einsatz von Sequenznummern und Quittungen, dass alle Daten vollständig und in der richtigen Reihenfolge beim Empfänger ankommen. Verlorene oder beschädigte Datenpakete werden neu übertragen.
- Fluss- und Staukontrolle: Integrierte Mechanismen regulieren den Datenfluss, um Überlastungen im Netzwerk zu vermeiden und die Datenübertragung effizient zu gestalten.
UDP (User Datagram Protocol)
Im Gegensatz zu TCP ist UDP ein verbindungsloses Protokoll, das sich durch geringeren Overhead und höhere Übertragungsgeschwindigkeiten auszeichnet, aber weniger Zuverlässigkeit bietet. Es eignet sich besonders für Anwendungen, bei denen Geschwindigkeit wichtiger ist als die fehlerfreie Lieferung der Daten.
Eigenschaften von UDP
- Verbindungslos: Es findet kein vorheriger Verbindungsaufbau statt; Datenpakete, sogenannte Datagramme, werden ohne vorherige Absprache gesendet.
- Schnell: Die Abwesenheit eines Verbindungsaufbaus und der damit verbundenen Verwaltungsaufgaben reduziert die Verzögerungen, wodurch die Datenübertragung beschleunigt wird.
- Unzuverlässig: UDP bietet keine Mechanismen für die Überprüfung der Ankunft oder Reihenfolge der Daten. Paketverluste und -verzerrungen werden nicht automatisch korrigiert, was zu Dateninkonsistenzen führen kann.
Beide Protokolle, TCP und UDP, spielen eine zentrale Rolle in der modernen Netzwerkkommunikation, indem sie unterschiedliche Bedürfnisse hinsichtlich Geschwindigkeit und Zuverlässigkeit erfüllen.
Netzunabhängiger Transport von Nachrichten zwischen Endsystemen
Der Transport von Nachrichten zwischen Endsystemen in Netzwerken kann auf zwei grundlegende Arten erfolgen: verbindungsorientiert und verbindungslos. Jeder dieser Ansätze hat spezifische Eigenschaften und wird je nach den Anforderungen der Anwendung und den Netzwerkbedingungen ausgewählt.
Verbindungsorientiert
Der verbindungsorientierte Transportmodus schafft eine stabile, gesicherte Verbindung zwischen den kommunizierenden Endpunkten, bevor jegliche Daten übertragen werden. Dieser Modus ist kennzeichnend für das Transmission Control Protocol (TCP) und eignet sich für Anwendungen, die eine zuverlässige Datenübermittlung benötigen.
Verbindungsauf-und-abbau
- Aufbau: Ein Drei-Wege-Handshake wird verwendet, um die Verbindung zu initiieren und zu bestätigen. Dieser Prozess synchronisiert die Sequenznummern und bestätigt die Bereitschaft beider Seiten zur Datenübertragung.
- Abbau: Ein Vier-Wege-Verfahren wird eingesetzt, um die Verbindung ordnungsgemäß zu beenden. Dabei werden Nachrichten ausgetauscht, die den Abschluss der Übertragung und die Freigabe der Ressourcen sicherstellen.
Sequenznummern & Quittungen
- Sequenznummern: Jedes übertragene Paket wird eindeutig nummeriert, um die korrekte Reihenfolge der Pakete beim Empfänger zu gewährleisten.
- Quittungen: Der Empfänger sendet Quittungen für empfangene Pakete zurück an den Sender, was die zuverlässige Zustellung bestätigt und die Grundlage für eventuelle erneute Übertragungen bildet.
Verbindungslos
Verbindungslose Übertragungen benötigen im Gegensatz zum verbindungsorientierten Modus keinen vorherigen Verbindungsaufbau, was zu einer schnelleren Datenübermittlung führt. Dieser Ansatz, typisch für das User Datagram Protocol (UDP), opfert jedoch die Zuverlässigkeit zugunsten von Geschwindigkeit und Effizienz.
Eigenschaften
- Schneller Datentransfer: Durch den Wegfall eines initialen Handshakes wird die Latenz minimiert, was besonders bei zeitkritischen Anwendungen wie Live-Streaming oder schnellen Online-Spielen von Vorteil ist.
- Flexibilität: Ideal für Dienste, bei denen es weniger auf die vollständige Übertragungsgenauigkeit ankommt und leichte Datenverluste tolerierbar sind.
Zusammenfassend hängt die Wahl zwischen verbindungsorientierten und verbindungslosen Transportmethoden von den spezifischen Anforderungen der jeweiligen Netzwerkanwendung ab. Verbindungsorientierte Methoden sind präferiert, wenn Zuverlässigkeit und Reihenfolge der Datenübertragung kritisch sind, während verbindungslose Methoden bei Bedarf an geringer Latenz und hoher Übertragungsgeschwindigkeit vorgezogen werden.
Vorlesung
Einstieg: S.162 Kapitel 2
Kapitel 3 einstieg Ende S.60
Verbindungslos & Verbindungsorientiert S.16
- keine Verbindung zwischen Entitäten
- Zustand der Entitäten irrelevant
- Bessere Kommunikationsleistung schlechtere Zuverlässigkeit
Verbindungsorientiert
- Abhängigkeit zwischen Entitäten (kontext relevant)
- Umfangreiche Fehlerbehandlung (Zuverlässigkeit)
- Höherer Verarbeitungsaufwnad (notwendig)
Frage::Frage Kann man TCP nicht durch hohe Anzahl von UDP Paketen ersetzen um eine ähnliche Zuverlässigkeit zu bekommen? → TCP ist für eine zuverlässige, verbindungsbasierte Kommunikation mit Fluss und Kongestionskontrolle. UDP kann dass nicht mehr einer erhöhten Anzahl von Paketen ersetzen, da UDP keine Reihenfolge und Fluss-und-Kongestionskontrolle bietet
A: CLS → B B: CLSB → A Dies bedeuetet jedoch NUR, dass A nicht mehr Kommuniziert, B bestätigt mit CLSB nur, dass das CLS angekommen. B kann immernoch Daten abschicken. Erst wenn B ein CLS schickt und A mit CLSB antwortet, beendet B seine Kommunikation
Nutzdatn, Systemdaten können immer verschickt werden, zum Beispiel bei A was nach seinem CLS immernoch B mit CLS Antworten kann
Sequenznummern und Quittungen
• Beispiel: • Sei RTD = 15ms, Senderate 200/ms • Benötigt: 12 Bits zur Codierung der Sequenznummern (weil 15*200 3000, brauchen als mindesten Bits )
Sequenznummern werdenr bei Sender und Empfänger werden als zufällige Zahl ausgesucht, die gegenseitigen Sequenznummern inkrementieren sich dann gegenseitig um die erhaltenen Daten