Systeme II 5. Die Transportschicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg Version

Slides:



Advertisements
Ähnliche Präsentationen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik 1 Algorithm. Grundlagen des Internets 27. Mai 2002 Christian Schindelhauer.
Advertisements

HEINZ NIXDORF INSTITUT Universität Paderborn EIM Institut für Informatik 1 Algorithm. Grundlagen des Internets 26. Mai 2003 Christian Schindelhauer Vorlesung.
Lehrstuhl für Kommunikationssysteme - Systeme II1 Systeme II – 10te Vorlesung Lehrstuhl für Kommunikationssysteme Institut für Informatik / Technische.
Lehrstuhl für Kommunikationssysteme - Systeme II1 Systeme II – 11te Vorlesung Lehrstuhl für Kommunikationssysteme Institut für Informatik / Technische.
Architektur von Netzwerken
Offene Systeme, Rechnernetze und das Internet
OSI-Schichtenmodell Unterschiedliche Rechner brauchen eine gemeinsame Basis, um sich miteinander zu „unterhalten“. Geklärt werden muss dabei u. a. Folgendes:
HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen des Internets Sommersemester Vorlesung Christian.
HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen des Internets Sommersemester Vorlesung Christian.
Algorithmen des Internets Sommersemester Vorlesung
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Klausuraufgaben.
5 Transmission Control Protocol (TCP)
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Martin MauveUniversität Mannheim1 3.6 User Datagram Protocol (UDP) RFC 768. J. Postel. User Datagram Protocol unzuverlässiges Transportprotokoll.
Einführung in die Technik des Internets
Christian Schindelhauer Sommersemester Vorlesung
Peer-to-Peer-Netzwerke
Referent: Kiron Mirdha Betreuer: Rene Hilden Juli 2012
1 Übersicht Absicherung Internet Layer Absicherung Transport Layer Absicherung Application Layer.
Das OSI Schichtenmodell
Julia Grabsch Florian Hillnhütter Fabian Riebschläger
Referat von Markus Hertel
Abgeleitet aus dem OSI-Referenzmodell sieben Schichten
Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle.
© 2001 Matthias Bossardt 1 Routing. © 2001 Matthias Bossardt 2 Dienstmodell Findet den günstigsten Pfad um ein Datenpaket vom Sender zum Empfänger zu.
Unterschiedliche Netzwerke
Funktionsweise der 4. Schicht im OSI-Modell am Beispiel TCP und UDP.
Peer-to-Peer-Netzwerke
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II - Probeklausur - Arne Vater Sommersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Christian Schindelhauer Sommersemester Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II Christian Schindelhauer Sommersemester 2006.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II Christian Schindelhauer Sommersemester 2006.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II Christian Schindelhauer Sommersemester 2006.
Christian Schindelhauer Sommersemester Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Systeme II Christian Schindelhauer Sommersemester 2007
Systeme II Christian Schindelhauer Sommersemester 2007
Intrusion Detection Systems Funktionsweise, Probleme und Lösungsversuche.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom ISO/OSI Referenzmodell.
Ein Referat von Rahul Chanana, Sebastian Callian und Steffen Klikar.
TCP/IP.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik 1 Algorithm. Grundlagen des Internets 13. Mai 2002 Christian Schindelhauer.
Grundlagen: Internet-Protokolle
CCNA2 – Module 8 TCP/IP Error and Control Messages.
Flusskontrolle Bei einer Protokollauswahl =/= TCP Wie wird die Flusskontrolle realisiert, worauf muss geachtet werden? Matthias Laesker Hauptseminar Telematik.
Systeme II 2. Die physikalische Schicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg Version.
IS: Datenbanken, © Till Hänisch 2000 Windows Netzwerke TCP/IP oder was ?
TCP/IP Ti ßi pi ai pi. Wozu braucht man TCP/IP? ¥ Um festzustellen, ob das Moorhuhn (oder andere Programme) sicher sind. ¥ Um nachzusehen, ob noch `ne.
Fragenkatalog GK Informatik Zur Vorbereitung auf das mündliche Abitur.
LINUX II Harald Wegscheider
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
ICMP Internet Control Message Protocol Michael Ziegler Universität Freiburg Michael Ziegler.
Systeme II 4. Die Vermittlungsschicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg Version.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
2 Kommunikationssysteme
Crashkurs Computernetzwerke
ISO / OSI Referenzmodell
Port-Forwarding Der PC möchte vom Internet aus auf den http-Server zugreifen. Er sieht nur die IP-Adresse und den Port des Routers. http-Server PC Router.
Othmar Gsenger Erwin Nindl Christian Pointner
Systeme II 3. Die Datensicherungsschicht
Netzwerke Netzwerkgrundlagen.
Ich brauche eine Web-Seite vom Server im Internet
Routing … … die Suche nach dem Weg..
Elektronische Post BBBaden.
Routing … … die Suche nach dem Weg..
Systeme II 5. Die Transportschicht
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Kapitel IX: Übertragungsprotokollimplementierungen
TCP/IP Transmission Control Protocol/Internet Protocol
 Präsentation transkript:

Systeme II 5. Die Transportschicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg Version

Dienste der Transportschicht  Verbindungslos oder Verbindungsorientert -Beachte: Sitzungsschicht im ISO/OSI-Protokoll  Zuverlässig oder unzuverlässig -Best effort oder Quality of Service -Fehlerkontrolle  Mit oder ohne Congestion Control  Möglichkeit verschiedener Punkt-zu- Punktverbindungen -Stichwort: Demultiplexen  Interaktionsmodelle -Byte-Strom, Nachrichten, „Remote Procedure Call“ 2

Multiplex in der Transportschicht  Die Netzwerkschicht leitet Daten an die Transportschicht unkontrolliert weiter  Die Transportschicht muss sie den verschiedenen Anwendungen zuordnen: -z.B. Web, Mail, FTP, ssh,... -In TCP/UDP durch Port- Nummern -z.B. Port 80 für Web-Server 3

Datenkapselung 4

IP-Header (RFC 791)  Version: 4 = IPv4  IHL: Headerlänge -in 32 Bit-Wörter (>5)  Type of Service -Optimiere delay, throughput, reliability, monetary cost  Checksum (nur für IP-Header)  Source and destination IP-address  Protocol, identifiziert passendes Protokoll -Z.B. TCP, UDP, ICMP, IGMP  Time to Live: -maximale Anzahl Hops 5

TCP-Header  Sequenznummer -Nummer des ersten Bytes im Segment -Jedes Datenbyte ist nummeriert modulo 2 32  Bestätigungsnummer -Aktiviert durch ACK-Flag -Nummer des nächsten noch nicht bearbeiteten Datenbytes = letzte Sequenznummer + letzte Datenmenge:  Port-Adressen -Für parallele TCP- Verbindungen -Ziel-Port-Nr. -Absender-Port  Headerlänge -data offset  Prüfsumme -Für Header und Daten 6

Transportschicht (transport layer)  TCP (transmission control protocol) -Erzeugt zuverlässigen Datenfluß zwischen zwei Rechnern -Unterteilt Datenströme aus Anwendungsschicht in Pakete -Gegenseite schickt Empfangsbestätigungen (Acknowledgments)  UDP (user datagram protocol) -Einfacher unzuverlässiger Dienst zum Versand von einzelnen Päckchen -Wandelt Eingabe in ein Datagramm um -Anwendungsschicht bestimmt Paketgröße  Versand durch Netzwerkschicht  Kein Routing: End-to-End-Protokolle 7

TCP (I)  TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme  TCP ist verbindungsorientiert -Zwei Parteien identifiziert durch Socket: IP-Adresse und Port (TCP-Verbindung eindeutig identifiziert durch Socketpaar) -Kein Broadcast oder Multicast -Verbindungsaufbau und Ende notwendig -Solange Verbindung nicht (ordentlich) beendet, ist Verbindung noch aktiv 8

TCP (II)  TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme  TCP ist zuverlässig -Jedes Datenpaket wird bestätigt (acknowledgment) -Erneutes Senden von unbestätigten Datenpakete -Checksum für TCP-Header und Daten -TCP nummeriert Pakete und sortiert beim Empfänger -Löscht duplizierte Pakete 9

TCP (III)  TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme  TCP ist ein Dienst für bidirektionale Byteströme -Daten sind zwei gegenläufige Folgen aus einzelnen Bytes (=8 Bits) -Inhalt wird nicht interpretiert -Zeitverhalten der Datenfolgen kann verändert werden -Versucht zeitnahe Auslieferung jedes einzelnen Datenbytes -Versucht Übertragungsmedium effizient zu nutzen = wenig Pakete 10

TCP-Verbindungsaufbau  In der Regel Client-Server-Verbindungen -Dann Aufbau mit drei TCP-Pakete (=Segmente) -Mit ersten SYN-Segment auch Übermittlung der MSS (maximum segment size) 11

TCP-Verbindungssende  Half-Close -Sender kündigt Ende mit FIN- Segment an und wartet auf Bestätigung -In Gegenrichtung kann weitergesendet werden  2 Half-Close beenden TCP- Verbindung 12

„Das“ Seq.nr. 154 „ist“ Seq.nr. 157 „es“ Seq.nr. 160 ACK: 162 „World“ Seq.nr. 23 „bla bla“ Seq.nr. 91 ACK: 91+7=98 „Hello!“ Seq.nr. 17 ACK: 17+6=23 Bestätigungen  Huckepack-Technik -Bestätigungen „reiten“ auf den Datenpaket der Gegenrichtung  Eine Bestätigungssegment kann viele Segmente bestätigen -Liegen keine Daten an, werden Acks verzögert 13

„World“ Seq.nr. 23 „Hello!“ Seq.nr. 17 ACK: 17+6=23 Sender Empfänger „World“ Seq.nr. 23 1s 2s 4s 8s ? ? ? ? Exponentielles Zurückweichen  Retransmission Timout (RTO) -regelt Zeitraum zwischen Senden von Datenduplikaten, falls Bestätigung ausbleibt  Wann wird ein TCP-Paket nicht bestätigt? -Wenn die Bestätigung wesentlich länger benötigt, als die durchschnittliche Umlaufzeit (RTT/round trip time) 1. Problem: Messung der RTT 2. Problem: Bestätigung kommt, nur spät -Sender Wartet Zeitraum gemäß RTO Sendet Paket nochmal und setzt RTO ← 2 RTO (bis RTO = 64 Sek.)  Neuberechnung von RTO, wenn Pakete bestätigt werden 14

Schätzung der Umlaufzeit (RTT/Round Trip Time)  TCP-Paket gilt als nicht bestätigt, wenn Bestätigung „wesentlich“ länger dauert als RTO -RTT nicht on-line berechenbar (nur rückblickend) -RTT schwankt stark  Daher: Retransmission Timeout Value aus großzügiger Schätzung: -RFC 793: (M := letzte gemessene RTT) R ← α R + (1- α) M, wobei α = 0,9 RTO ← β R, wobei β = 2 -Jacobson 88: Schätzung nicht robust genug, daher A ← A + g (M - A), wobei g = 1/8 D ← D + h (|M - A| - D), wobei h = 1/4 RTO ← A + 4D  Aktualisierung nicht bei mehrfach versandten Pakete 15

TCP - Algorithmus von Nagle  Wie kann man sicherstellen, -dass kleine Pakete zeitnah ausgeliefert werden -und bei vielen Daten große Pakete bevorzugt werden?  Algorithmus von Nagle: -Kleine Pakete werden nicht versendet, solange Bestätigungen noch ausstehen. Paket ist klein, wenn Datenlänge < MSS -Trifft die Bestätigung des zuvor gesendeten Pakets ein, so wird das nächste verschickt.  Beispiel: -Telnet versus ftp  Eigenschaften -Selbst-taktend: Schnelle Verbindung = viele kleine Pakete 16

Flusskontrolle  Problem: Schneller Sender und langsamer Empfänger -Der Sender lässt den Empfangspuffer des Empfängers überlaufen -Übertragungsbandweite wird durch sinnlosen Mehrfachversand (nach Fehlerkontrolle) verschwendet  Anpassung der Frame-Sende-Rate an dem Empfänger notwendig Schneller Sender Langsamer Empfänger 17

Gleitende Fenster (sliding windows)  Datenratenanpassung durch Fenster -Empfänger bestimmt Fenstergröße (wnd) im TCP-Header der ACK- Segmente -Ist Empfangspuffer des Empfängers voll, sendet er wnd=0 -Andernfalls sendet Empfänger wnd>0  Sender beachtet: -Anzahl unbestätigter gesender Daten ≤ Fenstergröße 18

Segment 8 Segment 9 Segment 10 Segment 1 ACK: Segment 1 Sender Empfänger Segment 2 Segment 3 ACK: Segment 3 Segment 4 Segment 5 ACK: Segment 7 Segment 6 Segment 7 ACK: Segment 5 … Slow Start Congestion Fenster  Sender darf vom Empfänger angebotene Fenstergröße nicht von Anfang wahrnehmen  2. Fenster: Congestion-Fenster (cwnd/Congestion window) -Von Sender gewählt (FSK) -Sendefenster: min {wnd,cwnd} -S: Segmentgröße -Am Anfang: cwnd ← S -Für jede empfangene Bestätigung: cwnd ← cwnd + S -Solange bis einmal Bestätigung ausbleibt  „Slow Start“ = Exponentielles Wachstum 19

 Jacobson 88: -Parameter: cwnd und Slow-Start-Schwellwert (ssthresh=slow start threshold) -S = Datensegmentgröße = maximale Segmentgröße  Verbindungsaufbau: -cwnd ← Sssthresh ←  Bei Paketverlust, d.h. Bestätigungsdauer > RTO, -multiplicatively decreasing cwnd ← Sssthresh ←  Werden Segmente bestätigt und cwnd ≤ ssthresh, dann -slow start: cwnd ← cwnd + S  Werden Segmente bestätigt und cwnd > ssthresh, dann additively increasing cwnd ← cwnd + S x ← 1 x ← x +1 y ← max y ← x/2 x ← 1 x ← 2  x, bis x = y x: Anzahl Pakete pro RTT TCP Tahoe: Congestion Avoidance 20

TCP Tahoe 21

x ← y + 3 y ← x/2 Fast Retransmit und Fast Recovery  TCP Tahoe [Jacobson 1988]: -Geht nur ein Paket verloren, dann Wiederversand Paket + Restfenster Und gleichzeitig Slow Start -Fast retransmit Nach drei Bestätigungen desselben Pakets (triple duplicate ACK), sende Paket nochmal, starte mit Slow Start  TCP Reno [Stevens 1994] -Nach Fast retransmit: ssthresh ← min(wnd,cwnd)/2 cwnd ← ssthresh + 3 S -Fast recovery nach Fast retransmit Erhöhe Paketrate mit jeder weiteren Bestätigung cwnd ← cwnd + S -Congestion avoidance: Trifft Bestätigung von P+x ein: cwnd ← ssthresh 22

 Kombination von TCP und Fast Recovery verhält sich im wesentlichen wie folgt: -Verbindungsaufbau: -Bei Paketverlust, MD:multiplicative decreasing -Werden Segmente bestätigt, AI: additive increasing x ← 1 x ← x +1 x ← x/2 Stauvermeidungsprinzip: AIMD 23

Beispiel: TCP Reno in Aktion Slow Start Additively Increase Fast Recovery Fast Retransmit Multiplicatively Decrease 24

Durchsatz und Antwortzeit  Klippe: -Hohe Last -Geringer Durchsatz -Praktisch alle Daten gehen verloren  Knie: -Hohe Last -Hoher Durchsatz -Einzelne Daten gehen verloren 25

 n Teilnehmer, Rundenmodell -Teilnehmer i hat Datenrate x i (t) -Anfangsdatenrate x 1 (0), …, x n (0) gegeben  Feedback nach Runde t: -y(t) = 0, falls -y(t) = 1, falls -wobei K ist Knielast  Jeder Teilnehmer aktualisiert in Runde t+1: -x i (t+1) = f(x i (t),y(t)) -Increase-Strategie f 0 (x) = f(x,0) -Decrease-Strategief 1 (x) = f(x,1)  Wir betrachten lineare Funktionen: Ein einfaches Datenratenmodell 26

Lineare Datenratenanpassung  Interessante Spezialfälle: -AIAD: Additive Increase Additive Decrease -MIMD: Multiplicative Increase/Multiplicative Decrease -AIMD: Additive Increase Multiplicative Decrease 27

 Effizienz -Last: -Maß  Fairness: Für x=(x1, …, xn): -1/n ≤ F(x) ≤ 1 -F(x) = 1 ↔ absolute Fairness -Skalierungsunabhängig -Kontinuierlich, stetig, differenzierbar -Falls k von n fair, Rest 0, dann F(x) = k/n 28 Fairness und Effizienz

Konvergenz  Konvergenz unmöglich  Bestenfalls Oszillation um Optimalwert -Oszillationsamplitude A -Einschwingzeit T 29

Vektordarstellung (I) 30

Vektordarstellung (II) 31

AIAD Additive Increase/ Additive Decrease 32

MIMD: Multiplicative Incr./ Multiplicative Decrease 33

AIMD: Additively Increase/ Multiplicatively Decrease 34

Probleme mit TCP Reno  Verbindungen mit großer RTT werden diskriminiert  Warum? -Auf jeden Router konkurrieren TCP-Verbindungen -Paketverluste halbieren Umsatz (MD) -Wer viele Router hat, endet mit sehr kleinen Congestion- Window  Außerdem: -Kleinere RTT ist schnellere Update-Zeit -Daher steigt die Rate (AI) auf kurzen Verbindungen schneller -Mögliche Lösung: konstante Datenratenanpassung statt Fenster-basierte Anpassung 35

TCP Vegas  RTT-basiertes Protokoll als Nachfolger von TCP Reno -“L. Brakmo and L. Peterson, “TCP Vegas: End-to-End Congestion Avoidance on a Global Internet”, IEEE Journal on Selected Areas of Communications, vol. 13, no. 8, October 1995, pp. 1465–1480.  Bessere Effizienz  Geringere Paketverluste  Aber: -TCP Vegas und TCP Reno gegeneinander unfair 36

Durchsatz und Antwortzeit  Klippe: -Hohe Last -Geringer Durchsatz -Praktisch alle Daten gehen verloren  Knie: -Hohe Last -Hoher Durchsatz -Einzelne Daten gehen verloren 37

TCP Vegas-Algorithmus 38

TCP Vegas-Algorithmus  Parameter -geschätzte Umlaufzeit: RTT -minimale Umlaufzeit: BaseRTT -wirkliche Datenrate: Actual = CWND/RTT -erwartete Datenrate: Expected = CWND/BaseRTT -Diff = (Expected - Actual) BaseRTT -Programmparameter: 0 ≤ α< β  Wenn Diff ≤ α (d.h. Actual ≈ Expected )≈ -Last ist gering -CWND ← CWND + 1  Wenn Diff > β, (d.h. Actual << Expected ) -Last ist zu hoch -CWND ← CWND - 1  Sonst keine Aktion: CWND ← CWND 39

TCP Vegas - Abhängigkeit von RTT 40

Fenster-Anpassung in Vegas 41

TCP Fairness & TCP Friendliness  TCP -reagiert dynamisch auf die zur Verfügung stehende Bandweite -Faire Aufteilung der Bandweite Im Idealfall: n TCP-Verbindungen erhalten einen Anteil von 1/n  Zusammenspiel mit anderen Protokollen -Reaktion hängt von der Last anderer Transportprotokolle ab z.B. UDP hat keine Congestion Control -Andere Protokolle können jeder Zeit eingesetzt werden -UDP und andere Protokoll können TCP Verbindungen unterdrücken  Schlussfolgerung -Transport-Protokolle müssen TCP-kompatibel sein (TCP friendly) 42

UDP  User Datagram Protocol (UDP) -ist ein unzuverlässiges, verbindungsloses Transportprotokoll für Pakete  Hauptfunktion: -Demultiplexing von Paketen aus der Vermittlungsschicht  Zusätzlich (optional): -Checksum aus UDP Header + Daten UDP header 43

TCP Zusammenfassung  TCP erzeugt zuverlässigen Byte-Strom -Fehlerkontrolle durch “GoBack-N”  Congestion control -Fensterbasiert -AIMD, Slow start, Congestion Threshold -Flusskontrolle durch Window -Verbindungsaufbau -Algorithmus von Nagle 44

Systeme II 5. Die Transportschicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg 45