46
1 EE 122: Shortest Path Routing Ion Stoica TAs: Junda Liu, DK Moon, David Zats http://inst.eecs.berkeley.edu/~ee12 2/fa09 (Materials with thanks to Vern Paxson, Jennifer

EE 122 : Shortest Path Routing

  • Upload
    malini

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

EE 122 : Shortest Path Routing. Ion Stoica TAs: Junda Liu, DK Moon, David Zats http://inst.eecs.berkeley.edu/~ee122/fa09 (Materials with thanks to Vern Paxson , Jennifer Rexford, and colleagues at UC Berkeley). What is Routing?. Routing implements the core function of a network: - PowerPoint PPT Presentation

Citation preview

Page 1: EE 122 :  Shortest Path Routing

1

EE 122: Shortest Path RoutingIon Stoica

TAs: Junda Liu, DK Moon, David Zatshttp://inst.eecs.berkeley.edu/~ee122/fa09

(Materials with thanks to Vern Paxson, Jennifer Rexford,and colleagues at UC Berkeley)

Page 2: EE 122 :  Shortest Path Routing

2

What is Routing?

Routing implements the core function of a network:

It ensures that information accepted for transfer at a source node is delivered to the correct set of destination nodes, at reasonable levels of performance.

Page 3: EE 122 :  Shortest Path Routing

3

Internet Routing Internet organized as a two level hierarchy First level – autonomous systems (AS’s)

AS – region of network under a single administrative domain

AS’s run an intra-domain routing protocols Distance Vector, e.g., Routing Information Protocol (RIP) Link State, e.g., Open Shortest Path First (OSPF)

Between AS’s runs inter-domain routing protocols, e.g., Border Gateway Routing (BGP) De facto standard today, BGP-4

Page 4: EE 122 :  Shortest Path Routing

4

Example

AS-1

AS-2

AS-3

Interior routerBGP router

Page 5: EE 122 :  Shortest Path Routing

5

Forwarding vs. RoutingForwarding: “data plane”

Directing a data packet to an outgoing link Individual router using a forwarding table

Routing: “control plane” Computing paths the packets will follow Routers talking amongst themselves Individual router creating a forwarding table

Page 6: EE 122 :  Shortest Path Routing

6

Routing requires knowledge of the network structure Centralized global state

Single entity knows the complete network structure Can calculate all routes centrally Problems with this approach?

Distributed global state Every router knows the complete network structure Independently calculates routes Problems with this approach?

Distributed no-global state Every router knows only about its neighboring routers Independently calculates routes Problems with this approach?

Know Thy Network

Link State RoutingE.g. Algorithm: Dijkstra

E.g. Protocol: OSPF

Distance Vector RoutingE.g. Algorithm: Bellman-Ford

E.g. Protocol: RIP

Page 7: EE 122 :  Shortest Path Routing

7

Modeling a Network

Modeled as a graph Routers nodes Link edges

Possible edge costs delay congestion level

Goal of Routing Determine a “good” path through the network from source

to destination Good usually means the shortest path

A

ED

CB

F

2

2

13

1

1

2

53

5

Page 8: EE 122 :  Shortest Path Routing

8

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

use Dijkstra to compute the shortest path to every other node

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Page 9: EE 122 :  Shortest Path Routing

9

Link State: Node State

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

A

B E

DC

A

B E

DC A

B E

DC

A

B E

DC

A

B E

DC

A

B E

DC

A

B E

DC

Page 10: EE 122 :  Shortest Path Routing

10

Notationc(i,j): link cost from node i

to j; cost infinite if not direct neighbors; ≥ 0

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

A

ED

CB

F

2

2

13

1

1

2

53

5

Source

Page 11: EE 122 :  Shortest Path Routing

11

Dijsktra’s Algorithm1 Initialization: 2 S = {A};3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ;7 8 Loop 9 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: 12 if D(w) + c(w,v) < D(v) then // w gives us a shorter path to v than we’ve found so far 13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

c(i,j): link cost from node i to j D(v): current cost source 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

Page 12: EE 122 :  Shortest Path Routing

12

Example: Dijkstra’s AlgorithmStep

012345

start SA

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)

A

ED

CB

F

22

13

1

1

2

53

5

1 Initialization: 2 S = {A};3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ;…

Page 13: EE 122 :  Shortest Path Routing

13

Example: Dijkstra’s AlgorithmStep

012345

start SA

D(B),p(B)2,A

D(C),p(C)5,A

…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

A

ED

CB

F

22

13

1

1

2

53

