HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen des Internets...

Post on 05-Apr-2015

106 views 0 download

Transcript of HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen des Internets...

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Algorithmen desInternets

Sommersemester 200509.05.2005

5. Vorlesung

Christian Schindelhauerschindel@upb.de

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

2

Heute

Überblick

•Das Internet: Einführung und Überblick

•Mathematische Grundlagen

•IP: Routing im Internet

•TCP: Das Transport-Protokoll des Internets

– Fenster und Congestion-Fenster

– TCP Tahoe, TCPReno

– Das Lastbalancierungsspiel

– AIMD: Lösung des Lastbalancierungsspiel

– TCP Vegas

•Die Struktur des World Wide Web und des Internets

•Suche im Web

•Web-Caching im Internet

•Peer-to-peer-Netzwerke

•Angriffe auf das Internet

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian SchindelhauerTCP ist ..

•… ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme

•Verbindungsorientiert

– Zwei Parteien identifiziert durch Socketpaar: IP-Adresse und Port

– Kein Broadcast oder Multicast

– Verbindungsaufbau und Ende notwendig, d.h. Verbindung aktiv, bis (ordentlich) beendet

•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

•Bidirektionale Byteströme

– Zwei gegenläufige Datenströme aus einzelnen Bytes

– Möglichst zeitnahe Auslieferung jedes einzelnen Datenbytes, aber Zeitverhalten der Datenfolgen kann verändert werden

– Versucht Übertragungsmedium effizient und fair zu nutzen durch Anpassung der Datenrate

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

4

Stauvermeidung in TCP Tahoe(congestion avoidance)

•Jacobson 88:

– 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 decreasingcwnd ← S ssthresh ←

•Werden Segmente bestätigt und cwnd ≤ ssthresh, dann

– slow start:cwnd ← cwnd + S

•Werden Segmente bestätigt und cwnd > ssthresh, dann additively increasing

cwnd ← cwnd +

x ← 1

x ← x +1

y ← max

y ← x/2

x ← 1

x ← 2⋅x, bis x = y

x: Anzahl Pakete pro RTT

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

5

TCP Tahoe

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

6

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

x ← y + 3

y ← x/2

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

7

Stauvermeidungsprinzip: AIMD

•Kombination von TCP und Fast Recovery verhält sich im wesentlichen wie folgt:

•Verbindungsaufbau:

•Bei Paketverlust, MD:multiplicative decreasing

•Werden Segmente bestätigt, AD: additive increasing

x ← 1

x ← x +1

x ← x/2

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

8

Beispiel: TCP Reno in Aktion

Slow Start

Additively Increase

Fast RecoveryFast Retransmit

Multiplicatively Decrease

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

9

Durchsatz und Antwortzeit

•Klippe:

– Hohe Last

– Geringer Durchsatz

– Praktisch alle Daten gehen verloren

•Knie:

– Hohe Last

– Hoher Durchsatz

– Einzelne Daten gehen verloren

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

10

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:

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

11

Lineare Datenratenanpassung

•Interessante Spezialfälle:

– AIAD: Additive IncreaseAdditive Decrease

– MIMD: Multiplicative Increase/Multiplicative Decrease

– AIMD: Additive IncreaseMultiplicative Decrease

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

12

Fairness und Effizienz

•Effizienz

– Last:

– Maß

•Fairness: Für x=(x1, …, xn):

– 1/n ≤ F(x) ≤ 1

– F(x) = 1 ↔ absolute Fairness, d.h. xi = xj, für alle i,j

– Skalierungsunabhängig

– Kontinuierlich, stetig, differenzierbar

– Falls k von n fair, Rest 0, dann F(x) = k/n

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

13

Konvergenz

•Konvergenz unmöglich

•Bestenfalls Oszillation um Optimalwert

– Oszillations-amplitude A

– Einschwingzeit T

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Vektordarstellung (I)

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Vektordarstellung (II)

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

16

AIAD

•Additive Increase

– Falls x1+ x2 ≤ K

• x1 ← x1 + aI

• x2 ← x2 + aI

•Additive Decrease

– Falls x1+ x2 > K

• x1 ← x1 + aD

• x2 ← x2 + aD

– aI > 0

– aD < 0

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

17

MIMD

•Multiplicative Increase

– Falls x1+ x2 ≤ K

• x1 ← x1 b⋅ I

• x2 ← x2 b⋅ I

•Multiplicative Decrease

– Falls x1+ x2 > K

• x1 ← x1 b⋅ D

• x2 ← x2 b⋅ D

– bI > 1

– 0 < bD < 1

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

18

AIMD

•Additive Increase

– Falls x1+ x2 ≤ K

• x1 ← x1 + aI

• x2 ← x2 + aI

•Multiplicative Decrease

– Falls x1+ x2 > K

• x1 ← x1 ⋅ bD

• x2 ← x2 ⋅ bD

– aI > 0

– 0 < bD < 1

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Faire und Effiziente Lineare Datenratenanpassung

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Effiziente lineare Funktionen

•X(t) > K

– aD ≤ 0 → bD ≤ 1

– aD > 0 → bD < 0

→ nicht möglich

•X(t) < K

– aI ≥ 0 → bI ≥ 1

– aI < 0 → nicht möglich

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

21

•Fairness von x(t) = (x1(0), …, xn(0)) konvergiert gegen 1, d.h.

für

•Es gilt für c=a/b:

•Beweis?

Fairness (I)

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

22

Beweis! (1)

•Es gilt:

•Substitution

•Dann ist:

und

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Beweis! (2)

•Zu zeigen:

•Warum gilt diese Gleichung?

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Beweis! (3)

•Warum gilt diese Gleichung?

