14: intro to routing algorithms

36
4: Network Layer 4a-1 14: Intro to Routing Algorithms Last Modified: 06/14/22 11:48 PM

Upload: gala

Post on 13-Jan-2016

64 views

Category:

Documents


1 download

DESCRIPTION

14: Intro to Routing Algorithms. Last Modified: 9/17/2014 8:38:33 AM. Routing. IP Routing – each router is supposed to send each IP datagram one step closer to its destination How do they do that? Static Routing - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 14:  Intro to Routing Algorithms

4: Network Layer 4a-1

14: Intro to Routing Algorithms

Last Modified: 04/21/23 07:46 AM

Page 2: 14:  Intro to Routing Algorithms

4: Network Layer 4a-2

Routing

IP Routing – each router is supposed to send each IP datagram one step closer to its destination

How do they do that? Static Routing

• Hierarchical Routing – in ideal world would that be enough? Well its not an ideal world

Dynamic Routing• Routers communicate amongst themselves to

determine good routes (ICMP redirect is a simple example of this)

• Before we cover specific routing protocols we will cover principles of dynamic routing protocols

Page 3: 14:  Intro to Routing Algorithms

4: Network Layer 4a-3

Routing Algorithm classification: Static or Dynamic?

Choice 1: Static or dynamic?

Static: routes manually defined change slowly over time or only one possible route Appropriate in some circumstances, but obvious

drawbacks (routes added/removed? sharing load?) Not much more to say?

Dynamic: Routes learned by communicating with other routers routes change more quickly

periodic update in response to link cost changes

Page 4: 14:  Intro to Routing Algorithms

4: Network Layer 4a-4

Routing Algorithm classification: Global or decentralized?Choice 2, if dynamic: global or decentralized

information?

Global: all routers have complete topology, link cost info “link state” algorithms

Decentralized: router knows physically-connected neighbors, link

costs to neighbors iterative process of computation, exchange of info

with neighbors (gossip) “distance vector” algorithms

Page 5: 14:  Intro to Routing Algorithms

4: Network Layer 4a-5

Roadmap

Details of Link State Details of Distance Vector Comparison

Page 6: 14:  Intro to Routing Algorithms

4: Network Layer 4a-6

Routing

Graph abstraction for routing algorithms:

graph nodes are routers

graph edges are physical links link cost: delay, $

cost, or congestion level

Goal: determine “good” path

(sequence of routers) thru network from source to

dest.

Routing protocol

A

ED

CB

F

2

2

13

1

1

2

53

5

“good” path: typically means

minimum cost path other definitions

possible

Page 7: 14:  Intro to Routing Algorithms

4: Network Layer 4a-7

Global Dynamic Routing

A

ED

CB

F

2

2

13

1

1

2

53

5

See the big picture; Find the best Route

What algorithm do you use?

Page 8: 14:  Intro to Routing Algorithms

4: Network Layer 4a-8

A Link-State Routing Algorithm

Dijkstra’s algorithm Know complete network topology with link

costs for each link is known to all nodes accomplished via “link state broadcast” In theory, all nodes have same info

Based on info from all other nodes, each node individually computes least cost paths from one node (“source”) to all other nodes gives routing table for that node

iterative: after k iterations, know least cost path to k dest.’s

Page 9: 14:  Intro to Routing Algorithms

4: Network Layer 4a-9

Link State Algorithm: Some Notation

Notation:c(i,j): link cost from node i to j. cost

infinite if not direct neighborsD(v): current value of cost of path from

source to dest. Vn(v): next hop from this source to v

along the least cost pathN: set of nodes whose least cost path

definitively known

Page 10: 14:  Intro to Routing Algorithms

4: Network Layer 4a-10

Dijsktra’s Algorithm

1 Initialization – know c(I,j) to start: 2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v) 6 else D(v) = infty 7 8 Loop 9 find w not in N such that D(w) is a minimum (optional?) 10 add w to N 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N

Page 11: 14:  Intro to Routing Algorithms

4: Network Layer 4a-11

Dijkstra’s algorithm: example