5

D(D),p(D)1,A

D(E),p(E) D(F),p(F)

Page 14: EE 122 :  Shortest Path Routing

14

Example: Dijkstra’s AlgorithmStep

012345

start SA

AD

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)

A

ED

CB

F

22

13

1

1

2

53

5

…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 15: EE 122 :  Shortest Path Routing

15

Example: Dijkstra’s AlgorithmStep

012345

start SA

AD

D(B),p(B)2,A

D(C),p(C)5,A4,D

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

A

ED

CB

F

22

13

1

1

2

53

5

…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 16: EE 122 :  Shortest Path Routing

16

Example: Dijkstra’s AlgorithmStep

012345

start SA

ADADE

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

22

13

1

1

2

53

5…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 17: EE 122 :  Shortest Path Routing

17

Example: Dijkstra’s AlgorithmStep

012345

start SA

ADADE

ADEB

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

22

13

1

1

2

53

5…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 18: EE 122 :  Shortest Path Routing

18

Example: Dijkstra’s AlgorithmStep

012345

start SA

ADADE

ADEBADEBC

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

22

13

1

1

2

53

5…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 19: EE 122 :  Shortest Path Routing

19

Example: Dijkstra’s AlgorithmStep

012345

start SA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

22

13

1

1

2

53

5…8 Loop 9 find w not in S s.t. D(w) is a minimum; 10 add w to S; 11 update D(v) for all v adjacent to w and not in S: 12 If D(w) + c(w,v) < D(v) then13 D(v) = D(w) + c(w,v); p(v) = w;14 until all nodes in S;

Page 20: EE 122 :  Shortest Path Routing

20

Example: Dijkstra’s AlgorithmStep

012345

start SA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A

D(C),p(C)5,A4,D3,E

D(D),p(D)1,A

D(E),p(E)

2,D

D(F),p(F)

4,E

A

ED

CB

F

22

13

1

1

2

53

5To determine path A C (say), work backward from C via p(v)

Page 21: EE 122 :  Shortest Path Routing

21

• Running Dijkstra at node A gives the shortest path from A to all destinations

• We then construct the forwarding table

The Forwarding Table

A

ED

CB

F

22

13

1

1

2

53

5Destination Link

B (A,B)

C (A,D)

D (A,D)

E (A,D)

F (A,D)

Page 22: EE 122 :  Shortest Path Routing

22

Complexity

How much processing does running the Dijkstra algorithm take?

Assume a network consisting of N nodes 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))

Page 23: EE 122 :  Shortest Path Routing

23

Obtaining Global State Flooding

Each router sends link-state information out its links The next node sends it out through all of its links

except the one where the information arrived Note: need to remember previous msgs & suppress

duplicates!X A

C B D

(a)

X A

C B D

(b)

X A

C B D

(c)

X A

C B D

(d)

Page 24: EE 122 :  Shortest Path Routing

24

Flooding the Link State Reliable flooding

Ensure all nodes receive link-state information Ensure all nodes use the latest version

Challenges Packet loss Out-of-order arrival

Solutions Acknowledgments and retransmissions Sequence numbers Time-to-live for each packet

Page 25: EE 122 :  Shortest Path Routing

25

When to Initiate Flooding Topology change

Link or node failure Link or node recovery

Configuration change Link cost change See next slide for hazards of dynamic link

costs based on current load Periodically

Refresh the link-state information Typically (say) 30 minutes Corrects for possible corruption of the data

Page 26: EE 122 :  Shortest Path Routing

26

Oscillations Assume link cost = amount of carried traffic

A

D

C

B1 1+e

e0

e1 1

0 0

initially

A

D

C

B2+e 0

001+e 1

… recomputerouting

A

D

C

B0 2+e

1+e10 0

… recompute

A

D

C

B2+e 0

e01+e 1

… recompute

How can you avoid oscillations?

Page 27: EE 122 :  Shortest Path Routing

27

5 Minute Break

Questions Before We Proceed?

Page 28: EE 122 :  Shortest Path Routing

28

Distance Vector Routing Each router knows the links to its immediate

neighbors Does not flood this information to the whole network

Each router has some idea about the shortest path to each destination E.g.: Router A: “I can get to router B with cost 11 via

next hop router D” Routers exchange this information with their

neighboring routers Again, no flooding the whole network

Routers update their idea of the best path using info from neighbors

Page 29: EE 122 :  Shortest Path Routing

29

Information Flow in Distance Vector

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Page 30: EE 122 :  Shortest Path Routing

30

