1. Trang chủ
  2. » Công Nghệ Thông Tin

routing algorithms

20 308 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 133,83 KB

Nội dung

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

TÀI LIỆU LIÊN QUAN

w