fundamentals of computer networks ece 478/578 lecture #16: routing instructor: loukas lazos dept of...

40
Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Post on 20-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Fundamentals of Computer NetworksECE 478/578

Lecture #16: RoutingInstructor: Loukas Lazos

Dept of Electrical and Computer EngineeringUniversity of Arizona

Page 2: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

What is Routing?Construct directions from starting point to destination

2

Page 3: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

3

Forwarding vs. RoutingForwarding: data plane

Directing a data packet to an outgoing linkIndividual router using a forwarding table

Routing: control planeComputing paths the packets will followRouters talking amongst themselvesIndividual router creating a forwarding table

Page 4: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

4

Why Does Routing Matter?End-to-end performance

Quality of the path affects user performancePropagation delay, throughput, and packet loss

Use of network resourcesBalance of the traffic over the routers and linksAvoiding congestion by directing traffic to lightly-loaded links

Transient disruptions during changesFailures, maintenance, and load balancingLimiting packet loss and delay during changes

Page 5: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Different Types of RoutingRouting in a GPS device

Routing in computer networksShortest pathSmallest delayHighest reliabilityAvoid congested nodes

5

Page 6: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Routing as a Graph ProblemNetwork is mapped into a graph G(V,E), where each link has an associated cost

Cost: delay, financial cost, probability of failure, etc.

6

Page 7: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distance Vector AlgorithmConstruct a one-dimensional array (vector) of distances to all other nodesExchange info with immediate neighborsUpdate distances based on received informationStop sending updates as soon as no change occursExample: Assume unit cost for each link

7

Page 8: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distance Vector – Global ViewGlobal view of the network

8

A B C D E F G

A 0 1 1 1 1

B 1 0 1

C 1 1 0 1

D 1 0 1

E 1 0

F 1 0 1

G 1 1 0

Page 9: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distance Vector – Local ViewDest Cost Next

Hop

B 1 B

C 1 C

D –

E 1 E

F 1 F

G –

9

Dest Cost Next Hop

A 1 A

C 1 C

D –

E –

F –

G –

Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E –

F –

G –

Dest Cost Next Hop

A –

B –

C 1 C

E –

F –

G 1 G

Dest Cost Next Hop

A 1 A

B –

C –

D –

F –

G –

Dest Cost Next Hop

A 1 A

B –

C –

D –

E –

G 1 G

Dest Cost Next Hop

A –

B –

C –

D 1 D

E –

F 1 F

Page 10: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distance Vector – 1st UpdateDest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G 2 F

10

Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G –

Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

Dest Cost Next Hop

A 2 C

B 2 C

C 1 C

E –

F 2 G

G 1 G

Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D –

F 2 A

G –

Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 2 G

E 2 E

G 1 G

Dest Cost Next Hop

A 2 F

B –

C 2 D

D 1 D

E –

F 1 F

Page 11: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distance Vector – 2nd UpdateDest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G 2 F

11

Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G 3 C

Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

Dest Cost Next Hop

A 2 C

B 2 C

C 1 C

E 3 C

F 2 G

G 1 G

Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 3 A

F 2 A

G 3 A

Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 2 G

E 2 E

G 1 G

Dest Cost Next Hop

A 2 F

B 3 D

C 2 D

D 1 D

E 3 F

F 1 F

Page 12: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Failure of F – G Link

12

Page 13: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Failure of F – G Link Step 1A/Dest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G 2 F

13

B/Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G 3 C

C/Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

D/Dest Cost Next Hop

A 2 C

B 2 C

C 1 C

E 3 C

F 2 G

G 1 G

E/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 3 A

F 2 A

G 3 A

F/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D –

E 2 E

G –

G/Dest Cost Next Hop

A –

B 3 D

C 2 D

D 1 D

E –

F –

Page 14: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Failure of F – G Link Step 2A/Dest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G –

14

B/Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G 3 C

C/Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

D/Dest Cost Next Hop

A 1 A

B 2 C

C 1 C

E 3 C

F –

G 1 G

E/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 3 A

F 2 A

G –

F/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D –

E 2 E

G –

G/Dest Cost Next Hop

A –

B 3 D

C 2 D

D 1 D

E –

F –

Page 15: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Failure of F – G Link Step 3A/Dest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G 3 C