Bellman-Ford Algorithm INPUT:

Link costs to each neighbor Not full topology

OUTPUT: Next hop to each destination and the

corresponding cost Does not give the complete path to the

destination

Page 31: EE 122 :  Shortest Path Routing

Bellman-Ford - Overview Each router maintains a table

Row for each possible destination Column for each directly-attached

neighbor to node Entry in row Y and column Z of node

X best known distance from X to Y, via Z as next hop = DZ(X,Y)

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

Neighbor (next-hop)

Destinations DC(A, D)

Page 32: EE 122 :  Shortest Path Routing

Bellman-Ford - Overview Each router maintains a table

Row for each possible destination Column for each directly-attached

neighbor to node Entry in row Y and column Z of node

X best known distance from X to Y, via Z as next hop = DZ(X,Y)

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

Smallest distance in row Y = shortestDistance of A to Y, D(A, Y)

Page 33: EE 122 :  Shortest Path Routing

33

Bellman-Ford - Overview Each router maintains a table

Row for each possible destination Column for each directly-attached

neighbor to node Entry in row Y and column Z of node

X best known distance from X to Y, via Z as next hop = DZ(X,Y)

Each local iteration caused by: Local link cost change Message from neighbor

Notify neighbors only if least cost path to any destination changes Neighbors then notify their neighbors

if necessary

wait for (change in local link cost or msg from neighbor)

recompute distance table

if least cost path to any dest has changed, notify neighbors

Each node:

Page 34: EE 122 :  Shortest Path Routing

34

Distance Vector Algorithm (cont’d)

1 Initialization: 2 for all neighbors V do3 if V adjacent to A 4 D(A, V) = c(A,V);5 else 6 D(A, V) = ∞;7 send D(A, Y) to all neighbors loop: 8 wait (until A sees a link cost change to neighbor V /* case 1 */9 or until A receives update from neighbor V) /* case 2 */10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */ /* shortest path from V to some Y has changed */ 14 DV(A,Y) = DV(A,V) + D(V, Y); /* may also change D(A,Y) */15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

c(i,j): link cost from node i to j DZ(A,V): cost from A to V via Z D(A,V): cost of A’s best path to V

Page 35: EE 122 :  Shortest Path Routing

Example:1st Iteration (C A)

A C12

7

B D3

1

B CB 2 8C ∞ 7D ∞ 8

Node A

A C DA 2 ∞ ∞C ∞ 1 ∞D ∞ ∞ 3

Node B

Node C

A B DA 7 ∞ ∞B ∞ 1 ∞D ∞ ∞ 1

B CA ∞ ∞B 3 ∞C ∞ 1

Node D7 loop: …13 else if (update D(A, Y) from C) 14 DC(A,Y) = DC(A,C) + D(C, Y);15 if (new min. for destination Y)16 send D(A, Y) to all neighbors 17 forever

DC(A, B) = DC(A,C) + D(C, B) = 7 + 1 = 8

DC(A, D) = DC(A,C) + D(C, D) = 7 + 1 = 8

Page 36: EE 122 :  Shortest Path Routing

Example: 1st Iteration (B A)

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A

A C DA 2 ∞ ∞C ∞ 1 ∞D ∞ ∞ 3

Node B

Node C

A B DA 7 ∞ ∞B ∞ 1D ∞ ∞ 1

Node D7 loop: …13 else if (update D(A, Y) from B) 14 DB(A,Y) = DB(A,B) + D(B, Y);15 if (new min. for destination Y)16 send D(A, Y) to all neighbors 17 forever

DB(A, C) = DB(A,B) + D(B, C) = 2 + 1 = 3

DB(A, D) = DB(A,B) + D(B, D) = 2 + 3 = 5

B CA ∞ ∞B 3 ∞C ∞ 1

Page 37: EE 122 :  Shortest Path Routing

Example: End of 1st Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A Node B

Node C

A B DA 7 3 ∞B 9 1 4D ∞ 4 1

Node D

B CA 5 8B 3 2C 4 1

End of 1st Iteration All nodes knows the best two-hop

paths

A C DA 2 3 ∞C 9 1 4D ∞ 2 3

Page 38: EE 122 :  Shortest Path Routing

Example: 2nd Iteration (A B)

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A Node B

Node C

A B DA 7 3 ∞B 9 1 4D ∞ 4 1

Node D

B CA 5 8B 3 2C 4 1

A C DA 2 3 ∞C 5 1 4D 7 2 3

