Datennetze Teil 3: Transportschicht Sommersemester 2004 Prof. Dr. Thomas Wieland (C) U. Stein Übersicht Teil 3 3.1 3.2 3.3 3.4 3.5 3.6 Einführung Struktur von TCP/IP Einfache IP-Protokolle Sender/Empfänger-Koordination Transmission Control Protocol (TCP) Überlastkontrolle Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 2 3.1 Einführung Entstehungsgeschichte des Internet Mythos: Internet wurde für militärische Zwecke entwickelt Tatsache: Ein Mitarbeiter der ARPA (Advanced Research Projects Agency) ärgerte sich, dass für die Verbindung mit drei Unis drei verschiedene Terminals nötig waren Näheres in "ARPA Kadabra" von K. Hafner und M. Lyon Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 4 Pionierzeit 1967: ARPA des DoD vergibt Auftrag “Projektstudie ausfalltolerantes Paketnetz” an SRI (Stanford Research Institute) 1969: Erstes “Internet” aus 4 Knoten: University of California at Los Angeles (UCLA), Stanford Research Institute (SRI), University of California at Santa Barbara (UCSB), University of Utah Entscheidung für paketvermittelndes Netz nach Store-AndForward-Prinzip Paket wird von Vermittlungsstation komplett entgegengenommen Weiterleitung erst nach vollständigem Empfang 1971: Betriebsaufnahme des ARPANet 1972: Erste öffentliche Demonstration 1974: Neue Protokollsuite: TCP/IP Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 5 Verbreitung und Kommerzialisierung 1980: Integration der TCP/IP-Protokolle in UNIX 1986: NSFNet (National Science Foundation) als zweiter Backbone 1988: IP-Verbindung zum Internet aus Deutschland 1991: WWW wird entwickelt 1995: Kommerzielle Provider für Internetzugänge von Privatleuten 1999: Mehr als 200 Mio. Internet-Nutzer weltweit Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 6 3.2 Struktur von TCP/IP Struktur von TCP/IP Application ApplicationLayer Layer • korrekte Zustellung von Paketen • Definition von Paketformaten • Protokoll: IP • Zugang zum physikalischen Übertragungsmedium Host-to-Host Host-to-Host Transport Transport Layer Layer Internet InternetLayer Layer • anwendungsnahe Protokolle, z.B. TELNET, FTP, SMTP, DNS • Ende-zu-EndeVerbindung zwischen Hosts • Protokolle: TCP und UDP Network NetworkAccess Access Layer Layer Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 8 Internet-Architektur Definiert von der Internet Engineering Task Force (IETF) "Doppelkegel"-Design Anwendung vs. Anwendungsprotokoll (FTP, HTTP) FTP HTTP NV TFTP UDP TCP IP NET1 NET2 … Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. NETn 9 Network Access Layer Definiert, wie zugrunde liegendes Netz zur Übertragung von Daten der höheren Schichten genutzt wird ⇒ Anpassung an das Datenformat des Netzes Abbildung von logischen Adressen auf physikalische Adressen des Netzwerks Umfasst etwa Bitübertragungs- und Sicherungsschicht aus ISO/OSI-Modell Protokolle spezifisch für zugrunde liegende Netzvariante Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 10 Internet Protocol (IP) Protokoll auf Internet Layer verantwortlich für Übermittlung von Daten zwischen Stationen Entspricht etwa Vermittlungsschicht bei ISO/OSI Erledigt auch Netzüberwachung Stationen sind entweder Hosts (Endstationen) oder Gateways (Transitstationen) Identifikation und Weitermeldung nicht erreichbarer Empfangsstationen IP: ungesichertes, verbindungsloses Protokoll Fehlerbehandlung erfolgt durch andere Schichten Suche geeigneter Übermittlungspfade von Sender zum Empfänger Sorgt für Routing der Pakete "Best effort": Pakete können u.U. verloren gehen oder verfälscht ankommen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 11 Dienstmodell bei IP IP: ungesichertes, verbindungsloses Protokoll Dienstmodell "Best effort" Fehlerbehandlung erfolgt durch andere Schichten Pakete können verloren gehen Pakete können in anderer Reihenfolge eintreffen als gesendet Duplikate von Paketen können eintreffen Pakete können lange verzögert werden D.h.: Übertragung nicht garantiert, Zeit bis zu Auslieferung nicht garantiert Ungeeignet für Echtzeitanforderungen! Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 12 User Datagram Protocol (UDP) Unzuverlässiges verbindungsloses Protokoll ungesichert hinsichtlich Paketverlust broadcast- und multicastfähig Arbeitet im Host-to-Host Transport Layer Zuständig für Ende-zu-EndeÜbertragung Entspricht der Transportschicht Merkmale: Vermeidung von Overhead zugunsten möglichst schneller Übermittlung, vor allem für kleine Datenmengen geeignet Flusskontrolle, Fehlererkennung und -behandlung muss anderweitig gewährleistet werden Im Wesentlichen Hinzufügen von Port-Nummern (“Transportadressen”) zu IP Ports können von (den Prozessen) einer Anwendung benutzt werden Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 13 Transmission Control Protocol (TCP) Alternatives Protokoll im Hostto-Host Transport Layer Aufwändiger als UDP zuverlässiges verbindungsorientiertes Protokoll Segmentierung des eingehenden bzw. Erzeugung des ausgehenden Bytestroms Merkmale: Stellt Aspekte der Flusssteuerung bereit Verwendet Sendewiederholung und positiver Bestätigung Sequenznummern und acknowledge / retransmit Timeouts und Fenstergrössen werden dynamisch angepasst Ebenfalls Ports (16-Bit-Nummern) als Kommunikationsendpunkte Verbindung besteht aus Sendeportnummer, Sende-IPNummer, Empfangsportnummer, Empfangs-IPNummer Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 14 Datenstrukturen in TCP/IP Application Layer Transport Layer Bytestrom Nachricht Segment Paket Datagramm Datagramm Rahmen Rahmen TCP UDP Internet Layer Network Access Layer Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 15 Fragmentierung und Wiederherstellung Jedes Netz hat eine maximale Übertragungseinheit Entspricht z.B. maximaler Paketgröße Auch MTU (maximum transmission unit) genannt Strategie: Spalte auf wenn nötig (falls MTU < Datagramm) Versuche Fragmentierung bei Quellstation zu vermeiden Refragmentierung (erneute Aufspaltung in andere Einheiten) ist möglich Fragmente sind in sich abgeschlosse Datagramme Verwende CS-PDU (keine Zeillen) bei ATM Stelle die Nachricht erst auf der Zielstation wieder her Versuche nicht, verlorene Fragmente wieder zu bekommen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 16 Beispiel Start of header Ident= x 0 Offset= 0 Rest of header 1400 data bytes Start of header H1 R1 R2 R3 H8 Ident= x 1 Offset= 0 Rest of header 512 data bytes Start of header ETH IP (1400) FDDI IP (1400) PPP IP (512) ETH IP (512) PPP IP (512) ETH IP (512) Rest of header PPP IP (376) ETH IP (376) 512 data bytes Ident= x 1 Offset= 512 Start of header Ident= x 0 Offset= 1024 Rest of header 376 data bytes Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 17 Quelle: Peterson/Davie, "Computernetze" 3.3 Einfache IPProtokolle Internet Control Message Protocol (ICMP) Hilfsprotokoll auf IP-Ebene "Partnerprotokoll" Wird bei Fehlern an Quell-Host zurückgeschickt Unterstützt Statusanfragen zur Kontrolle und Fehlersuche Meldet aber keine Fehler über ICMP-Pakete ICMP nutzt IP als Transportdienst Verschiedene Meldungen definiert, z.B. Destination unreachable Time exceeded Source quench (Transitstation überlastet, fordert Absender zur Absenkung der Datenrate auf) Redirect (Router informiert Station über bessere Route) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 19 Statusanfragen mit ICMP Echo und Echoantwort (echo request and echo reply) Zur Überprüfung der Aktivität von Kommunikationssystemen Empfänger einer Anfrage sendet in Antwort die erhaltenen Daten zurück Zeitstempel und Zeitstempelantwort (timestamp request and timestamp reply) Zur Bestimmung von Paketumlaufzeiten Meldungen umfassen mehrere Felder zur Aufnahme von Zeitstempeln, Damit können Paketbearbeitungszeiten beim Empfänger und die Verzögerung im Netz bestimmt werden Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 20 Beispiel ping Hilfsprogramm zur Bestimmung von RTTs und Paketverlusten Verwendet ICMP-Echo Erster Test beim Aufbau von Netzverbindungen! E:\>ping ping anna.fhanna.fh-coburg.de Ping anna.fh-coburg.de [192.129.26.52] mit 32 Bytes Daten: Antwort Antwort Antwort Antwort von von von von 192.129.26.52: 192.129.26.52: 192.129.26.52: 192.129.26.52: Bytes=32 Bytes=32 Bytes=32 Bytes=32 Zeit=76ms Zeit=76ms Zeit=75ms Zeit=75ms TTL=118 TTL=118 TTL=118 TTL=118 Ping-Statistik für 192.129.26.52: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 75ms, Maximum = 76ms, Mittelwert = 75ms Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 21 Beispiel traceroute Bestimmt die Route eines IP-Pakets Verfahren: Absenden von UDP Testpaketen mit kleiner Lebensdauer (time to live, TTL) Warten auf eine ICMP-Nachricht "Time exceeded" von einem Router Beginnt mit einer TTL von 1 und erhöht dann immer um 1 Drei Testpakete werden mit jeder TTL gesendet Ausgabe: TTL, Adresse des Routers, RTT Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 22 Der schnellste Weg zu Yahoo! e:\fh>tracert www.yahoo.de Routenverfolgung zu www2.vip.lng.yahoo.com [217.12.3.11] 1 2 3 4 5 6 7 8 9 10 11 2 ms 3 ms 10 ms 6 ms 15 ms 8 ms 7 ms 6 ms 12 ms 11 ms 15 ms 15 ms 15 ms 16 ms 16 ms 16 ms 33 ms 32 ms 36 ms 31 ms 31 ms 33 ms [208.51.239.162] 12 32 ms 33 ms 13 31 ms 34 ms 14 33 ms 32 ms .167] 15 32 ms 32 ms 16 32 ms 32 ms 2 4 14 7 10 14 14 15 31 32 31 über maximal 30 Abschnitte: ms ms ms ms ms ms ms ms ms ms ms back26.fh-coburg.de [192.129.26.1] Wingate.fh-coburg.de [192.129.26.231] ar-ilmenau2.g-win.dfn.de [188.1.35.197] ar-ilmenau1-ge4-0.g-win.dfn.de [188.1.69.129] cr-leipzig1-po5-1.g-win.dfn.de [188.1.70.45] cr-frankfurt1-po10-0.g-win.dfn.de [188.1.18.189] so-6-0-0.ar2.FRA2.gblx.net [208.48.23.141] pos5-0-2488M.cr2.FRA2.gblx.net [62.16.32.77] pos0-0-2488M.cr1.LON3.gblx.net [67.17.64.34] so6-0-0-2488M.ar2.LON3.gblx.net [64.212.107.146] Level-3public-peering.ge-5-0-0.ar2.LON3.gblx.net 32 ms 37 ms 37 ms ae0-16.mp2.London1.Level3.net [212.187.131.146] so-3-0-0.mp1.London2.Level3.net [212.187.128.46] gige11-0.ipcolo1.London2.Level3.net [212.187.129 32 ms 32 ms unknown.Level3.net [212.113.10.210] www2.vip.lng.yahoo.com [217.12.3.11] Ablaufverfolgung beendet. Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 23 RSVP (Resource Reservation Protocol) Protokoll zur Reservierung von Ressourcen z.B. Vereinbarung bestimmter Dienstqualität zwischen Hosts Arbeitsweise: Hosts vereinbaren regelmäßig bestimmte Dienstqualität Reservierung von Empfängern initiiert entsprechende Datagramme lösen auf betroffenen Routern Reservierung von Ressourcen aus unterschiedliche Anforderungen bei Multicast Rückmeldung, falls erforderliche Ressourcen nicht vorhanden Reservierung verfällt nach gewisser Zeit Anpassung an geändertes Routing Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 24 TCP/IP und „benachbarte“ Protokolle MIME MIME BGP BGP FTP FTP HTTP HTTP SMTP SMTP Telnet Telnet TCP TCP SNMP SNMP UDP UDP ICMP IGMP OSPF OSPF RSVP RSVP ICMP IGMP IP IP Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 25 3.4 Sender/EmpfängerKoordination Simplex-Protokoll (1) Senderseite empfangeVonVermittlungsschicht(paket) bereit bereit bildeRahmen(paket, rahmen) sendeAnBitÜSchicht(rahmen) Empfängerseite empfangeVonBitÜSchicht(rahmen) bereit bereit extrahierePaket(rahmen, paket) sendeAnVermittlungsschicht(paket) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 27 Simplex-Protokoll (2) Annahmen und Voraussetzungen nur zwei beteiligte Stationen mit fester Rollenverteilung Wertung keine Rahmenverluste keine Beschädigung der Daten Protokoll versagt Sender bleibt immer Sender, Empfänger immer Empfänger unidirektionale Datenübertragung idealer Übertragungskanal bei Übertragungsfehlern bei Überlastung des Empfängers Einsatz damit kaum empfehlenswert keine Berücksichtigung von Verarbeitungszeiten Empfänger kann Rahmen beliebig schnell aufnehmen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 28 Stop-and-Wait-Protokoll (1) Verbesserung gegenüber Simplex-Protokoll keine Überlastung des Empfängers durch Rückmeldemechanismus Empfänger signalisiert Aufnahmefähigkeit für neue Nachricht Sender wartet mit nächster Nachricht bis zum Empfang der Rückmeldung strenges Alternieren zwischen Übertragung von Nutzdaten und Quittungen Einsatz erfordert zumindest Halbduplexkanal Limitierung funktioniert nur bei idealem Übertragungskanal keine Rahmenverluste keine Beschädigung der Daten Protokoll versagt bei Übertragungsfehlern Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 29 Stop-and-Wait-Protokoll (2) empfangeVonVermittlungsschicht(paket) Senderseite bildeRahmen(paket, rahmen) sendeAnBitÜSchicht(rahmen) bereit bereit empfangeQuittung(quittung) warte warte auf auf QuitQuittung tung Empfängerseite empfangeVonBitÜSchicht(rahmen) bereit bereit extrahierePaket(rahmen, paket) sendeAnVermittlungsschicht(paket) sendeQuittung(quittung) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 30 Stop-and-Wait-Protokoll bei störanfälliger Leitung (1) weitere Verbesserung: Mechanismus zur Behandlung von Übertragungsfehlern Rahmenverlust Verfälschung der Rahmeninhalte Idee: Empfänger quittiert erhaltenen Rahmen Sender wiederholt Übertragung bei Ausbleiben von Quittungen PAR - Positive Acknowledgement with Retransmission ARQ - Automatic Repeat Request fehlererkennende Codierung zur Überwachung der Datenintegrität Unterscheidung von Rahmen durch Folgenummer Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 31 Stop-and-Wait-Protokoll bei störanfälliger Leitung (2) Senderseite empfangeVonVermittlungsschicht(paket) berechnePrüfsumme(psumme) setzeFolgenummer(fnr) bildeRahmen(paket, psumme, psumme, fnr, fnr, rahmen) sendeAnBitÜSchicht(rahmen) starteTimer(timer) warte warte auf auf QuitQuittung tung bereit bereit istAbgelaufen(timer) sendeAnBitÜSchicht(rahmen) starteTimer(timer) empfangeQuittung(quittung) stoppeTimer(timer) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 32 Stop-and-Wait-Protokoll bei störanfälliger Leitung (3) Empfängerseite empfangeVonBitÜSchicht(rahmen) UND istKorrekt(psumme) bereit bereit istWiederholung(fnr) WiederWiederholung holung ?? sendeQuittung(quittung) NICHT istWiederholung(fnr) extrahierePaket(rahmen, paket) sendeAnVermittlungsschicht(paket) sendeQuittung(quittung) setzeFolgenummer(fnr) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 33 Wertung des StopStop-andand-WaitWait-Protokoll bei störanfälliger Leitung Protokoll versagt bei Übertragungsfehlern, die verwendeter Code nicht erkennt zu knappe Dimensionierung der Wartezeit (Laufzeit des Timers) fehlerhafte Rahmen werden akzeptiert Sender schickt Nachrichten häufig doppelt, weil Rückmeldungen erst eintreffen, wenn bereits erneut gesendet wurde Quittung wird eventuell auf falschen Rahmen bezogen Lösungsmöglichkeit: Einfügen der Folgenummer in Quittung zur Kennzeichnung, worauf sie sich bezieht Dimensionierung der Timerlaufzeit, so dass Timerlaufzeit > Übertragungszeit_Rahmen + Verarbeitungszeit_Rahmen + Übertragungszeit_Quittung bei Quittungsverlust können sich Folgenummern von Sender und Empfänger unterscheiden Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 34 Stop-and-Wait-Protokoll im Duplexmodus jede Station gleichzeitig Sender und Empfänger verzögerte Bestätigung empfangener Rahmen Erhöhung der Kanalauslastung möglichst an ausgehenden Datenrahmen angehängt, sonst separater Quittungsrahmen Implementierungsskizze: Zusammenfassen der Zustandsdiagramme für Sender und Empfänger Empfang einer Nachricht sowohl aus Zustand „bereit“ als auch aus „warte auf Quittung“ heraus möglich zwei Folgenummern erforderlich eine für nächsten zu sendenden Rahmen (nächsteGesendet) eine für als nächsten erwarteten Rahmen (nächsteErwartet) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 35 Pipelining Problem schlechte Performanz bei langen Laufzeiten von Nachrichten Lösungsansatz: Pipelining Versendung mehrerer Rahmen ohne Abwarten der Quittungen Verwaltung mehrerer Listen von Rahmen ⇒ gesendete Rahmen mit noch ausstehender Quittung Rahmen, die noch gesendet werden können, bis Quittung zwingend erforderlich ist Schiebefenster Puffer für Rahmen beim Sender und Empfänger bei Erhalt von Quittungen rückt Fenster weiter Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 36 Schiebefensterprotokolle (1) "Sliding window protocol" Protokollfamilie der Schicht 2 für Flusssteuerung Größe des Sendefensters variabel, aber begrenzt Aktuelle Größe entspricht der Zahl der unbestätigten gesendeten Rahmen Maximale Größe durch Puffergröße bestimmt Größe des Empfangsfensters i.A. fest Entspricht Zahl der Rahmen, die außer der Reihe ankommen dürfen Bestimmt Wertebereich für Sequenznummern Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 37 Schiebefensterprotokolle (2) – Sender-Variablen 0 1 bestätigte Rahmen 2 NAE =2 3 unbestätigte Rahmen 4 5 LFS =4 6 freie Pufferplätze 7 MAX =6 NAE: Next Acknowledgement Expected LFS: Last Frame Sent Aktuelle Fenstergröße: LFS-NAE+1 Maximale Fenstergröße: MAX-NAE+1 Senden: LFS++, solange LFS ≤ MAX ACK für NAE kommt an: NAE++, MAX++ Es kann auch ein ACK(k) kommen mit NAE < k ≤ LFS ACK(k) wird oft als ACK(k-1), ACK(k-2) etc. verwendet Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 38 Schiebefensterprotokolle (3) – Empfänger-Variablen 0 1 empfangene Rahmen 2 NFE =2 3 4 Rahmen 2 fehlerhaft, 3 korrekt empfangen, 4 ausstehend 5 LFA =4 NFE: Next Frame Expected LFA: Last Acceptable Frame Seqnr < NFE: Frame verwerfen (aber ACK senden!) Seqnr > LFA: Frame verwerfen Alle Rahmen mit Seqnr innerhalb des Fenster werden akzeptiert und quittiert Empfang von Rahmen Nr. NFE: NFE++, LFA++ (ggf. mehr als einmal, falls Rahmen zwischendrin schon da) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 39 Schiebefensterprotokolle (4) Strategien zur Behandlung von Übertragungsfehlern: Rücksetzen kein Puffer für korrekte Rahmen außer der Reihe auf Empfängerseite erneute Übertragung des fehlerhaften und aller danach bereits gesendeten Rahmen Größe des Empfängerfensters = 1 schlechter Datendurchsatz, falls Fehlerrate hoch selektive Wiederholung Puffer für korrekte, aber außer der Reihe empfangene Rahmen auf Empfängerseite erneute Übertragung ausschließlich für fehlerhafte Rahmen Erweiterung: negative Quittierung Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. Empfänger fordert aktiv und gezielt fehlerhafte oder fehlende Rahmen nach 40 Schiebefensterprotokolle (5) Rücksetzen Timout-Intervall Sender 0 1 2 3 0 1 Empfänger Fehler 4 5 6 7 8 2 3 4 5 6 7 8 9 10 2 3 4 5 6 7 8 von Sicherungsschicht verworfen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 41 Schiebefensterprotokolle (6) Selektive Wiederholung 1 Fehler 5 6 7 8 2 9 10 11 12 3 4 5 6 7 8 auf Sicherungsschicht gepuffert Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. ... 2 9 10 11 12 ack 12 0 4 ack 11 3 ack 10 2 ack 9 Empfänger 1 ack 8 0 ack 1 Sender ack 0 Timer-Intervall 42 Schiebefensterprotokolle (7) Sequenznummern Wertebereich für Sequenznummern begrenzt Werden als Bits codiert, daher Nummernbereich i.A. Potenz von 2 (z.B. 4, 8 oder 16) Spart Platz in den Rahmen und ACK "<" und ">" müssen dann zyklisch (d.h. mod 2i) interpretiert werden (z.B. bei NAE < k ≤ LFS) Nummernbereich dürfen sich beim Verschieben nicht überlappen Bei Empfängerfenstergröße RWS = 1 genügt Sendefenstergröße MaxSeqNr ≥ SWS +1 Bei größeren RWS genügt dies nicht mehr! Bei SWS = RWS benötigt man MaxSeqNr ≥ 2 SWS Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 43 Schiebefensterprotokolle (8) Effizienz Effizienz E hängt von Durchsatz und Kapazität ab, genauer von Ausbreitungsverzögerung Entfernung * Bandbreite a= = Übertragungsverzögerung Signalgeschwindigkeit * Rahmengröße Für Fenstergröße N gilt: E = 1 falls N > 2a+1 N/(2a+1) sonst f1(x) f7(x) f16(x) f128(x) 1 0.8 0.6 0.4 0.2 Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 0 0.1 1 10 100 1000 44 3.5 Transmission Control Protocol (TCP) Ende-zu-Ende-Protokolle Das Netz arbeitet nur "best effort" Verlust von Nachrichten Umordnung von Nachrichten Verdopplung von Nachrichten Begrenzung der Nachrichtengröße Verzögerung von Nachrichten Ende-zu-Ende-Dienste: Garantieren die Nachrichtenauslieferung Liefern Nachrichten in der gesendeten Reihenfolge aus Liefern genau ein Exemplar jeder Nachricht Unterstützen beliebig lange Nachrichten Erlauben dem Empfänger, auf den Nachrichtenfluss einzuwirken Unterstützen mehrere Anwendungsprozesse auf jeder Station Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 46 Transmission Control Protocol ( T CP ) Protokoll des Transport Layer Aufgaben verbindungsorientierte zuverlässige Übermittlung eines Bytestroms Aufbau logischer Ende-zu-Ende-Verbindung zwischen Quellund Zielhost Zerlegung bzw. Wiederzusammensetzen eines Bytestroms in/aus IP-Paketen positive Bestätigungen mit Neuübertragung Flusssteuerung: Sender soll Empfänger nicht überfordern Überlaufkontrolle: Sender soll Netz nicht überfordern Multiplexen von Übertragungen innerhalb einer Verbindung bei Vollduplexbetrieb ursprüngliche Definition von TCP im RFC 793 Klarstellungen und Fehlerkorrekturen im RFC 1122 Erweiterungen in RFCs 1323, 2018 und 2581 Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 47 TCP Overview Anwendungsprozess Anwendungsprozess Schreibe Bytes … … Lies Bytes TCP TCP Sendepuffer Empfangspuffer Segment Segment … Segment Übertrage Segmente Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 48 Sockets und Ports Sockets als sender- und empfängerseitige Kommunikationsendpunkte Socket kann mehrere (ungerichtete) Verbindungen gleichzeitig bedienen Socketadresse ergibt sich aus IP-Adresse des Hosts und Portnummer Ports als Dienstzugriffspunkte standardisierte Belegung von Portnummern für Standarddienste, z.B. Kennung einer Verbindung durch Paar beteiligter Sockets Port 21 für FTP, 23 für TELNET, 80 für HTTP ... Segmente als zwischen Sender und Empfänger ausgetauschte Dateneinheiten ggf. unterwegs Zerlegung von Segmenten durch Router in kleinere Fragmente maximale Länge von IP-Paketen definiert Obergrenze für Segmentlänge Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 49 Verbindungsaufbau auf TCPEbene Dreiweg-Handshake Host 1 Host 2 SYN(x) SYN(y), ACK(x+1) Angestoßen durch CONNECT ACK(y+1), Daten • • • SYN : Anfrage Verbindungsaufbau SYN + ACK : Annahme Verbindung plus Synchronisation über Folgenummern x, y ... Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 50 Verbindungsabbau auf TCPEbene symmetrischer Abbau jede Richtung der Verbindung wird separat beendet nach Abbau der einen Richtung können in der anderen weiterhin Daten übertragen werden erst nach Abbau beider Verbindungsrichtungen wird Verbindung insgesamt gelöst Host 1 Host 2 FIN(x) ACK(x+1) Angestoßen durch CLOSE FIN(y) ACK(y+1) Angestoßen durch CLOSE • FIN : (gerichteter) Verbindungsabbau Datennetze, Sommersemester 2003 51 • ACK : Bestätigung Verbindungsabbau © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. • plus Synchronisation über Folgenummern x, y ... TCP-Zustände eines Client Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 52 TCP-Zustände eines Servers Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 53 Segmentheader 32 bit Quellport Zielport Folgenummer Bestätigungsnummer ≈Länge ≈ reserviert Flags Prüfsumme Fenstergröße Urgent-Zeiger Optionen (beliebig viele 32 Bit-Worte) ≈ ≈ Daten (optional) Quellport / Zielport Endpunkte der Verbindung zusammen mit IP-Adressen von Sender und Empfänger (aus IP-Header) Identifikation der Sockets und damit der Verbindung Portnummer > 255 beliebig belegbar, kleinere Portnummern standardisiert Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 54 Segmentheader (2) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Folgenummer Bytes eines TCP-Datenstroms fortlaufend numeriert Segment-Folgenummer ist Nummer des ersten Datenbytes Nummer des als nächstes erwarteten Datenbytes Fenstergröße Bestätigungsnummer Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 55 Segmentheader (3) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Länge Fenstergröße Zahl der 32-Bit-Worte im Header Fenstergröße Zahl der Datenbytes ab der Bestätigungsnummer (einschließlich), die im nächsten Segment der Gegenseite gesendet werden dürfen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 56 Segmentheader (4) Flags: 6 Flags von jeweils 1 Bit Länge URG: Kennzeichnung, ob Urgent-Zeiger benutzt wird oder nicht ACK: Kennzeichnung, ob Bestätigungsnummer gültig ist oder nicht PSH: Kennzeichnung von PUSH-Daten RST: Signal zum Rücksetzen einer Verbindung Verwendung z.B. nach Absturz eines Kommunikationspartners oder zum Ab-weisen einer Verbindungsanfrage oder eines ungültigen Segments SYN: Verbindungsaufbau Sendepuffer durch Segment mit gesetztem PSH-Flag geleert entweder Verbindungsanfrage oder Verbindungsbestätigung (in Abhängigkeit vom ACK-Flag) FIN: Verbindungsabbau Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 57 Segmentheader (5) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ Urgent-Zeiger Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Prüfsumme Fenstergröße Summe der Komplemente aller 16-Bit-Halbworte des Segments einschließlich IP-Pseudoheader (Quell-, Zieladresse, Protokoll, Datenlänge) Urgent-Zeiger Nummer des ersten Bytes nicht dringlicher Daten innerhalb des Segment 58 Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. davor liegende Bytes damit implizit als dringend gekennzeichnet ≈ ≈ Segmentheader (6) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ Fenstergröße Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Optionen u.a. Einigung der Hosts auf maximale Segmentlänge (Voreinstellung: 536 Byte) Skalierungsfaktor für Fenstergröße Negative Bestätigung einzelner Segmente Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 59 Nochmals Schiebefensterprotokolle Empfang. Anwendung Sendende Anwend. TCP TCP LastByteWritten LastByteAcked Senderseite LastByteSent LastByteAcked < = LastByteSent LastByteSent < = LastByteWritten Pufferbytes zwischen LastByteAcked und LastByteWritten LastByteRead NextByteExpected LastByteRcvd Empfängerseite Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. LastByteRead < NextByteExpected NextByteExpected < = LastByteRcvd +1 Pufferbytes zwischen LastByteRead und LastByteRcvd 60 Flusskontrolle Größe des Senderpuffers: MaxSendBuffer Größe des Empfängerpuffers: MaxRcvBuffer Empfängerseite Senderseite LastByteRcvd - LastByteRead < = MaxRcvBuffer AdvertisedWindow = MaxRcvBuffer - (NextByteExpected LastByteRead) LastByteSent - LastByteAcked < = AdvertisedWindow EffectiveWindow = AdvertisedWindow - (LastByteSent LastByteAcked) LastByteWritten - LastByteAcked < = MaxSendBuffer Stoppe Sender falls (LastByteWritten - LastByteAcked) + y > MaxSenderBuffer Sende immer ACK als Antwort auf eintreffendes Segment Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 61 Schutz vor Überlauf der Sequenznummern 32-bit Sequenznummern Bandbreite T1 (1.5 Mbps) Ethernet (10 Mbps) T3 (45 Mbps) FDDI (100 Mbps) STS-3 (155 Mbps) STS-12 (622 Mbps) STS-24 (1.2 Gbps) Zeit bis zum Überlauf 6.4 Stunden 57 Minuten 13 Minuten 6 Minuten 4 Minuten 55 Sekunden 28 Sekunden Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 62 TCP-Erweiterungen Implementiert als Header-Optionen Hinterlege Zeitstempel in ausgehende Segmente Erweitere den Sequenznummernraum mit einem 32-Bit-Zeitstempel (PAWS) Verschiebe (skaliere) das "advertised window" Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 63 Adaptive Neuübertragung (Originalalgorithmus) Miss SampleRTT für jedes Paar aus Segment und ACK Berechne das gewichtete Mittel der RTT − − EstRTT = α x EstRTT + β x SampleRTT wobei α + β = 1 α zwischen 0.8 und 0.9 β zwischen 0.1 und 0.2 Bestimme Timeout auf Basis der EstRTT TimeOut = 2 x EstRTT Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 64 Karn/Partridge Algorithm Receiver SampleR TT Orig inal trans miss ion Retr ansm issio n ACK Sender Receiver Orig inal SampleR TT Sender trans miss ion ACK Retr ansm issio n Berechne RTT nicht bei Neuübertragung Verdopple den Timeout nach jeder Neuübertragung Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 65 Jacobson/Karels-Algorithmus Neue Berechnungsmethode für die durchschnittliche RTT Diff = SampleRTT - EstRTT EstRTT = EstRTT + (δ δ x Diff) Dev = Dev + δ( |Diff| - Dev) Betrachten die Varianz beim Setzen des Timeout-Wertes TimeOut = µ x EstRTT + φ x Dev wobei δ ein Faktor zwischen 0 und 1 ist wobei µ = 1 und φ = 4 Bemerkungen Der Algorithmus ist nur so gut wie die Granularität der Uhr (500ms auf Unix) Genaue Timeout-Mechanismen wichtig für Überlastkontrolle Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 66 User Datagram Protocol (UDP) 32 bit Quellport Gesamtlänge Länge der Daten plus 8 Byte für den Header Prüfsumme ⇒ Dienstzugriffspunkte auf Quell- und Zielhost wie bei TCP Länge Prüfsumme Quellport / Zielport Zielport Addition der Komplemente aller 16-Bit-Halbworte wie bei TCP damit Möglichkeit zur verbindungslosen Übertragung roher IP-Datagramme zwischen Anwendungen • z.B. Client/Server-Anwendungen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 67 3.6 Überlaststeuerung Netzüberlastung Mögliche Gründe hohes Nachrichtenaufkommen auf bestimmten Teilstrecken hohe Belastung von (langsamen) Routern Aufgaben bei der Überlastungssteuerung 1. Überwachung des Systems auf mögliche Überlastungen 2. Weiterleitung an Stellen mit Eingriffsmöglichkeit 3. steuernder Eingriff prinzipielle Handlungsmöglichkeiten: präventiv korrektiv Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 69 Präventive Maßnahmen (1) Grundidee: Möglichkeiten auf der Vermittlungsschicht: Auslegung des Netzbetriebs so, dass es von vornherein nicht zu Überlastungen kommt virtuelle Verbindungen anstelle von Datagramm-Diensten Dimensionierung von Warteschlangen auf Routern Abarbeitungsstrategie für Pakete (Round-Robin, prioritätsgesteuert, ...) Routing über Alternativpfade Festlegung der Paket-Lebenszeit Möglichkeiten auf Sicherungs- bzw. Transportschicht Festlegung der Timeout-Intervalle Bestätigungsmechanismus (Einzel- oder Huckepack-Bestätigung) Flusssteuerung mit Zwischenspeichern von Paketen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 70 Präventive Maßnahmen (2) Traffic Shaping Idee: Festlegung einer zulässigen Rate zur Datenübertragung und entsprechende Überwachung (Policing) Hauptziel: Vermeidung von Verkehrsspitzen zugunsten möglichst gleichmäßiger Belastung vor allem für virtuelle Verbindungen geeignet ähnlicher Ansatz wie in Schiebefensterprotokollen Parameter aber nicht Zahl der Pakete, sondern Datenmenge pro Zeit verbreitete Verfahren: Leaky-Bucket-Algorithmus Token-Bucket-Algorithmus Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 71 Flusskontrolle: Leaky-Bucket unregulierter Paketfluss Schnittstelle mit rinnendem Eimer Leck konstanter Wasserabfluss regulierter Paketfluss Netz Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 72 Prinzip des "Leaky Bucket" rinnender Eimer entspricht endlicher Warteschlange neu ankommende Pakete werden bei voller Warteschlange einfach verworfen pro Zeittakt entweder Entnahme eines Pakets aus der Warteschlange oder Entnahme einer festen Anzahl von Bytes geeignet, falls alle Pakete gleich lang ggf. verteilt auf mehrere Pakete geeignet, falls Pakete unterschiedlich lang Leaky-Bucket ebnet Spitzenbelastungen ⇒ ABER: für Huckepack-Bestätigungen ggf. Versenden mehrerer Pakete en bloc wünschenswert Token-Bucket Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 73 Flusskontrolle: Token-Bucket Eimer sammelt Tokens, nicht Pakete rinnender Eimer mit Tokens Netz Netz Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. neue Tokens werden zu festen Taktzeitpunkten erzeugt Verwerfen von Tokens bei Überschreitung der Eimerkapazität Weiterleitung eines Pakets nur bei Verbrauch eines Tokens 74 Zugangskontrolle (Admission C o n t ro l) bei sich abzeichnender Überlastung keine Zulassung weiterer virtueller Verbindungen geeignet für verbindungsorientierten Betrieb häufig zusätzlich Spezifikation des Verkehrsmusters bei Aufbau virtueller Verbindungen explizit oder implizit gültig entweder für komplette Dauer der Verbindung oder erst bei Überlastung Parameter z.B. ⇒ Obergrenze für Datenrate durchschnittliche Übertragungsrate Toleranz für Verkehrsspitzen Laufzeitvarianz Wird bei ATM eingesetzt (Asynchronous Transfer Mode) Reservierung von Ressourcen im Netz zur Gewährleistung des Verkehrsmusters Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 75 Überlastkontrolle bei TCP Idee Gehe von einem "Best-effort"-Netz aus (FIFO oder FQ Router) Jede Quelle bestimmt selbst die Netzkapazität Verwendung von implizitem Feedback Temporegelung durch ACKs (selbsttaktend) Herausforderung Zunächst Feststellung der verfügbaren Kapazität Dynamische Anpassung an Kapazitätsveränderungen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 76 Additive Zunahme/ Multiplikative Abnahme Ziel: Anpassung an Veränderungen der verfügbaren Kapazität Neue Zustandsvariable für jede Verbindung: CongestionWindow Begrenzt die Datenmenge, die die Quelle überträgt AdvertisedWindow = MaxRcvBuffer – (LastByteRcvd – LastByteRead) MaxWin = MIN(CongestionWindow, AdvertisedWindow) EffWin = MaxWin - (LastByteSent - LastByteAcked) Idee: Vergrößere CongestionWindow, wenn Überlast zurückgeht Verkleinere CongestionWindow, wenn Überlast steigt Additive Increase/Multiplicative Decrease-Verfahren (AIMD) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 77 AIMD-Algorithmus Ziel … Erhöhe CongestionWindow um ein Paket pro RTT (linear increase) Halbiere CongestionWindow bei jedem Timeout (multiplicative decrease) Quelle In der Praxis: Erhöhe bei jedem ACK ein wenig Increment = (MSS * MSS)/CongestionWindow CongestionWindow += Increment Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 79 Ablauf des AIMD Sägezahnmuster 70 60 50 KB 40 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 Zeit (Sekunden) Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 80 Quelle: Peterson/Davie: Computernetze Slow-Start Ziel: Bestimme am Anfang die verfügbare Kapazität Idee: Ziel Beginne mit CongestionWindow = 1 Paket Verdopple CongestionWindow pro RTT (entspricht einer Erhöhung um 1 Paket für jedes ACK) … Quelle Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 81 Ablauf des Slow-StartVerfahrens Exponentielles Wachstum, aber langsamer als alle Pakete auf einmal Wird verwendet Beim ersten Start einer Verbindung Wenn eine Verbindung abstirbt, während sie auf ein Timeout wartet Verlauf KB 70 60 50 40 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Problem: Pakete im Umfang bis zur Hälfte des CongestionWindow gehen verloren Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 82 Quelle: Peterson/Davie: Computernetze Fast-Retransmit und FastRecovery Problem: grobgranulare Implementierung von TCP-Timeouts führen zu langen ungenutzten Perioden Fast-RetransmitMechanismus: Verwende Duplikat-ACKs, um eine Neuübertragung anzustoßen Sender Empfänger Paket 1 Paket 2 Paket 3 ACK 1 Paket 4 ACK 2 Paket 5 ACK 2 Paket 6 ACK 2 ACK 2 Retransmit Pakket 3 Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. ACK 6 83 KB Ergebnis 70 60 50 40 30 20 10 1.0 2.0 3.0 4.0 5.0 6.0 7.0 Fast-Recovery-Mechanismus Falls Fast-Retransmit eine Überlast signalisiert Übergehen der Slow-Start-Phase Verwende ACKs in der Pipeline, um Paketübertragung zu takten Nimm direkt die Hälfte des letzten CongestionWindow Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 84 Quelle: Peterson/Davie: Computernetze Überlastvermeidung Strategie bei TCP Bringe Überlast bei Auftreten unter Kontrolle Schrittweises Erhöhen der Last, um den Überlastbeginn zu bestimmen, dann Drosseln Alternative Strategie Vorhersage, wann Überlast auftreten könnte Absenkung der Senderate, bevor Pakete verworfen werden Überlastvermeidung (im Ggs. zu Überlastkontrolle) Zwei Möglichkeiten Routerzentriert: DECbit und RED Gateways Hostzentriert: TCP Vegas Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 85 DECbit Einfügen eines Überlastbit in den Paket-Header Router Bestimmt die durchschnittliche Warteschlangenlänge über den letzten belegten + ungenutzten Zyklus Warteschlangenlänge Aktuelle Zeit Vorheriger Aktueller Zyklus Zyklus Durchschnitt über Zeitintervall Zeit Setzt das Überlastbit, falls die durchschnittliche Warteschlangenlänge größer als 1 Kompromiss zwischen Datendurchsatz und Verzögerung Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 86 Quelle: Peterson/Davie: Computernetze End-Stationen bei DECBit Ziel schickt das Bit zurück an die Quelle Quelle zeichnet auf, wieviele ihrer Pakete zum Setzen des Bit geführt haben Wurde es weniger als 50% der Pakete des letzten Fensters gesetzt, wird CongestionWindow um 1 Paket erhöht Wurde es in über 50% aller Pakete gesetzt, wird CongestionWindow um den Faktor 0.875 verkleinert Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 87 Random Early Detection (RED) Benachrichtigung ist implizit Eines der Pakete wird verworfen (führt zu einem Timeout) Könnte man durch Markieren des Pakets explizit machen "Early Random Drop"-Konzept Statt darauf zu Warten, dass die Warteschlange voll wird, wird jedes eintreffende Paket mit einer gewissen Wahrscheinlichkeit verworfen Verfahren wird aktiv, wenn die Warteschlangenlänge eine Schwelle überschreitet Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 88 Details des RED Berechnung der durchschnittlichen Warteschlangenlänge AvgLen = (1 - Weight) * AvgLen + Weight * SampleLen 0 < Weight < 1 (typischerweise 0.002) SampleLen: Länge der Warteschlage zum Zeitpunkt der Stichprobenmessung MaxThreshold MinThreshold AvgLen Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 89 Weitere Details des RED Zwei Schwellen für die Warteschlangen if AvgLen <= MinThreshold then stelle Paket in Warteschlange if MinThreshold < AvgLen < MaxThreshold then berechne Wahrscheinlichkeit P verwerfe eintreffendes Paket mit Wahrscheinlichkeit P if ManThreshold <= AvgLen then verwerfe eintreffende Pakete Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 90 Wahrscheinlichkeit für Paketverwerfen bei RED Berechnung der Wahrscheinlichkeit P TempP = MaxP * (AvgLen - MinThreshold)/ (MaxThreshold - MinThreshold) P = TempP/(1 - count * TempP) Kurve der Wahrscheinlichkeit für Verwerfen P(drop) 1.0 MaxP AvgLen MinThresh MaxThresh Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 91 Quelle: Peterson/Davie: Computernetze Feinjustierung des RED Wahrscheinlichkeit des Verwerfens eines Pakets eines bestimmten Datenflusses ist ungefähr proportial zum Anteil an Bandbreite, den dieser Fluss gerade an diesem Router erhält Typischer Wert: MaxP = 0.02 Durchschn. Warteschlangenlänge zwischen beiden Grenzwerten Etwa eines von 50 Paketen wird verworfen Damit die Leistungsauslastung auf akzetabel hohem Niveau bleibt Kommt Verkehr oft in Bündeln => MinThreshold muss genügend groß sein Unterschied zwischen zwei Grenzwerten > typische Erhöhung der berechneten durchschnittlichen Warteschlangenlänge innerhalb einer RTT Faustregel im heutigen Internet: MaxThreshold = 2 · MinThreshold Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 92 RTT steigt Senderate flacht ab Algorithmus "TCP Vegas" 70 60 50 40 30 20 10 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 Time (seconds) 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 1100 900 700 500 300 100 Sending KBps Idee: Quelle achtet auf Anzeichen für Füllung der Warteschlange und drohende Überlast, z.B. Queue size in router KB Quellenbasierte Überlastvermeidung 10 5 Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 93 Quelle: Peterson/Davie: Computernetze Algorithmus BaseRTT: Minimum aller gemessenen RTTs Üblicherweise die RTT des ersten Pakets Wenn keine Überlast entsteht, gilt: ExpectRate = CongestionWindow/BaseRTT Quelle berechnet die Senderate (ActualRate) einmal pro RTT Quelle vergleicht ActualRate mit ExpectRate Diff = ExpectedRate - ActualRate if Diff < a vergrößere CongestionWindow linear else if Diff > b verkleinere CongestionWindow linear else lasse CongestionWindow unverändert Datennetze, Sommersemester 2003 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 94