Step012345

start NA

ADADE

ADEBADEBC

ADEBCF

D(B),n(B)2,B2,B2,B

D(C),n(C)5,C4,D3,D3,D

D(D),n(D)1,A

D(E),n(E)infinity

2,D

D(F),n(F)infinityinfinity

4,D4,D4,D

A

ED

CB

F

2

2

13

1

1

2

53

5

Page 12: 14:  Intro to Routing Algorithms

4: Network Layer 4a-12

Dijkstra’s Algorithm gives routing table

A

A

B

C

D

E

F

n(A) = A

n(B) = B

n (C)= D

n(D) = D

n(E) = D

n(F) = D

Outgoing Link

dest

inat

ion

Page 13: 14:  Intro to Routing Algorithms

4: Network Layer 4a-13

Complexity of Link StateAlgorithm complexity: n nodes each iteration

Find next w not in N such that D(w) is a minimum Then for that w, check its best path to other

destinations => n*(n+1)/2 comparisons: O(n2)

more efficient implementations possible using a heap: O(nlogn)

Page 14: 14:  Intro to Routing Algorithms

4: Network Layer 4a-14

Distance Vector Routing Algorithm

distributed: each node communicates only with

directly-attached neighbors

iterative: continues until no nodes exchange info. self-terminating: no “signal” to stop

asynchronous: nodes need not exchange info/iterate in

lock step!

Page 15: 14:  Intro to Routing Algorithms

4: Network Layer 4a-15

Distance Vector Routing Algorithm

Distance Table data structure each node has its own row for

each possible destination column for each directly-

attached neighbor to node example: in node X, for dest. Y

via neighbor Z:

D (Y,Z)X

distance from X toY, via Z as next hop

c(X,Z) + min {D (Y,w)}Z

w

=

=

D ()

Y

Z

Dx(Y,Z)

Xcost to destination via

dest

inat

ion

Column only for each neighbor

Rows for each possible dest !

Page 16: 14:  Intro to Routing Algorithms

4: Network Layer 4a-16

Example: Distance Table for E

A

E D

CB7

8

1

2

1

2

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

Ecost to destination via

dest

inat

ion

D (C,D)E

c(E,D) + min {D (C,w)}D

w== 2+2 = 4

D (A,D)E

c(E,D) + min {D (A,w)}D

w== 2+3 = 5 Loop back through E!

D (A,B)E

c(E,B) + min {D (A,w)}B

w== 8+6 = 14 Loop back through E!

Column only for each neighbor

Rows for each possible dest !

D (row, col)E

Page 17: 14:  Intro to Routing Algorithms

4: Network Layer 4a-17

Distance table gives routing table

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

Ecost to destination via

dest

inat

ion

A

B

C

D

A,1

D,5

D,4

D,2

Outgoing link to use, cost

dest

inat

ion

Distance table Routing table

= least cost

Page 18: 14:  Intro to Routing Algorithms

4: Network Layer 4a-18

Distance Vector Routing: overview

Iterative, asynchronous: each local iteration caused by:

local link cost change message from neighbor:

its least cost path change from neighbor

Distributed: each node notifies

neighbors only when its least cost path to any destination changes neighbors then notify

their neighbors if necessary

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

recompute distance table

if least cost path to any dest

has changed, notify neighbors

Each node:

Page 19: 14:  Intro to Routing Algorithms

4: Network Layer 4a-19

Distance Vector Algorithm:

1 Initialization (don’t start knowing link costs for all links in graph): 2 for all adjacent nodes v: 3 D (*,v) = infty /* the * operator means "for all rows" */ 4 D (v,v) = c(X,v) 5 for all destinations, y 6 send min D (y,w) to each neighbor /* w over all X's neighbors */

XX

Xw

At all nodes, X:

Then in steady state…

Page 20: 14:  Intro to Routing Algorithms

4: Network Layer 4a-20

Distance Vector Algorithm (cont.):8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever

w

XX

XX

X

w

w

Page 21: 14:  Intro to Routing Algorithms

Network Layer 4-21

x y z

xyz