•wobei

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

•Es gilt:

•D.h. Fairness nimmt mit c=a/b zu.

– Für c=0 ist F(x(t+1))= F(x(t))

– Für c>0 ist F(x(t+1))> F(x(t)), falls F(x(t)) ≠ 1

– Für c<0 ist F(x(t+1))< F(x(t))

•Daher aI/bI ≥ 0 und aD/bD ≥ 0

– Also, aI,bI,aD,bD ≥ 0

•Aus Effizienz:

– aD ≤ 0 → bD ≤ 1, heißt also aD = 0 → bD ≤ 1,

– aI ≥ 0 → bI ≥ 1,

• es muß aI > 0, da sonst Fairness nicht zunimmt (siehe MIMD)

•Führt zu AIMD

Fairness (II)

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

26

Durchsatzoptimierung in der Transportschicht

•Hauptproblem von TCP: Durchsatzoptimierung durch Stauvermeidung

– Jacobson: min. 99% aller verlorenen Pakete durch IP wegen Datenüberlaufs (congestion) an Routern

– Feedback in der Transportschicht nur durch Ackn.-Pakete:

• Wird ein Paket nicht bestätigt, war der gewählte Datendurchsatz zu hoch

TCP verringert Datendurchsatz

• Werden alle Pakete bestätigt, war der Datendurchsatz genau richtig oder zu niedrig

TCP erhöht Datendurchsatz

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

Modell

•Rundenmodell

– In Runde t steht Bandweite ut zur Verfügung

– Algorithmus fordert in Runde Bandweite xt an

– Feedback zu Beginn von Runde t+1:

• Ist xt > ut? (d.h. sind Pakete verloren gegangen)

– Algorithmus erfährt nie die wirklich verfügbaren Bandweiten

Runde Internet Host B

t

Bandweite läßt maximal ut Pakete durch

Host A

sendet xt+1 Pakete

schickt Bestätigung (Ack.)

erhält Ack. undberechnet xt+1

t+1

sendet xt Pakete

erhält min(xt+1,ut+1) Pakete

Bandweite läßt maximal ut+1 Pakete durch

erhält min(xt,ut) Pakete

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

28

•Der statische Fall

– die verfügbare Bandweite bleibt konstant

•Der dynamische Fall

– die verfügbare Bandweite ändert sich

Durchsatzoptimierung in der Transportschicht

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

29

Kosten

•Modell nach Karp, Koutsoupias, Papadimitriou, Shenker 2000

•Prinzip:

– xt > ut : Datenrate ist größer als verfügbare Bandweite

• Zeitverlust und Overhead durch wiederholtes Senden von verlorenen Paketen

– xt < ut : Nur ein kleiner Teil der verfügbaren Bandweite wird genutzt

• Opportunitätskosten

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

30

Milde Kosten

•Modell nach Karp, Koutsoupias, Papadimitriou, Shenker 2000

•Prinzip:

– xt > ut : Datenrate ist größer als verfügbare Bandweite

• Zeitverlust und Overhead durch wiederholtes Senden von verlorenen Paketen

– xt < ut : Nur ein kleiner Teil der verfügbaren Bandweite wird genutzt

• Opportunitätskosten

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

31

Strenge Kosten

•Modell nach Karp, Koutsoupias, Papadimitriou, Shenker 2000

•Prinzip:

– xt > ut : Datenrate ist größer als verfügbare Bandweite

• Zeitverlust und Overhead durch wiederholtes Senden von verlorenen Paketen

– xt < ut : Nur ein kleiner Teil der verfügbaren Bandweite wird genutzt

• Opportunitätskosten

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

32

•Bandweite ist fest:

– u1 = u2 = … = u

•Start mit Intervall

– [1..n] = {1,2,3,…n}

•Sinnvoller (rekursiver) Suchalgorithmus A(i,j) auf Intervall [i..j]:

– Falls i=j dann ist u=x.

– Ansonsten

• x = A(i,j) mit x [i+1..j]∈

• Falls x ≤ u: Suche in [x,j]

• Falls x>u: Suche in [i,x-1]

Der statische Fall

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

33

Komplexitätsmaß

•Cc,A(i,j,u): Kosten, die Algorithmus A bei Suche nach u mitKostenfunktion c(x,u) entstehen

•worst-case:

•average-case:

wobei:

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

34

•Wahl von x:

Milde Kosten bei Binärer Suche

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

35

•Wahl von x:

Strenge Kosten bei Binärer Suche

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

36

•Wahl von x:

•Strenge worst-case Kosten:

•Strenge average-case Kosten:

•Milde worst-case Kosten:

•Milde average-case Kosten:

Binäre Suche

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

37

•Wird als Grundbaustein von TCP eingesetzt

•Wahl von x:

AIMD (Additively Increasing – Mulitiplicatively Decreasing)

Algorithmen des Internets 2005-05

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätChristian Schindelhauer

38

•Wird als Grundbaustein von TCP eingesetzt

•Wahl von x:

•Strenge worst-case Kosten:

•Strenge average-case Kosten:

•Milde worst-case Kosten:

•Milde average-case Kosten:

AIMD (Additively Increasing – Mulitiplicatively Decreasing)

39

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Vielen Dank!

Ende der 5. Vorlesung

Nächste Vorlesung: Mo. 16.05.2005Nächste Übung: Mo. 16.05.2005

Heinz Nixdorf Institut& Institut für InformatikUniversität PaderbornFürstenallee 1133102 Paderborn

Tel.: 0 52 51/60 66 92Fax: 0 52 51/62 64 82E-Mail: schindel@upb.dehttp://www.upb.de/cs/schindel.html