Systeme II 5. Die Transportschicht

Ähnliche Dokumente
Stauvermeidung in TCP Tahoe

Systeme II 5. Die Transportschicht

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Systeme II 5. Die Transportschicht

Systeme II 10. Woche Transportschicht. Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg

Systeme II 5. Die Transportschicht

Systeme II. Christian Schindelhauer Sommersemester Vorlesungswoche

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung

Peer-to-Peer- Netzwerke

Internet Networking TCP Congestion Avoidance and Control

Systeme II 4. Die Vermittlungsschicht

Systeme II. Christian Schindelhauer Sommersemester Vorlesungswoche

Peer-to-Peer- Netzwerke

Modul 5: TCP-Flusskontrolle

Algorithmen des Internets

Mobilkommunikationsnetze - Transmission Control Protocol -

6. Die Transportschicht. 6.1 Architektur der Transportprotokolle im Internet 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol)

Lehrveranstaltung Rechnernetze Einschub für das Labor

TCP-Verbindungen und Datenfluss

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

TCP. Transmission Control Protocol

Transportschicht (Schicht 4) des Internet

Netzwerk-Programmierung. Netzwerke.

Algorithmen des Internets Sommersemester Vorlesung

Dienste der Transportschicht

TCP flow control, congestion avoidance

TCP Teil 2. TCP Teil 2: Tilmann Kuhn Betreuer: Dr. Thomas Fuhrmann 1/18

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Systeme II 4. Die Vermittlungsschicht

Transportprotokolle. TCP - Transmission Control Protocol

Internetanwendungstechnik. Transportschicht. Gero Mühl

Grundkurs Routing im Internet mit Übungen

Transportschicht. Einleitung Transmission Control Protocol, RFC793. Transportschicht

TCP Überlastkontrolle. SS 2014 Grundlagen der Rechnernetze Transportschicht 31

Mobilkommunikationsnetze. - Transportschicht -

Grundlagen der Rechnernetze. Transportschicht

UDP-, MTU- und IP- Fragmentierung

Grundlagen der Rechnernetze. Transportschicht

Übung 9. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer

Einbeziehen der Varianz

Mobilkommunikationsnetze - TCP/IP (und andere)-

Mobilkommunikationsnetze. - Transportschicht -

Modul 8: UDP, TCP, SCTP und HTTP

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

Ermitteln der RTT. Ein Sample RTT(i) bei gegebener Segment Sendezeit s und Acknowledgement Zeit a für das ite versendete Segment:

Rechnernetze Übung 11

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Systeme II 9. Woche Vermittlungsschicht. Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg

11. Foliensatz Betriebssysteme und Rechnernetze

11. Foliensatz Betriebssysteme und Rechnernetze

Vorab: Überblick TCP. Grundeigenschaften Punkt-zu-Punkt-Verbindung Streaming-Schnittstelle

Transportprotokolle im TCP/IP- Referenzmodell

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

Angewandte IT-Sicherheit Vorlesung im Herbstsemester 2006/2007 Prof. F. Freiling

Übung 10. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T2 / Fr-T1 SS2017)

Grundlagen Rechnernetze und Verteilte Systeme (GRNVS)

Vorlesung: Netzwerke (TK) WS 2011/12 Kapitel 5 Ende-zu-Ende-Protokolle Session 15

IPv4- und IPv6 Header Analyse und Vergleich

UDP User Datagramm Protokoll

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

TCP Sliding Window Protokoll

Algorithmische Grundlagen des Internets

TCP/UDP PROF. DR. M. FÖLLER NORD INSTITUT EMBEDDED AND MOBILE COMPUTING

Übung 5: Transport. Rechnernetze. Wintersemester 2014/ Allgemeine TCP Verständnisfragen

Kapitel 3 Transportschicht

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt.

TCP/IP-Protokollfamilie

Kommunikationsnetze 1. TCP/IP-Netze 1.2 TCP. University of Applied Sciences. Kommunikationsnetze. 1. TCP/IP-Netze 1.

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Transportschicht. Transmission Control Protocol (TCP) Zuverlässiger Bytestrom. 9. Kapitel Fragen des Protokolls: Ausgewählte Netzwerkprotokolle

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