15

B/Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G 3 C

C/Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

D/Dest Cost Next Hop

A 2 C

B 2 C

C 1 C

E 3 C

F 3 C

G 1 G

E/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 3 A

F 2 A

G –

F/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 4 A

E 2 E

G –

G/Dest Cost Next Hop

A 3 D

B 3 D

C 2 D

D 1 D

E 4 D

F –

Page 16: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Failure of F – G Link Step 4A/Dest Cost Next

Hop

B 1 B

C 1 C

D 2 C

E 1 E

F 1 F

G 3 C

16

B/Dest Cost Next Hop

A 1 A

C 1 C

D 2 C

E 2 A

F 2 A

G 3 C

C/Dest Cost Next Hop

A 1 A

B 1 B

D 1 D

E 2 A

F 2 A

G 2 G

D/Dest Cost Next Hop

A 2 C

B 2 C

C 1 C

E 3 C

F 3 C

G 1 G

E/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 3 A

F 2 A

G 4 A

F/Dest Cost Next Hop

A 1 A

B 2 A

C 2 A

D 4 C

E 2 E

G 4 A

G/Dest Cost Next Hop

A 3 D

B 3 D

C 2 D

D 1 D

E 3 F

F 4 D

Page 17: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

A advertises a distance of infty to E and updates its neighborsC advertises a distance of 2 to E via AB advertises a distance of 3 to E via CA updates its table and advertises a distance of 4 via BC updates its table and advertises a distance of 5 via A…

Count-to-Infinity Problem

17

Page 18: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Solutions for Count-to-Infinity Problem Sol A: Use a maximum hop count instead of infinity

Sol B: Split HorizonDo not send updates on the neighbor that provided the info for a particular route. E.g.: B does not send an update for E to A, since it learned about E from A

Sol C: Split Horizon with Poison ReverseB advertises a route of cost infinity to E to ensure that A does not use B to get to E

Solutions do not always work for loops with more than 3 nodes

18

Page 19: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Routing Information Protocol (RIP)Distance-vector algorithm where vertices are networks and not hosts

Valid hop count (distances) 1-15, with 16 representing infinity

Limited to fairly small networks

19

Page 20: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

20

Link-State Routing

Path-selection modelDestination-based

Flood information regarding immediate neighbors to all nodes

Each node obtains a complete map of the network

32

2

1

14

1

4

5

3

Page 21: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

21

Shortest-Path Problem Given: network topology with link costs

c(x,y): link cost from node x to node yInfinity if x and y are not direct neighbors

Compute: least-cost paths to all nodesFrom a given source u to all other nodesp(v): predecessor node along path from source to v

32

2

1

14

1

4

5

3

u

v

p(v)

Page 22: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

22

Dijkstra’s Shortest-Path AlgorithmIterative algorithm

After k iterations, know least-cost path to k nodes

S: nodes whose least-cost path definitively knownInitially, S = {u} where u is the source nodeAdd one node to S in each iteration

D(v): current cost of path from source to node vInitially, D(v) = c(u, v) for all nodes v adjacent to u… and D(v) = ∞ for all other nodes vContinuously update D(v) as shorter paths are learned

Page 23: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

23

Dijsktra’s Algorithm

