Week 6 Routing Concepts

1 / 40

# Week 6 Routing Concepts - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Week 6 Routing Concepts' - danyl

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Week 6Routing 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

call setup: some network architectures require router call setup along path before data flows

network

physical

network

physical

network

physical

network

physical

network

physical

network

physical

network

physical

network

physical

application

transport

network

physical

application

transport

network

physical

Network Layer Functions

routing algorithm

local forwarding table

0100

0101

0111

1001

3

2

2

1

value in arriving

1

0111

2

3

Interplay between routing and forwarding

5

3

5

2

2

1

3

1

2

1

x

z

w

u

y

v

Graph abstraction

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) }

Remark: Graph abstraction is useful in other network contexts

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

5

3

5

2

2

1

3

1

2

1

x

z

w

u

y

v

Graph abstraction: costs
• 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

Graph abstraction for routing algorithms:

graph nodes are routers

link cost: delay, \$ cost, or congestion level

5

3

5

2

2

1

3

1

2

1

A

D

E

B

F

C

Routing protocol

Routing

Goal: determine “good” path

(sequence of routers) thru

network from source to dest.

• “good” path:
• typically means minimum cost path
• other definitions possible
Global or decentralized information?

Global:

all routers have complete topology, link cost info

Decentralized:

router knows physically-connected neighbors, link costs to neighbors

iterative 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

Routing Algorithm Classification
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 own

row for each possible destination

column for each directly-attached neighbor to node

example: in node X, for dest. Y via neighbor Z:

distance from X to

Y, via Z as next hop

X

=

D (Y,Z)

Z

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

=

w

cost to destination via

E

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

1

7

2

8

1

destination

2

A

D

E

B

C

E

E

E

D (C,D)

D (A,D)

D (A,B)

B

D

D

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

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

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

=

=

=

w

w

w

=

=

=

2+3 = 5

8+6 = 14

2+2 = 4

Distance Table: Example

loop!

loop!

cost to destination via

E

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

destination

Distance table gives routing table

to use, cost

A

B

C

D

A,1

D,5

D,4

D,4

destination

Routing table

Distance table

Iterative, asynchronous: each local iteration caused by:

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

Distance Vector Routing: Overview

Each node:

Distance Vector Algorithm

At all nodes, X:

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 */

X

X

X

w

Distance Vector Algorithm (cont.):

8 loop

9 wait (until I see a link cost change to 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

X

X

w

X

2

1

7

Y

Z

X

X

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

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

D (Y,Z)

D (Z,Y)

=

=

w

w

=

=

7+1 = 8

2+1 = 3

X

Z

Y

Distance Vector Algorithm: example

1

4

1

50

X

Z

Y

• node detects local link cost change
• updates distance table (line 15)
• if cost change in least cost path, notify neighbors (lines 23,24)

algorithm

terminates

“good

news

travels

fast”

60

4

1

50

X

Z

Y

• good news travels fast
• bad news travels slow - “count to infinity” problem!

algorithm

continues

on!

R3

R2

R1

D

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 cases
• Example

The count-to-infinity problem still exists

60

4

1

50

X

Z

Y

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?

algorithm

terminates

• Each router is responsible for meeting its neighbours and learning their names
• Each 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 router
• Each router armed now with a complete map of the topology, computes routes to each destination.
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
Sequence number/age Schemes
• A sequence number is a counter
• Each 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 number
• When 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?
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.
Dijkstra’s algorithm

net topology, link costs known to all nodes

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

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

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

5

3

5

2

2

1

3

1

2

1

A

D

E

B

F

C

Dijkstra’s algorithm: example

D(B),p(B)

2,A

2,A

2,A

D(D),p(D)

1,A

D(C),p(C)

5,A

4,D

3,E

3,E

D(E),p(E)

infinity

2,D

Step

0

1

2

3

4

5

start N

A

D(F),p(F)

infinity

infinity

4,E

4,E

4,E

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

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

5

3

5

2

2

1

3

1

2

1

A

D

E

B

F

C

Dijkstra’s algorithm -- Widest Path

D(B),p(B)

2,A

3,C

3,C

D(D),p(D)

1,A

3,C

3,C

3,C

D(C),p(C)

5,A

D(E),p(E)

0

1,C

2,F

2,F

2,F

Step

0

1

2

3

4

5

start N

A

AC

ACF

ACFB

ACFBD

ACFBDE

D(F),p(F)

0

5,C

Algorithm complexity: n nodes

each iteration: need to check all nodes, w, not in N

n*(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

A

A

A

D

D

D

D

B

B

B

B

C

C

C

C

2+e

2+e

0

0

1

1

1+e

1+e

0

e

0

0

Dijkstra’s algorithm, Discussion

1

1+e

0

2+e

0

0

0

0

e

0

1

1+e

1

1

e

… recompute

… recompute

routing

… recompute

initially

Message complexity and memory

LS: with n nodes, E links, O(nE) messages sent each, larger tables

DV: exchange between neighbors only

convergence time varies, smaller distance tables

Speed of Convergence

LS: O(n^2) algorithm requires O(nE) messages

may have oscillations

DV: 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:

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

Comparison of LS and DV algorithms
• 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)
• If costs are equal then traffic can be split amongst equal-cost paths; splitting otherwise may lead to routing loops
• Applicable to both LS and DV
• However, 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
scale: with 200 million destinations:

can’t store all dest’s in routing tables!

routing table exchange would swamp links!

internet = network of networks

each network admin may want to control routing in its own network

Hierarchical Routing

Our routing study thus far - idealization

• all routers identical
• network “flat”

… not true in practice

routers in same AS run same routing protocol

“intra-AS” routing protocol

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

Gateway router

Direct link to router in another AS

Hierarchical Routing
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

3a

3b

2a

AS3

AS2

1a

2c

AS1

2b

3c

1b

1d

1c

Inter-AS

Routing

algorithm

Intra-AS

Routing

algorithm

Forwarding

table

Interconnected ASes

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

AS1 needs:

to learn which dests are reachable through AS2 and which through AS3

to propagate this reachability info to all routers in AS1

Job of inter-AS routing!

3a

3b

2a

AS3

AS2

1a

AS1

2c

2b

3c

1b

1d

1c

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).

Determine from

forwarding table the

to least-cost gateway.

Enter (x,I) in

forwarding table

Use routing info

from intra-AS

protocol to determine

costs of least-cost

paths to each

of the gateways

Learn from inter-AS

protocol that subnet

x is reachable via

multiple gateways

Hot potato routing:

Choose the gateway

that has the

smallest least cost

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.
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)