40
1 Week 6 Routing Concepts

Week 6 Routing Concepts

  • Upload
    danyl

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Week 6 Routing Concepts. transport packet from sending to receiving hosts network layer protocols in every host, router path determination: route taken by packets from source to dest. Routing algorithms switching: move packets from router’s input to appropriate router output - PowerPoint PPT Presentation

Citation preview

Page 1: Week 6 Routing Concepts

1

Week 6Routing Concepts

Page 2: Week 6 Routing Concepts

2

Network Layer Functionstransport packet from sending to receiving hosts network layer protocols in every host, router

path determination: route taken by packets from source to dest. Routing algorithmsswitching: move packets from router’s input to appropriate router outputcall setup: some network architectures require router call setup along path before data flows

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

Page 3: Week 6 Routing Concepts

3

1

23

0111

value in arrivingpacket’s header

routing algorithm

local forwarding tableheader value output link

0100010101111001

3221

Interplay between routing and forwarding

Page 4: Week 6 Routing Concepts

4

u

yx

wv

z2

2

13

1

1

2

53

5

Graph: G = (N,E)

N = set of routers = { u, v, w, x, y, z }

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Graph abstraction

Remark: Graph abstraction is useful in other network contexts

Example: P2P, where N is set of peers and E is set of TCP connections

Page 5: Week 6 Routing Concepts

5

Graph abstraction: costs

u

yx

wv

z2

2

13

1

1

2

53

5 • c(x,x’) = cost of link (x,x’)

- e.g., c(w,z) = 5

• cost could always be 1, or inversely related to bandwidth,or inversely related to congestion

Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

Question: What’s the least-cost path between u and z ?

Routing algorithm: algorithm that finds least-cost path

Page 6: Week 6 Routing Concepts

6

Routing

Graph abstraction for routing algorithms:graph nodes are routersgraph 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: Week 6 Routing Concepts

7

Routing Algorithm Classification

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 neighborsiterative process of computation, exchange of info with neighbors“distance vector” algorithms

Static or dynamic?Static:

routes change slowly over time

Dynamic: routes change more quickly

• periodic update• in response to link cost

changes

Page 8: Week 6 Routing Concepts

8

Distance Vector Routing Algorithm (Old Arpanet Routing or Bellman-Ford)

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

asynchronous:nodes need not exchange info/iterate in lock step!

distributed:each node communicates only with directly-attached neighbors

Distance Table data structure each node has its ownrow for each possible destinationcolumn for each directly-attached neighbor to nodeexample: 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

=

=

Page 9: Week 6 Routing Concepts

9

Distance Table: Example

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

D (A,B)E

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

w== 8+6 = 14

loop!

loop!

Page 10: Week 6 Routing Concepts

10

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,4

Outgoing link to use, cost

dest

inat

ion

Distance table Routing table

Page 11: Week 6 Routing Concepts

11

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 or message from neighbor)

Recompute distance table

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

Each node:

Page 12: Week 6 Routing Concepts

12

Distance Vector Algorithm

1 Initialization: 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:

Page 13: Week 6 Routing Concepts

13

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 w D X (Y,w) for any destination Y 24 send new value of min w D X (Y,w) to all neighbors 25 26 forever

w

XX

X

Page 14: Week 6 Routing Concepts

14

Distance Vector Algorithm: example

X Z12

7

Y

Page 15: Week 6 Routing Concepts

15

Distance Vector Algorithm: example

X Z12

7

Y

D (Y,Z)X

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

= 7+1 = 8

Z

D (Z,Y)X

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

= 2+1 = 3

Y

Page 16: Week 6 Routing Concepts

16

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”

Page 17: Week 6 Routing Concepts

17

Distance Vector: link cost changes

Link cost changes:good news travels fast bad news travels slow - “count to infinity” problem! X Z

14

50

Y60

algorithmcontinues

on!

Page 18: Week 6 Routing Concepts

18

What to do -- Split Horizon

If router R forwards traffic for destination D thru neighbor N, then R reports to N that R’s distance to D is infinity.Because R is routing traffic for D thru N, R’s real distance to N cannot simply matter to N.Works in the previous case but does not work in some casesExample

R2

R1

R3

D

The count-to-infinity problem still exists

Page 19: Week 6 Routing Concepts

19

Distance Vector: Poison Reverse

If Z routes through Y to get to X :Z tells Y its (Z’s) distance to X is infinite (so Y won’t route to X via Z)will this completely solve count to infinity problem?