6. Die Transportschicht

Peer-to-Peer- Netzwerke

IP Internet Protokoll

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

IPv4 - Internetwork Protocol

Rechnernetze und Internettechnologien

Transportprotokolle. Protocol-Port Konzept User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Neuere Entwicklungen

Systeme II 6. Die Vermittlungsschicht

Netzwerktechnologien 3 VO

Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle

Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle

Die Transportprotokolle UDP und TCP

Transportschicht. Transmission Control Protocol, RFC793. (Fortsetzung TCP)

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

Grundlagen der Rechnernetze. Transportschicht

9. Transportprotokolle

Telekommunikationsnetze 2

Transportschicht. Transmission Control Protocol, RFC793. (Fortsetzung TCP)

IP-Netzwerke und Protokolle

Transkript:

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

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 user data application Appl. header user data TCP TCP header application data TCP segment IP IP header TCP header application data IP datagram Ethernet driver Ethernet header IP header TCP header application data Ethernet trailer 14 20 20 4 Ethernet Frame 46 to 1500 bytes 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 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version IHL Type of Service Total Length +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Identification Flags Fragment Offset +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Time to Live Protocol Header Checksum +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source Address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Destination Address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Options Padding +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source Port Destination Port +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Sequence Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Acknowledgment Number +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data U A P R S F Offset Reserved R C S S Y I Window G K H T N N +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Checksum Urgent Pointer +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Options Padding +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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) Client SYN : Seq.nr.:j Server SYN : Seq.nr.:k ACK : Seq.nr.: j+1 ACK : Seq.nr.:k+1 11

TCP-Verbindungssende Half-Close - Sender kündigt Ende mit FIN- Segment an und wartet auf Bestätigung Sender FIN : Seq.nr.:m ACK : Ack.nr.: m+1 Empfänger - In Gegenrichtung kann weitergesendet werden A B FIN : Seq.nr.:m 2 Half-Close beenden TCP- Verbindung ACK : Ack.nr.: m+1 FIN : Seq.nr.:n ACK : Ack.nr.: n+1 12

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 Hello! Seq.nr. 17 bla bla Seq.nr. 91 ACK: 17+6=23 World Seq.nr. 23 ACK: 91+7=98 Das Seq.nr. 154 ist Seq.nr. 157 es Seq.nr. 160 ACK: 162 13

Exponentielles Zurückweichen Retransmission Timout (RTO) Hello! Seq.nr. 17 - regelt Zeitraum zwischen Senden von Datenduplikaten, falls Bestätigung ausbleibt ACK: 17+6=23 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 4s 2s 1s World Seq.nr. 23??? World Seq.nr. 23 World Seq.nr. 23 Empfänger - Sender World Seq.nr. 23 Wartet Zeitraum gemäß RTO Sendet Paket nochmal und setzt RTO 2 RTO (bis RTO = 64 Sek.) 8s? Neuberechnung von RTO, wenn Pakete bestätigt werden World Seq.nr. 23 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 Langsamer Empfänger Schneller Sender 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 vom Empfänger angebotenes Fenster 1 2 3 4 5 6 7 8 9 10 11 12 13 gesendet und bestätigt gesendet und nicht bestätigt kann noch gesendet werden kann erst gesendet werden, wenn das Fenster sich verschiebt 18

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

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

TCP Tahoe 21

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 y x/2 x y + 3 22

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

Beispiel: TCP Reno in Aktion Fast Retransmit Fast Recovery Slow Start Additively Increase 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

Ein einfaches Datenratenmodell n Teilnehmer, Rundenmodell - Teilnehmer i hat Datenrate xi(t) - Anfangsdatenrate x1(0),, xn(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: - xi(t+1) = f(xi(t),y(t)) - Increase-Strategie f0(x) = f(x,0) - Decrease-Strategie f1(x) = f(x,1) Wir betrachten lineare Funktionen: 26

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

Fairness und Effizienz 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

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 DIFF CWND 800 600 400 200-200 CWND CWND + 1 CWND CWND 1 20 40 60 80 100 BaseRTT DIFF = CWND 1 BaseRTT RTT RTT 40

Fenster-Anpassung in Vegas w 2 1 1 Fairness 2 2 w 1 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