routing algorithms

20 308 0
routing algorithms

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 http://www.stanford.edu/class/cs224a: 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 R1 R2 R4 2 R3 4 R6 R5 R7 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 R1 R2 R4 2 R3 4 R6 R5 R7 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) R1 R2 R4 2 R3 4 R6 R5 R7 R8 A Spanning Tree R1 R2 R4 2 R3 R5 R6 R7 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 to i using at most h hops/arcs (h can be regarded as time also.) –Di(1) = d8i for i≠8, D8(h) = for all h –Di(h+1) = {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 ∞ ∞ R3 R1 R2 ∞ ∞ R4 R3 R5 R6 R8 ∞ 2 ∞ R7 R2 ∞ ∞ R4 R5 ∞ ∞ 2 R7 R6 R8 Bellman-Ford Algorithm R1 R2 R5 R3 R4 R6 R7 2 R8 Solution R1 1 R2 R3 R4 R5 R6 R7 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) = {j in N(i)} [Dj(h) +dji] for i≠8; D8(h+1) = Only need to keep/eachange distance information from/with neighbors Bellman-Ford Algorithm Questions: How long can the algorithm take to run? How 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 R2 R3 R4 Consider the calculation of distances from/to R4: Time … 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 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 : S = {R8 , R5 , R6 , R7 , R2 , R1 , R4 }, C = {} R1 R2 R4 R6 R3 R5 R7 R8 [...]... ∞ 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) ... shortest) Example network The shortest route A to B: R1, R2, R5, R8 A R1 R2 R4 2 R3 4 R6 R5 R7 R8 B Routing Metrics ™ Metrics ¾ Link state: up or down (stability) ¾ Delay to send an average size packet... 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... 2 R7 R6 R8 Bellman-Ford Algorithm R1 R2 R5 R3 R4 R6 R7 2 R8 Solution R1 1 R2 R3 R4 R5 R6 R7 R8 Routing Table for R8 Destination R1 R5 R2 R5 R3 R3 R4 R5 R5 R5 R6 R6 R7 R7 Next Hop Distributed

Ngày đăng: 21/01/2016, 23:47

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan