Übung 6 - CCS Labs

Werbung
Übungen zu „Rechnerkommunikation“
Wintersemester 2010/2011
Übung 6
Mykola Protsenko, Jürgen Eckert
PD. Dr.-Ing. Falko Dressler
Friedrich-Alexander
d h l
d Universität Erlangen-Nürnberg
l
b
Informatik 7 (Rechnernetze und Kommunikationssysteme)
Rechnerkommunikation, Übung 6
1
Routing
 Graphen
 Link-State-Routing
Link State Routing
 Distanzvektor-Routing
Begriff: Routing
"Verfahren, mit denen Router entscheiden,
über welchen Pfad Pakete gesendet werden sollen"
sollen
Rechnerkommunikation, Übung 6
2
Routing
 Intradomain: innerhalb einer Routing-Domäne
((= unter einer administrativen Instanz)
 Hier können Verfahren verwendet werden, die nicht für sehr große
Netze skalieren.
 Zwei
Z i Varianten
V i t
- Link-State: jeder Router besitzt vollständige Information über die
gesamte Routing-Domäne, jeder Router berechnet kürzeste Pfade
von ihm zu allen anderen Routern z.B. mit dem Dijkstra-Verfahren,
Beispiel: OSPF, Forward-Search-Algorithmus
- Distanzvektor: jeder Router kennt nur Kosten zu direkten Nachbarn
und die von ihm erreichbaren Ziele, die kürzesten Pfade werden
verteilt mit dem Bellman-Ford-Verfahren berechnet, Beispiel: RIP
 Interdomain: zwischen Routing-Domänen
Routing Domänen
- ausgetauschte Routing-Informationen enthalten ganzen Pfade
- Auswahl durch Regeln
- Beispiel: BGP
Rechnerkommunikation, Übung 6
3
Routing: Graphen
 Graphen sind eine übliche Abstraktion für Netze
 Anwendung von Suchverfahren aus Graphentheorie
 einige Grundbegriffe:
 Graph G = (V
(V,E)
E)
 Knoten V (vertices)
 Kanten E  V  V (edges),
eine
i Kante
K t ist
i t ein
i Paar
P
(
(v,w)
)  E,
E v und
d w heißen
h iß Nachbarn
N hb
 ein Graph ist ungerichtet wenn alle Kanten symmetrisch sind:
((v,w))  E  ((w,v))  E
Wir betrachten im Folgenden nur ungerichtete Graphen.
 Kosten sind eine Funktion c: E  K auf eine geeignete Menge K,
verkürzte Schreibweise c(v,w)
c(v w)
Rechnerkommunikation, Übung 6
4
Routing: Graphen
 Beispiel für ungerichteten Graphen:
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
 V = {A,
{A B,
B C
C, D,
D E,
E F}
 E = {(A,B), (A,C), (A,D), (B,A), (B,C), (B,D), (C,A), (C,B), (C,D), (C,E),
(C,F), (D,A), (D,B), (D,C), (D,E), (E,C), (E,D), (E,F), (F,C), (F,E)}
 c(A,B) = c(B,A) = 2, c(A,C) = c(C,A) = 5, ...
Rechnerkommunikation, Übung 6
5
Routing: Graphen
 einige weitere Begriffe
 ein Pfad ist eine Sequenz (v1,vv2,..., vn),
)
so dass alle Paare (v1,v2), (v2,v3),..., (vn-1,vn)  E
 die Kosten eines Pfads betragen c(v1,v2)+c(v2,v3)+..+c(vn-1,vn)
 ein Pfad zwischen zwei Knoten v1 und vn heißt kürzester Pfad,
wenn es zwischen diesen Knoten keinen Pfad mit geringeren Kosten gibt
((es kann mehrere kürzeste Pfade zwischen zwei Knoten geben),
g
),
seine Kosten sind D(v1,vn )
 ein Zyklus ist ein Pfad mit Anfangsknoten = Endknoten
 ein Graph ist zusammenhängend,
zusammenhängend
wenn es einen Pfad zwischen jedem Knotenpaar gibt
Rechnerkommunikation, Übung 6
6
Routing: Graphen
 und noch ein paar ...
 ein Baum ist ein zusammenhängender Graph,
Graph der keine Zyklen enthält
 ein aufspannender Baum eines Graphen G = (V,E) ist ein Baum
B = (V,E´) mit E´  E
 ein
i minimaler
i i l aufspannender
f
d Baum
B
eines
i
Graphen
G h G fü
für einen
i
Knoten
K t
v ist ein aufspannender Baum von G, der für jedes Knotenpaar mit v
als Startknoten einen kürzesten Pfad aus G enthält
Beispiel: minimaler aufspannender Baum für A:
2
B
C
A
1
1
Rechnerkommunikation, Übung 6
D
1
F
E
2
7
Routing: Graphen
 Eigenschaft der kürzesten Pfade
 wenn w ein Teil des kürzesten Pfades von u nach v ist,
ist dann setzt sich
der kürzeste Pfad von u nach v aus den kürzesten Pfaden von u nach w
und w nach v zusammen
u
w
v
 führt zu Rekursionsschema: D(u,v) = minw{D(u,w) + D(w,v)}
 dies wird von den Verfahren zur Suche kürzester Pfade ausgenutzt
Rechnerkommunikation, Übung 6
8
Routing: Link-State-Routing
 Link-State-Routing





alle Knoten besitzen vollständige Kenntnis der Netztopologie
dies wird durch Fluten erreicht
jeder Knoten berechnet die kürzesten Pfade zu allen anderen Knoten
hierfür wird das Dijkstra-Verfahren verwendet
bei Änderungen in der Netztopologie (kann z.B. die Sicherungsschicht
erkennen), erfolgt erneutes Fluten und Neuberechnung der kürzesten
Pfade
Rechnerkommunikation, Übung 6
9
Routing: Link-State-Routing
 Fluten
 Link-State-Advertisements
Link State Advertisements (LSAs) mit
- Kennung des Knotens, der LSA erzeugt
- Kosten zu Nachbarn und dessen Kennung
- Sequenznummer
- Lebensdauer
 jjeder Knoten erzeugt
g LSAs mit den ihm bekannten Informationen über
die Verbindungen zu den Nachbarn und sendet sie an alle Nachbarn
 neue von Nachbarn erhaltene LSAs werden an alle Nachbarn
weitergeleitet, aber nicht an den Nachbarn, von dem das LSA kam
 zur Erzielung von Zuverlässigkeit auch Bestätigungen und
Sendewiederholungen zwischen Nachbarn sowie Sequenznummern und
Lebensdauer
Rechnerkommunikation, Übung 6
10
Routing: Link-State-Routing
 Bsp. für Fluten: Initial sind jedem Knoten die Kosten zu den Nachbarn
bekannt, jeder schickt diese zu seinen Nachbarn:
A,1,B
A,2,C
A
1
2
C
C,2,A
C,4,D
Rechnerkommunikation, Übung 6
B
B,1,A
B,3,D
3
4
D
5
D,3,B
, ,
D,4,C
D,5,E
E
E,5,D
, ,
11
Routing: Link-State-Routing
 Bsp. für Fluten: nach Empfang werden die Tabellen jedes Knoten
aktualisiert und danach die neuen Informationen weitergereicht:
A,1,B
A,2,C
B,3,D
C,4,D
B3D
B,3,D
D,4,C
D,5,E
C,4,D
A
B
1
2
B,1,A
A,2,C
B3D
B,3,D
D,4,C
D,5,E
A2C
A,2,C
3
C,2,A
D,3,B
D
3B
D,5,E
A,1,B
C,2,A
D,3,B
C,4,D
D5E
D,5,E
C
A,1,B
Rechnerkommunikation, Übung 6
4
D
B,1,A
E
5
B,1,A
, ,
C,2,A
D,3,B
D,4,C
D5E
D,5,E
B,1,A
C,2,A
D,3,B
, ,
D,4,C
E,5,D
12
Routing: Link-State-Routing
 Bsp. für Fluten: nach Empfang werden die Tabellen jedes Knoten
nochmals aktualisiert und enthalten daraufhin die Information über den
gesamten Graphen:
A,1,B
A,2,C
B,3,D
C,4,D
D,5,E
A
1
2
C
A,1,B
C,2,A
D,3,B
C,4,D
D5E
D,5,E
Rechnerkommunikation, Übung 6
B
B,1,A
A,2,C
B3D
B,3,D
D,4,C
D,5,E
3
4
D
5
B,1,A
, ,
C,2,A
D,3,B
D,4,C
D5E
D,5,E
E
B,1,A
, ,
C,2,A
D,3,B
D,4,C
E5D
E,5,D
13
Routing: Link-State-Routing
 Idee des Dijkstra-Verfahrens
 der minimale aufspannende Baum wird iterativ aufgebaut
 eine Knotenmenge V´ enthält die Knoten, für die die kürzesten Pfade
bereits bekannt sind
 V
V´ wird
i d mit
it dem
d
St tk t u initialisiert
Startknoten
i iti li i t
 ein neuer Knoten v kann V´ zugefügt werden, indem der kürzeste Pfad
zu einem Nachbarn zu den Knoten aus V´ mit der Eigenschaft der
kü
kürzesten
t Pf
Pfade
d b
berechnet
h t wird:
i d D(u,v)
D( ) = min
i w{D(u,w)
{D(
) + D(w,v)}
D(
)}
 hierbei wird für den 2. Teil statt eines Pfads eine Kante verwendet:
D(u,v) = minw in V'{D(u,w) + c(w,v)}
 der Algorithmus endet, wenn V = V´
Rechnerkommunikation, Übung 6
14
Routing: Link-State-Routing
 Datenstrukturen für das Dijkstra-Verfahren
 Knotenmenge V,
V Quellknoten u
 V´ ist die Menge von Knoten, zu denen kürzeste Pfade von u aus
bereits bekannt sind
 Kosten
K t c(w,v)
(
) zwischen
i h zweii Knoten
K t w und
dv
- positive Verbindungskosten, wenn w und v Nachbarn sind
- 0 für w = v
-  sonst
 Distanz D(v) gibt Kosten des aktuell bekannten kürzesten Pfads von u
nach v
 p(v) gibt Vorgänger von v auf dem aktuell bekannten kürzesten Pfad
von u nach v
Rechnerkommunikation, Übung 6
15
Routing: Link-State-Routing
 Dijkstra-Verfahren
 Initialisierung
V´= {u};
für alle vV: D(v)=c(u,v);
 Wiederhole bis V´= V
finde wV\V´, so dass vV\V´: D(w)  D(v);
//* w ist ein Nachbar von Knoten aus V´ mit minimalen Kosten *//
V´= V´ {w};
für alle vV\V´
falls D(v) > D(w)+c(w
D(w)+c(w,v),
v) dann
D(v) = D(w)+c(w,v)
p(v) = w
/* wenn ein Knoten über w günstiger zu erreichen ist,
werden seine Kosten und sein Vorgänger angepasst */
Rechnerkommunikation, Übung 6
16
Beispiel für den Ablauf des Dijkstra-Verfahrens:
jeweils D(), p()
Schritt
V´
B
C
D
E
F
0
A
2,A
5,A
1,A
,-
,-
1
A,D
2,A
4,D

2,D
,-
2
ADB
A,D,B

4D
4,D

2D
2,D

,-
3
A,D,B,E

3,E


4,E
4
A,D,B,E,C




4,E
5
A,D,B,E,C,F





(Einträge mit  können sich nicht mehr verändern
verändern, da Knoten in V
V´))
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
2
B
C
A
resultierender
minimaler aufspannender Baum
1
1
D
1
F
E
2
17
Routing: Link-State-Routing
 Ermittlung der Routing-Tabelle
 Routing-Tabelle