7 loop: …13 else if (update D(B, Y) from A) 14 DA(B,Y) = DA(B,A) + D(A, Y);15 if (new min. for destination Y)16 send D(B, Y) to all neighbors 17 forever

DA(B, C) = DA(B,A) + D(A, C) = 2 + 3 = 5

DA(B, D) = DA(B,A) + D(A, D) = 2 + 5 = 7

Page 39: EE 122 :  Shortest Path Routing

Example: End of 2nd Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

A C DA 2 3 11C 5 1 4D 7 2 3

Node B

Node C

A B DA 7 3 6B 9 1 4D 12 4 1

Node D

B CA 5 4B 3 2C 4 1

End of 2nd Iteration All nodes knows the best three-hop paths

Page 40: EE 122 :  Shortest Path Routing

Example: End of 3rd Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

A C DA 2 3 6C 5 1 4D 7 2 3

Node B

Node C

A B DA 7 3 5B 9 1 4D 11 4 1

Node D

B CA 5 4B 3 2C 4 1

End of 2nd Iteration: Algorithm

Converges!

Page 41: EE 122 :  Shortest Path Routing

41

Distance Vector: Link Cost Changes

A C14

50

B1

“goodnews travelsfast”

A CA 4 6C 9 1

Node B

A BA 50 5B 54 1

Node C

Link cost changes heretime

Algorithm terminates

loop: 8 wait (until A sees a link cost change to neighbor V9 or until A receives update from neighbor V) /10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */14 DV(A,Y) = DV(A,V) + D(V, Y); 15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

A CA 1 6C 9 1

A BA 50 5B 54 1

A CA 1 6C 9 1

A BA 50 2B 51 1

A CA 1 3C 3 1

A BA 50 2B 51 1

Page 42: EE 122 :  Shortest Path Routing

42

Distance Vector: Count to Infinity Problem

A C14

50

B60

“badnews travelsslowly”

Node B

Node C

Link cost changes here time

loop: 8 wait (until A sees a link cost change to neighbor V9 or until A receives update from neighbor V) /10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */14 DV(A,Y) = DV(A,V) + D(V, Y); 15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

A CA 4 6C 9 1

A BA 50 5B 54 1

A CA 60 6C 9 1

A BA 50 5B 54 1

A CA 60 6C 9 1

A BA 50 7B 101 1

A CA 60 8C 9 1

A BA 50 7B 101 1

Page 43: EE 122 :  Shortest Path Routing

43

Distance Vector: Poisoned Reverse

A C14

50

B60• If B routes through C to get to A:

- B tells C its (B’s) distance to A is infinite (so C won’t route to A via B)

- Will this completely solve count to infinity problem?

Node B

Node C

Link cost changes here; C updates D(C, A) = 60 as B has advertised D(B, A) = ∞

timeAlgorithm terminates

A CA 4 6C 9 1

A BA 50 5B ∞ 1

A CA 60 6C 9 1

A BA 50 5B ∞ 1

A CA 60 6C 9 1

A BA 50 ∞B ∞ 1

A CA 60 51C 9 1

A BA 50 ∞B ∞ 1

A CA 60 51C 9 1

A BA 50 ∞B ∞ 1

Page 44: EE 122 :  Shortest Path Routing

44

Routing Information Protocol (RIP)

Simple distance-vector protocol Nodes send distance vectors every 30 seconds … or, when an update causes a change in routing

Link costs in RIP All links have cost 1 Valid distances of 1 through 15 … with 16 representing infinity Small “infinity” smaller “counting to infinity” problem

RIP is limited to fairly small networks E.g., campus

Page 45: EE 122 :  Shortest Path Routing

45

Link State vs. Distance VectorPer-node message

complexity: LS: O(e) messages

e: number of edges DV: O(d) messages,

many times d is node’s degree

Complexity/Convergence LS: O(N log N)

computation Requires global flooding

DV: convergence time varies Count-to-infinity problem

Robustness: what happens if router malfunctions?

LS: Node can advertise

incorrect link cost Each node computes only

its own table DV:

Node can advertise incorrect path cost

Each node’s table used by others; errors propagate through network

Page 46: EE 122 :  Shortest Path Routing

46

Summary Routing is a distributed algorithm

Different from forwarding React to changes in the topology Compute the shortest paths

Two main shortest-path algorithms Dijkstra link-state routing (e.g., OSPF, IS-IS) Bellman-Ford distance-vector routing (e.g., RIP)

Convergence process Changing from one topology to another Transient periods of inconsistency across routers

Next time: BGP Reading: K&R 4.6.3