Download presentation
Presentation is loading. Please wait.
1
EE 122: Intra-domain routing: Link State
Computer Science Division Department of Electrical Engineering and Computer Science University of California, Berkeley, Berkeley, CA September 21, 2004
2
Protocol Hourglass Application Transport
Service: best-effort data delivery Functionality: packet forwarding and routing Network (IP) Link Physical
3
Forwarding: Example Host C Host D Host A N2 N1 N3 N5 Host B N4 Host E
4
Forwarding: Examples D dst next dst next A A dst next A N1 B N4 A N2 B
C N2 Host C B N5 C C D N5 C N2 Host D Host A D N3 E N5 D D E N3 E N7 N2 N1 dst next A N1 N3 B N4 N5 C N1 dst next D N3 A N3 E N3 Host B B N6 dst next N4 Host E C N3 A N1 dst next N6 N7 D N3 B B D A N4 E E C N4 B N4 D N6 C N4 E N6 D N7 E N7
5
Forwarding: Example D dst next dst next A A dst next A N1 B N4 A N2 B
C N2 Host C B N5 C C D N5 C N2 Host D Host A D N3 E N5 D D E N3 E N7 N2 N1 dst next A N1 N3 B N4 N5 C N1 dst next D N3 A N3 E N3 Host B B N6 dst next N4 Host E D C N3 A N1 dst next N6 N7 D N3 B B A N4 E E C N4 B N4 D N6 C N4 E N6 D N7 E N7
6
Forwarding: Example D dst next dst next A A dst next A N1 B N4 A N2 B
C N2 Host C B N5 C C D N5 C N2 Host D Host A D N3 E N5 D D E N3 E N7 N2 N1 dst next A N1 N3 B N4 N5 C N1 dst next D N3 A N3 E N3 Host B B N6 dst next N4 Host E C N3 A N1 dst next N6 N7 D N3 B B D A N4 E E C N4 B N4 D N6 C N4 E N6 D N7 E N7
7
Forwarding: Example D dst next dst next A A dst next A N1 B N4 A N2 B
C N2 Host C B N5 C C D N5 C N2 Host D Host A D N3 E N5 D D E N3 E N7 N2 N1 dst next A N1 N3 B N4 N5 C N1 dst next D N3 A N3 E N3 Host B B N6 dst next N4 Host E C N3 A N1 dst next N6 N7 D N3 B B D A N4 E E C N4 B N4 D N6 C N4 E N6 D N7 E N7
8
Forwarding: Example D dst next dst next A A dst next A N1 B N4 A N2 B
C N2 Host C B N5 C C D N5 C N2 Host D Host A D N3 E N5 D D E N3 E N7 N2 N1 dst next D A N1 N3 B N4 N5 C N1 dst next D N3 A N3 E N3 Host B B N6 dst next N4 Host E C N3 A N1 dst next N6 N7 D N3 B B A N4 E E C N4 B N4 D N6 C N4 E N6 D N7 E N7
9
Routing Protocols Compute and maintain routing tables
Routing vs. forwarding tables Routing table: table containing all information required to compute the paths to every other node Forwarding table: table used to forward packets Type of routing algorithms Distance vector (see last lecture) Path-vector: like distance vector, but the route updates contain the entire path to the destination Link state (this lecture)
10
Link State: Node State Host A Host B Host E Host D Host C N1 N2 N3 N4
11
Distance Vector: Control Traffic
When the routing table of a node changes, the nodes send its table to the neighbors Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
12
Distance Vector: Control Traffic
When the routing table of a node changes, the nodes send its table to the neighbors Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
13
Distance Vector: Control Traffic
When the routing table of a node changes, the nodes send its table to the neighbors Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
14
Distance Vector: Control Traffic
When the routing table of a node changes, the nodes send its table to the neighbors Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
15
Distance Vector: Control Traffic
When the routing table of a node changes, the nodes send its table to the neighbors Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
16
Link State: Control Traffic
Each node floods its local information to every other node in the network each node ends up knowing the entire network topology Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
17
Link State: Control Traffic
Each node floods its local information to every other node in the network each node ends up knowing the entire network topology Host A Host B Host E Host D Host C N1 N2 N3 N4 N5 N7 N6
18
Link State Protocol Each node computes shortest path to every other node using its local view of the network topology When a node notices a link or another node failure, it floods this information in the network Other nodes update their network view and recompute the shortest paths
19
A Link State Routing Algorithm
Dijkstra’s algorithm Net topology, link costs known to all nodes Accomplished via “link state flooding” All nodes have same info Each node computes least cost paths from itself to all other nodes Iterative: after k iterations, know least cost paths to k closest destinations Notations c(i,j): link cost from node i to j; cost infinite if not direct neighbors D(v): current value of cost of path from source to destination v p(v): predecessor node along path from source to v, that is next to v S: set of nodes whose least cost path definitively known
20
Dijsktra’s Algorithm 1 Initialization: 2 S = {A}; 3 for all nodes v
if v adjacent to A then D(v) = c(A,v); else D(v) = ; 7 8 Loop find w not in S such that D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); // new cost to v is either old cost to v or known // shortest path cost to w plus cost from w to v 13 until all nodes in S;
21
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A D(B),p(B) 2,A D(C),p(C) 5,A D(D),p(D) 1,A D(E),p(E) D(F),p(F) 1 Initialization: 2 S = {A}; 3 for all nodes v if v adjacent to A then D(v) = c(A,v); else D(v) = ; … 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
22
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A AD D(B),p(B) 2,A D(C),p(C) 5,A 4,D D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) … 8 Loop find w not in S s.t. D(w) is a minimum; 10 add w to S; update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); 13 until all nodes in S; 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
23
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A AD ADE D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) 4,E … 8 Loop find w not in S s.t. D(w) is a minimum; 10 add w to S; update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); 13 until all nodes in S; 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
24
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A AD ADE ADEB D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) 4,E … 8 Loop find w not in S s.t. D(w) is a minimum; 10 add w to S; update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); 13 until all nodes in S; 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
25
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A AD ADE ADEB ADEBC D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) 4,E … 8 Loop find w not in S s.t. D(w) is a minimum; 10 add w to S; update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); 13 until all nodes in S; 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
26
Example: Dijkstra’s Algorithm
Step 1 2 3 4 5 start S A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) 4,E … 8 Loop find w not in S s.t. D(w) is a minimum; 10 add w to S; update D(v) for all v adjacent to w and not in S: D(v) = min( D(v), D(w) + c(w,v) ); 13 until all nodes in S; 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1
27
Oscillations Assume link cost = amount of carried traffic A 1 1 D B C
C 1 1 initially
28
Oscillations Assume link cost = amount of carried traffic
B 2+e 1+e 1 … recompute routing e A D C B 2+e 1+e 1 … recompute e A D C B 2+e e 1+e 1 … recompute 1 1+e D B e C 1 1 e initially How can you avoid oscillations?
29
Distance Vector vs. Link State
Convergence Message & Computation complexity Robustness
30
Convergence How much does it take the algorithm to converge?
Link State: d*l + c, where d: diameter of the network l: latency of a message along the link c: computation time to run Dijkstra’s algorithm Distance Vector: Good news: d*(l+c’), where c’ is the time it takes a node to update rounding table Band news: varies (e.g., count to infinity problem)
31
Message Complexity Link State (LS): every node needs to flood its local state: n*n*e messages, where n: number of nodes in the network e: average degree n*e: number of messages per link to flood the network Distance vector (DV): assume the algorithm executes in rounds: d*n*e messages, where d: diameter of the network; it takes d rounds to converge n*e: number of messages during a round each node sends its changes to all its neighbors Note: messages in DV are larger than in LS
32
Computation Complexity
Link State: running time of Dijkstra’s algorithm Each iteration: need to check all nodes, w, not in S n*(n+1)/2 comparisons: O(n2) More efficient implementations possible: O(n*log(n)) Distance vector: update routing table n, assuming that it takes O(1) to find an entry in the table given the node
33
Robustness Link state Distance vector
Node can advertise incorrect link cost Each node computes only its own table Distance vector Node can advertise incorrect path cost Each node’s table used by others; error propagate through network
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.