Routing Tabelle enthält für jedes Ziel v den nächsten Hop auf dem
kürzesten Pfad
 wie kann er aus dem Vektor p(v) mit Vorgänger-Knoten ermittelt
werden?
 dies liefert die rekursive Funktion
nexthop(v) = (p(v)==u) ? v : nexthop(p(v))
Rechnerkommunikation, Übung 6
18
Routing: Link-State-Routing
 praktische Umsetzung des Dijkstra-Verfahrens
 in der Praxis sammelt jeder Knoten die LSAs und berechnet daraus
direkt die Routing-Tabelle
 hierfür wird die als Forward-Search-Algorithmus bekannte Variante
benutzt
 es werden Einträge der Form (Ziel, Kosten, nächster Hop) in 2 Listen
verwaltet
- bestätigteListe
b täti t Li t (entspricht
( t i ht V´)
- vorläufigeListe (entspricht den Nachbarn von Knoten aus V´)
 nexthop(w)
p( ) ist der nächste Hop,
p, um einen Knoten w vom Startknoten u
aus zu erreichen
 die Werte für c(w,v) werden aus den LSAs gelesen, die Werte für D(w)
und nexthop(w)
p( ) werden aus den Einträgen
g in den 2 Listen gelesen
g
Rechnerkommunikation, Übung 6
19
Routing: Link-State-Routing
 Forward-Search-Algorithmus
 IInitialisierung
iti li i
bestätigteListe = <(u,0,-)>, vorläufigeListe = <>;
 Wiederhole
w = letzter in bestätigteListe eingetragener Knoten
für alle Nachbarn v von w
falls v weder in bestätigteListe noch in vorläufigeListe
füge (v, D(w)+c(w,v), nexthop(w)) vorläufigeListe zu
falls v in vorläufigeListe und D(w)+c(w,v) < D(v)
ersetze in vorläufigeListe den Eintrag für v durch
(v,D(w)+c(w,v), nexthop(w))
verschiebe Eintrag mit geringsten Kosten von vorläufigeListe in
bestätigte Liste
bis vorläufigeListe leer
Rechnerkommunikation, Übung 6
20
Routing: Link-State-Routing
Schritt bestätigteListe
vorläufigeListe
0
( , ,)
(A,0,-)
1
(A,0,-)
(B,2,B), (C,5,C), (D,1,D)
2
(A,0,-), (D,1,D)
(B,2,B), (C,4,D), (E,2,D)
3
(A,0,-), (D,1,D), (B,2,B)
(C,4,D), (E,2,D)
4
(A,0,-), (D,1,D), (B,2,B), (E,2,D) (C,3,D), (F,4,D)
5
(A,0,-),
(A
0 -) (D,1,D),
(D 1 D) (B,2,B),
(B 2 B)
(E,2,D), (C,3,D)
6
(A,0,-), (D,1,D), (B,2,B),
(E 2 D) (C
(E,2,D),
(C,3,D),
3 D) (F,4,D)
(F 4 D)
5
2
A
B
2
1
D
3
C
3
1
5
Rechnerkommunikation, Übung 6
2
F
1
E
(F 4 D)
(F,4,D)
2
B
C
A
1
1
D
1
F
E
2
21
Herunterladen