Datennetze

Werbung
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
Herunterladen