1 Initialization: 2 S = {u} 3 for all nodes v 4 if v adjacent to u {5 D(v) = c(u,v) 6 else D(v) = ∞ 7 8 Loop 9 find w not in S with the smallest D(w)10 add w to S 11 update D(v) for all v adjacent to w and not in S: 12 D(v) = min{D(v), D(w) + c(w,v)} 13 until all nodes in S

Page 24: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

24

Dijkstra’s Algorithm Example

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

Page 25: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

25

Dijkstra’s Algorithm Example

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

32

2

1

14

1

4

5

3

Page 26: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

26

Shortest-Path Tree• Shortest-path tree from u • Forwarding table at u

32

2

1

14

1

4

5

3

u

v

w

x

y

z

s

t

v (u,v)w (u,w)x (u,w)y (u,v)z (u,v)

link

s (u,w)t (u,w)

Page 27: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Dijkstra Table

27

Step S v w x y z s t

D(v) P(v) D(w) P(w) D(x) P(x) D(y) P(y) D(z) P(z) D(s) P(s) D(t) P(t)

0 u 3 u 2 u u u u u u

1 u,w 3 u - - 3 w u u 6 w u

2 u, w, v - - - - 3 w 5 v u 6 w u

3 u,w,v,x - - - - - - 5 v u 6 w 8 x

4 u,w,v,x,y

- - - - - - - - 6 y 6 w 8 x

5 u,w,v,x,y,s,z

- - - - - - - - 6 y - - 8 x

6 u,w,v,x,y,s,z,t

- - - - - - - - - - - - 8 x

Page 28: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

28

Link-State RoutingEach router keeps track of the state of its incident links

Link-state: working or non-workingCost (delay, throughput)

Each router floods the link state in the entire networkEvery router gets a complete view of the network

Each router runs Dijkstra’s algorithm to obtain shortest paths to all other destinations

Link-state protocolsOpen Shortest Path First (OSPF)Intermediate System – Intermediate System (IS-IS)

Page 29: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

29

Determining the State of a LinkBeaconing

Periodically exchange “hello” messages with neighborsDetect a failure after a threshold number of unanswered “hellos”

HELLOA

HELLOB HELLOB

HELLOCB C

A

Page 30: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Distributing Link-State InfoFlood the entire network

Every node forwards link-state packet on all links but the incoming one

30

Page 31: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Link-State PacketsPackets to be distributed

Sequence number prevents nodes from using old messagesAge determines a time to live for the packet (why do we need this?)

31

Page 32: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

32

When to Initiate FloodingTopology change

Link or node failureLink or node recovery

Configuration changeLink cost change

PeriodicallyRefresh the link-state informationTypically (say) 30 minutesCorrects for possible corruption of the data

Page 33: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Link State vs. Distance VectorLink State

Tell every node in the network about your immediate neighbors

Distance VectorTell only to your neighbors about every node in the network

33

Page 34: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Open Shortest Path First ProtocolFormat of an OSPF message

Version: 1-4, 1:Hello msg, 2: request, 3:send, 4: AckArea Id: area where node is connected in case of hierarchical routingAuthentication type: 0:none, 1:simple pswd, 2: MAC

34

Page 35: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Type 1: cost of linksType 2: networks connectedOther types: Hierarchy infoLS Age: TTLLink-state ID, Advertising router:

32-bit address of routerLength: length in bytes of the LSALink ID, data, type: identify the link Type of Service (TOS): Allows assignment of different metrics for

different services for the same link

Link State Advertisements (LSA)

35

Page 36: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Link MetricsHop count: Assign a metric of one at every hop

Least-cost route Least-hops route

Delay: Delay= Tack – Tarr = (Td – Tarr) + Tt + 2 TpWeight assigned to each link = average delay for packets passing through

Problems with simply using delayInstability: A heavily loaded link would oscillate between busy and idle statesWide value range: a link could look hundreds of time more expensive than

another – may cause very long routes

36

Page 37: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Suppression of the Dynamic RangeNew metric based on link utilization

Highly loaded link never shows a cost more than three times its idle costThe most expensive link is only seven times the cost of the least expensiveA high–speed satellite link is more attractive than a low speed terrestrial link Cost is a function of link utilization only at moderate to high loads

37

Page 38: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Link Metrics in the Real WorldFor the most part metrics are static

No dynamic adjustment, but hardcoded by network administrators

Avoids route oscillation problems

Most commonly used metric

w = c/B, where c is a constant and B is the link bandwidth

38

Page 39: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Hierarchical RoutingA scalable solution for very large networksCluster routers into areas or regions

39

Page 40: Fundamentals of Computer Networks ECE 478/578 Lecture #16: Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University of Arizona

Hierarchical RoutingReduction in table size comes at a cost

The route between a particular node pair may not necessarily be the shortest

For large networks, how many levels should the hierarchy have?

Example: Network with 720 nodes1 level:

720 entries

2 levels: 24 regions and 30 nodes per region29 (local) + 23 (region) = 52 entries

3 levels: 8 clusters; 9 regions/cluster; 10 routers/region9 (local) + 8 (region) + 7 (cluster) = 24 entries

40