X Z14

50

Y60

algorithmterminates

Page 20: Week 6 Routing Concepts

20

Link State Routing

Each router is responsible for meeting its neighbours and learning their namesEach router constructs a packet known as link state packet, or LSP, which contains a list of names of and cost to each of its neighbours

• A router generates an LSP periodically as well as when R discovers that

it has a new neighbour the cost of a link to a neighbour has changed a link to a neighbour has gone down

The LSP is somehow transmitted (this is the most complex and critical piece) to all other routers and each router stores the most recently generated LSP from each other routerEach router armed now with a complete map of the topology, computes routes to each destination.

Page 21: Week 6 Routing Concepts

21

Disseminating the LSP to all Routers

A simple scheme for routing that does not depend having any routing info is flooding, in which each packet received is transmitted to each neighbour except the one from which the packet is received. Also let the packet have a hop count.A better and simple LSP distribution scheme is as follows:

• If an LSP is received from neighbour N with source S and if the LSP is identical to the one from S that is stored, then ignore the received LSP (it is a duplicate)

• If the received LSP is not identical to the one from S currently stored or no LSP from S is stored, store the received LSP and transmit it to all neighbours

• The problem is that router cannot assume that the LSP most recently received from S is the one most recently generated.

• Use sequence number/age schemes

Page 22: Week 6 Routing Concepts

22

Sequence number/age Schemes

A sequence number is a counterEach router S keeps track of the sequence number it used the last time it generated an LSP; when S needs to generate a new LSP, it uses the next sequence numberWhen router R receives an LSP from from S, router R compares sequence number of the received LSP with the one from S stored in memory and assumes that the the one with the higher sequence number is the more recently generated.Problem 1. Sequence number field is of finite size

• Wrap around, count as 0,1,…,n-1,n,0,1,…• How would you compare two sequence numbers a and b

in this framework?

Page 23: Week 6 Routing Concepts

23

Sequence number/age schemes

a

n-1n 0 1

< a

> a

Page 24: Week 6 Routing Concepts

24

Sequence number/age schemes

What happens if router S goes down and forgets the sequence number it was using? If it starts at 0 again, will its LSPs be believed by the network, or will they look older than the LSPs that S had issued before?To solve this problem, a second field, known as the age of the LSP is added to each LSP packet.It starts at some value and is decremented by routers as it is held in memory.When an LSP’s age reaches 0, the LSP can be considered too old, and an LSP with a nonzero age is accepted as newer regardless of its sequence number.LSP distribution scheme intelligently uses age and sequence number for dissemination of LSPs; used in IS-IS, OSPF, and PNNI.

Page 25: Week 6 Routing Concepts

25

A Link-State Routing Algorithm

Dijkstra’s algorithmnet topology, link costs known to all nodes

• accomplished via “link state broadcast”

• all nodes have same info

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

Notation: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 dest. v

p(v): predecessor node along path from source to v, that is next v

N: set of nodes whose least cost path definitively known

Page 26: Week 6 Routing Concepts

26

Dijsktra’s Algorithm -- Shortest Path

1 Initialization: 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 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 27: Week 6 Routing Concepts

27

Dijkstra’s algorithm: example

Step012345

start NA

ADADE

ADEBADEBC

ADEBCF

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

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

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

D(E),p(E)infinity

2,D

D(F),p(F)infinityinfinity

4,E4,E4,E

A

ED

CB

F

2

2

13

1

1

2

53

5

Page 28: Week 6 Routing Concepts

28

Dijsktra’s Algorithm -- Widest Path