0 2 7

∞ ∞ ∞∞ ∞ ∞

from

cost to

from

from

x y z

xyz

0

from

cost to

x y z

xyz

∞ ∞

∞ ∞ ∞

cost to

x y z

xyz

∞ ∞ ∞7 1 0

cost to

∞2 0 1

∞ ∞ ∞

2 0 17 1 0

time

x z12

7

y

node x table

node y table

node z table

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2

Dx(z) = min{c(x,y) +

Dy(z), c(x,z) + Dz(z)}

= min{2+1 , 7+0} = 3

32

To start just know directly connected links…tell neighbors

X hears news from Y and Z

Page 22: 14:  Intro to Routing Algorithms

Network Layer 4-22

x y z

xyz

0 2 7

∞ ∞ ∞∞ ∞ ∞

from

cost to

from

from

x y z

xyz

0 2 3

from

cost tox y z

xyz

0 2 3

from

cost to

x y z

xyz

∞ ∞

∞ ∞ ∞

cost tox y z

xyz

0 2 7

from

cost to

x y z

xyz

0 2 3

from

cost to

x y z

xyz

0 2 3

from

cost tox y z

xyz

0 2 7

from

cost to

x y z

xyz

∞ ∞ ∞7 1 0

cost to

∞2 0 1

∞ ∞ ∞

2 0 17 1 0

2 0 17 1 0

2 0 13 1 0

2 0 13 1 0

2 0 1

3 1 0

2 0 1

3 1 0

time

x z12

7

y

node x table

node y table

node z table

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2

Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3

In steady state, when have good news tell neighbor

Page 23: 14:  Intro to Routing Algorithms

4: Network Layer 4a-23

Distance Vector: link cost changes

Link cost changes: node detects local link cost

change updates distance table (line 15) if cost change in least cost path,

notify neighbors (lines 23,24)

X Z14

50

Y1

algorithmterminates“good

news travelsfast”

Anyone seea problem?

Page 24: 14:  Intro to Routing Algorithms

4: Network Layer 4a-24

Distance Vector: link cost changes

Link cost changes: good news travels fast bad news travels slow -

“count to infinity” problem!

X Z14

50

Y60

algorithmcontinues

on!

Page 25: 14:  Intro to Routing Algorithms

4: Network Layer 4a-25

Distance Vector: poisoned reverseIf Z routes through Y to get to X : Originally, Z tells Y its (Z’s) distance

to X is infinite (so Y won’t route to X via Z)

In end, Y tells Z infinity will this completely solve count to

infinity problem?

X Z14

50

Y60

algorithmterminates

Page 26: 14:  Intro to Routing Algorithms

4: Network Layer 4a-26

Bigger Loops and Poison Reverse

A

E D

CB7

8

1

2

1

2

D (A,D)E

c(E,D) + min {D (A,w)}D

w=

= 2+2 +1 = 5

D (A,B)E

c(E,B) + min {D (A,w)}B

w== 8+6 = 14

Loop back through E! Poison reverse will fix thisD tells E infinity because D’s route to A through E

Loop back through E! Poison reverse will not fix thisB’s route to A is through E but B doesn’t know that

so does not tell E infinityB’s route is through C so no poison reverse

E will try to send through B

A

E D

CB7

8

50

2

1

2

Page 27: 14:  Intro to Routing Algorithms

4: Network Layer 4a-27

Count to Infinity Example with Bigger Loop

B will learn bad news C will have told B infinity because its route to A

is through B, so B won’t reroute through CE however will have told B about a good route

to A through D (cost 6)B will choose that route instead and advertise it as the new best to C (cost 6+8 = 14); it will be worse than the old one it advertised to C (old

cost = 1)C will propagate this updated “best” route to D

(cost 15)D will propagate this new “best” route to E

(cost 17)E will update the “best” route to B (cost 19)

Last time it advertised cost 6 to BIt will loop around adding 13 each time (cost of

loop)Will continue until cost E advertises to B is

bigger than 500

A

E D

CB500

8

2

1

2

A

E D

CB1

8

2

1

