Tải bản đầy đủ (.pdf) (20 trang)

routing algorithms

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (133.83 KB, 20 trang )

Routing Algorithms
Suggested Reading:
Bertsekas and Gallager: 5.1 (5.1.1, 5.1.2), 5.2.3 (on Bellman-Ford and
Dijkstra’s)

Kurose and Rose (2001 Edition): 4.1, 4.2, 4.3, 4.4
Also routing protocol


Outline
™
™
™

Flooding
Distributed Bellman Ford Algorithm
Dijkstra’s Shortest Path First Algorithm


Problem
Given a topology, link costs, and a source-destination (SD) pair,
determine a route from S to D so that the route has the minimum
cost (i.e., is the shortest).


Example network
The shortest route A to B:
R1, R2, R5, R8

A


1

R1

1

R2

R4

2

2

R3

4

4

R6

3

R5

2

R7


3

2

R8

B


Routing Metrics
™

Metrics
¾ Link state: up or down (stability)
¾ Delay to send an average size packet (Make high speed links
attractive, but closeness counts)
¾ Bandwidth
¾ Link utilization

For simplicity, our examples assume that the cost for the path is
additive.


Example network
In this simple case, solution is clear from inspection
A

1

R1


1

R2

R4

2

2

R3

4

4

R6

3

R5

2

R7

3

2


R8

B


Flooding
Routers forward packets to all ports
except the ingress port.
R1
Advantages:
™ Simple.
™ Every destination in the network is reachable.
Disadvantages:
™ Some routers receive a packet multiple times.
™ Packets can go round in loops forever.
™ Inefficient.


Spanning Trees
Find the lowest cost route from each of
(R1, …, R7) to R8 (the same as from R8 to the rest for this case)

1

R1

1

R2


R4

2

2

R3

4

4

R6

3

R5

2

R7

3

2

R8



A Spanning Tree
1

R1

1

R2

R4

2

2

R3

4

R5

2

4

R6

3

R7


2
3

R8

The solution is a spanning tree with R8 as the source of the tree.
™ Tree: There are no loops.
™ Spanning: All nodes included.
™ Will see two algorithms that build spanning trees automatically:
™

™
™

The distributed Bellman-Ford algorithm
Dijkstra’s shortest path first algorithm


Bellman Ford Algorithm*
™

Finds the shortest paths, from a given source node, say node 8, to all other
nodes (i is the index for destinations).
General idea:
–First find the shortest single arc path,
–Then the shortest path of at most two arcs, etc.
–Let dij be the cost between node i to j; and dij=∞ if (i,j) is not directly linked

Let Di(h) be the shortest distance from 8 to i using at most h hops/arcs. (h

can be regarded as time also.)
–Di(1) = d8i for i≠8, D8(h) = 0 for all h.
–Di(h+1) = min {j} [Dj(h) +dji] for i≠8.

If all weights are positive, algorithm terminates in N-1 steps, where N is the
no. of nodes in the network.
*Notations are similar to those used in Bertsekas and Gallager.


Bellman-Ford Algorithm
R1

Example





1

2

R3

R1

1

R2


2





4

R4

R3

4

R5

R6
2

3

R8



2

2




R7

2

1

R2
4

3





4

R4

R5



1



2


2

4

3

R7

3

R6
2
3

R8

2


Bellman-Ford Algorithm
6

4

1

R1

2


1

R2

2

4

R5

4

R3

2

R4

6
3

4

R6

3

R7

2


2

2

3

R8

Solution
5

R1

4

1

1

R2

2
4

R3

4

5


2

R4

3

2

R5

R6

2

R7 3

2
R8


Routing Table for R8
Destination

R1

R5

R2


R5

R3

R3

R4

R5

R5

R5

R6

R6

R7

R7

Next Hop


Distributed Bellman-Ford
Let N(i) be a set of neighbors of node i:
Di(h+1) = min {j in N(i)} [Dj(h) +dji] for i≠8; D8(h+1) = 0
Only need to keep/eachange distance information from/with neighbors.



Bellman-Ford Algorithm
Questions:
1.
2.

3.

How long can the algorithm take to run?
How do we know that the algorithm always
converges?
What happens when link costs change, or when
routers/links fail?


A Problem with Bellman-Ford
“Bad news travels slowly”
R1

1

R2

1

R3

1

R4


Consider the calculation of distances from/to R4:
Time
0
1
2
3


R3
R1
R2
3,R2
2,R3
1, R4
3,R2
2,R3
3,R2
3,R2
4,R3
3,R2
5,R2
4,R3
5,R2
“Counting
to

…infinity” …

R3

d34=inf.

R4 fails


Counting to Infinity Problem
Solutions
1.

2.

3.

Set infinity = “some small integer” (e.g. 16). Stop
when count = 16.
Split Horizon: Because R2 received lowest cost path
from R3, it does not advertise cost to R3
There are many problems with (and fixes for) the
Bellman-Ford algorithm.


Dijkstra’s Shortest Path First Algorithm

™
™
™
™

Routers send out update messages whenever the state of a
link changes. Hence the name: “Link State” algorithm.

Each router calculates lowest cost path to all others, starting
from itself.
At each step of the algorithm, router adds the next shortest
(i.e. lowest-cost) path to the tree.
Finds spanning tree routed on source router.


Dijkstra’s Shortest Path First Algorithm
Example
Step 1:

Shortest path set, S = {R8}. Candidate set, C = {R3 , R5 , R7 , R6 }

Step 2:

S = {R8 , R5},

C = {R3 , R7 , R6 , R2 }.
Step 3:

S = {R8 , R5 , R6},

C = {R3 , R7 , R2 , R4 }.
Step 4:

R5

R8
R6


R5

R8

S = {R8 , R5 , R6 , R7 },

C = {R3 , R2 , R4}.

R6
R5

R7
R8


Dijkstra’s SPF Algorithm
Step 8 : S = {R8 , R5 , R6 , R7 , R2 , R1 , R4 },
C = {}.

R1

1

R2

1

R4

R6

2

R3

4

R5

2

R7

3
R8



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×