1 Initialization: 2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = b(A,v) /* b(A,v) is the available bandwidth*/6 else D(v) = 0 7 8 Loop 9 find w not in N such that D(w) is a maximum 10 add w to N 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = max[ D(v), min(D(w),b(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 29: Week 6 Routing Concepts

29

Dijkstra’s algorithm -- Widest Path

Step012345

start NA

ACACF

ACFBACFBD

ACFBDE

D(B),p(B)2,A3,C3,C

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

D(D),p(D)

1,A3,C3,C3,C

D(E),p(E)0

1,C2,F2,F2,F

D(F),p(F)0

5,C

A

ED

CB

F

2

2

13

1

1

2

53

5

Page 30: Week 6 Routing Concepts

30

Dijkstra’s algorithm, Discussion

Algorithm complexity: n nodeseach iteration: need to check all nodes, w, not in Nn*(n+1)/2 comparisons: O(n^2)more efficient implementations possible: O(n logn)

Oscillations possible:e.g., link cost = amount of carried traffic

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… recompute

routing… recompute … recompute

Page 31: Week 6 Routing Concepts

31

Comparison of LS and DV algorithmsMessage complexity and memory

LS: with n nodes, E links, O(nE) messages sent each, larger tablesDV: exchange between neighbors only

• convergence time varies, smaller distance tables

Speed of ConvergenceLS: O(n^2) algorithm requires O(nE) messages

• may have oscillationsDV: convergence time varies

• may have routing loops• count-to-infinity problem

link state routing converges more quickly than distance vector

• a router cannot pass routing information on until it has computed its distance vector

• looping

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 32: Week 6 Routing Concepts

32

Link Costs

Whether link costs are fixed or they vary with the utilization of the link?Proponents of variable costs:

• traffic is routed more optimally• having costs assigned by network management requires

additional configuration

Proponents of fixed link costs:• routing info needs to be generated only if the link goes

down or recovers• if link costs change frequently, the network is often in an

unconverged state, not making good routing decisions• stability

There are recent studies that find link costs in the networks so as to maximize the total traffic through the network (traffic matrix should be known)

Page 33: Week 6 Routing Concepts

33

Load Splitting

If costs are equal then traffic can be split amongst equal-cost paths; splitting otherwise may lead to routing loopsApplicable to both LS and DVHowever, this annoys the transport layer

• Out of order packets• Transport layer requires a uniform service for RTT and

MTU calculations

Flow-level splitting• Packets of the same flow would follow the same path• The router, if it has two equal cost paths, can do a hash

of (source IP, dest. IP, source port, dest. port) to select which path the packet should take

Page 34: Week 6 Routing Concepts

34

Hierarchical Routing

scale: with 200 million destinations:can’t store all dest’s in routing tables!

routing table exchange would swamp links!

administrative autonomyinternet = network of networkseach network admin may want to control routing in its own network

Our routing study thus far - idealization all routers identicalnetwork “flat”

… not true in practice

Page 35: Week 6 Routing Concepts

35

Hierarchical Routing

aggregate routers into regions, “autonomous systems” (AS)routers in same AS run same routing protocol

• “intra-AS” routing protocol

• routers in different AS can run different intra-AS routing protocol

Gateway routerDirect link to router in another AS

Page 36: Week 6 Routing Concepts

36

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

Intra-ASRouting algorithm

Inter-ASRouting algorithm

Forwardingtable

3c

Interconnected ASes

Forwarding table is configured by both intra- and inter-AS routing algorithm

• Intra-AS sets entries for internal dests

• Inter-AS & Intra-As sets entries for external dests

Page 37: Week 6 Routing Concepts

37

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

3c

Inter-AS tasks

Suppose router in AS1 receives datagram for which dest is outside of AS1

• Router should forward packet towards on of the gateway routers, but which one?

AS1 needs:1. to learn which dests are

reachable through AS2 and which through AS3

2. to propagate this reachability info to all routers in AS1

Job of inter-AS routing!

Page 38: Week 6 Routing Concepts

38

Example: Setting forwarding table in router 1d

Suppose AS1 learns from the inter-AS protocol that subnet x is reachable from AS3 (gateway 1c) but not from AS2.Inter-AS protocol propagates reachability info to all internal routers.Router 1d determines from intra-AS routing info that its interface I is on the least cost path to 1c.Puts in forwarding table entry (x,I).

Page 39: Week 6 Routing Concepts

39

Learn from inter-AS protocol that subnet x is reachable via multiple gateways

Use routing infofrom intra-AS

protocol to determine

costs of least-cost paths to each

of the gateways

Hot potato routing:Choose the

gatewaythat has the

smallest least cost

Determine fromforwarding table the interface I that leads

to least-cost gateway. Enter (x,I) in

forwarding table

Example: Choosing among multiple ASes

Now suppose AS1 learns from the inter-AS protocol that subnet x is reachable from AS3 and from AS2.To configure forwarding table, router 1d must determine towards which gateway it should forward packets for dest x. This is also the job on inter-AS routing protocol!Hot potato routing: send packet towards closest of two routers.

Page 40: Week 6 Routing Concepts

40

Intra-AS Routing

Also known as Interior Gateway Protocols (IGP)Most common Intra-AS routing protocols:

• RIP: Routing Information Protocol

• OSPF: Open Shortest Path First

• IGRP: Interior Gateway Routing Protocol (Cisco proprietary)