2

Page 28: 14:  Intro to Routing Algorithms

4: Network Layer 4a-28

Comparison of LS and DV algorithms

Message complexity LS: nodes send info on

directly connections to all other nodes More, smaller messages

DV: nodes send info on best paths to all destinations to neighbors Fewer, larger messages

Speed of Convergence LS: O(n2) algorithm DV: convergence time

varies may be routing loops 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: DV node can advertise

incorrect path cost each node’s table used

by others • error propagate thru

network

Page 29: 14:  Intro to Routing Algorithms

4: Network Layer 4a-29

Oscillations Assume:

Link cost = amount of carried traffic Link cost is not symmetric B and D sending 1 unit of traffic; C send e units of traffic

Initially start with slightly unbalanced routes Everyone goes with least loaded, making them most loaded for

next time, so everyone switches Herding effect! Can happen with any routing protocol that uses dynamic load

info

A

D

C

B1 1+e

e0

e

1 1

0 0

A

D

C

B2+e 0

001+e1

A

D

C

B0 2+e

1+e10 0

A

D

C

B2+e 0

e01+e1

Initially start withalmost equal routes

… B and C go clockwise to A

… B, C and D gocounterclockwise

… B,C,D go clockwise

Page 30: 14:  Intro to Routing Algorithms

4: Network Layer 4a-30

Preventing Oscillations

Avoid link costs based on experienced load But want to be able to route around heavily

loaded links… Avoid “herding” effect

Avoid all routers recomputing at the same time Not enough to start them computing at a

different time because will synchronize over time as send updates

Deliberately introduce randomization into time between when receive an update and when compute a new route

Page 31: 14:  Intro to Routing Algorithms

4: Network Layer 4a-31

Outtakes

Page 32: 14:  Intro to Routing Algorithms

4: Network Layer 4a-32

Distance Vector Algorithm: example

X Z12

7

Y

D (Z,Y)X

c(X,Y) + min {D (Z,w)}w=

= 2+1 = 3

Y

To start just know directly connected links…tell neighbors

D (Y,Z)X

c(X,Z) + min {D (Y,w)}w=

= 7+1 = 8

Z

X hears news from Y and Z

Page 33: 14:  Intro to Routing Algorithms

4: Network Layer 4a-33

Distance Vector Algorithm: example

X Z12

7

Y

In steady state, when have good news tell neighbor

Page 34: 14:  Intro to Routing Algorithms

4: Network Layer 4a-34

In distance vector algorithms, the installation of a looping route slows down the convergence of the algorithm. Virtually all of the modifications that have been made to distance vector routing since 1969 (e.g., split horizon, poison reverse, etc., etc.) have the same goal, to reduce the number of looping routes that are installed, and hence to decrease the convergence time.

In link state algorithms, the convergence time is completely unaffected by the installation of looping routes. Hence you don't usually see loop- suppression techniques being combined with link state routing. While forwarding loops are possible during the transients, these are not regarded as much of a problem. It is possible to combine loop-suppression techniques with link state routing, it just has never been regarded as worth the trouble.

With either kind of routing algorithm, TTL is used as a loop detection procedure in order to catch the case where something goes wrong.

Page 35: 14:  Intro to Routing Algorithms

4: Network Layer 4a-35

DUAL

Loop-free routing algorithm that performs a “diffused” computation of a routing table

Researched and developed at SRI International by Dr. J.J. Garcia-Luna-Aceves

No need for route hold down http://www.cisco.com/univercd/cc/td/doc/cisintwk

/ito_doc/en_igrp.htm Enhanced IGRP integrates the capabilities of link-

state protocols into distance vector protocols DUAL enables EIGRP routers to determine

whether a path advertised by a neighbor is looped or loop-free, and allows a router running EIGRP to find alternate paths without waiting on updates from other routers

Page 36: 14:  Intro to Routing Algorithms

4: Network Layer 4a-36

J.J. Garcia-Luna-Aceves. Loop-Free Routing Using Diffusing Computations. IEEE/ACM Trans. Networking, 1:130--141, February 1993.