Presentation is loading. Please wait.

Presentation is loading. Please wait.

Routing 1 Network Layer Network Layer goals:  understand principles behind network layer services:  routing (path selection)  how a router works  instantiation.

Similar presentations


Presentation on theme: "Routing 1 Network Layer Network Layer goals:  understand principles behind network layer services:  routing (path selection)  how a router works  instantiation."— Presentation transcript:

1 Routing 1 Network Layer Network Layer goals:  understand principles behind network layer services:  routing (path selection)  how a router works  instantiation and implementation in the Internet Overview:  network layer services  routing principle: path selection  hierarchical routing  IP  what’s inside a router? Postal-service mail carrier

2 Routing 2 Network layer functions  transport packet from sending to receiving hosts  network layer protocols in every host, router Important functions:  Forwarding/switching: per-router action of moving a packet arriving at an input port to the appropriate output port  Routing/Path determination: calculation of the route that the packet will take through the network (from source to dest); this is a network-wide process. Routing algorithms network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical application transport network data link physical HOST A HOST B

3 Routing 3 DATAGRAM ROUTING (The internet model)  routers: no state about end-to-end connections  no network-level concept of 'connection'  packets are typically routed using destination host ID  packets between same source-destination pair may take different paths 1. Send data 2. Receive data application transport network data link physical application transport network data link physical Each router has a forwarding table that maps destination addresses to link interfaces

4 Routing 4 Graph (undirected) abstraction for routing algorithms:  nodes represent routers  Lines/graph edges are physical links  link cost: delay, cost of sending a packet across link, or congestion level Goal: determine good path (sequence of routers) through network from source to destination. Routing protocol A E D CB F 2 2 1 3 1 1 2 5 3 5  'good' path:  typically means minimum cost path  other definitions possible Physical distance, link speed, monetary cost, etc.

5 Routing 5 Classification of Routing Algorithms Global or decentralized information? Global:  Least-cost path is computed using complete, global knowledge of the network:  topology, link cost info  Link State (LS) algorithms Decentralized:  Least-cost path is calculated in an iterative, distributed manner  router only knows physically- connected neighbours, link costs to neighbours  Involves an iterative process of calculation & exchange of distance vector information with neighbours  Distance Vector (DV) algorithms Static or dynamic? Static:  routes change slowly over time Dynamic:  routes change more quickly  periodic update  in response to topology or link cost changes

6 Routing 6 Distance Vector Routing Algorithm iterative:  continues until no nodes exchange information anymore  self-terminating: no signal to stopasynchronous:  nodes need not exchange info/iterate in lock step!distributed:  each node communicates only with directly-attached neighbours

7 Routing 7 Distance Vector Algorithm Bellman-Ford Equation (dynamic programming) Define d x (y) := cost of least-cost path from x to y Then d x (y) = min {c(x,v) + d v (y) } where min is taken over all neighbors v of x v

8 Routing 8 Bellman-Ford example u y x wv z 2 2 1 3 1 1 2 5 3 5 By inspection from the graph, we can see that: d v (z) = 5, d x (z) = 3, d w (z) = 3 d u (z) = min { c(u,v) + d v (z), c(u,x) + d x (z), c(u,w) + d w (z) } = min {2 + 5, 1 + 3, 5 + 3} = 4 next The node that arrives with the minimum cost = the next hop hop neighbour along the shortest path ➜ forwarding table B-F equation says: The least cost path from node u to z is one of the paths that passes through node u’s neighbors

9 Routing 9 Distance Vector Routing Algorithm Distance Table data structure  row for each possible destination  column for each directly- attached neighbor Calculation of values  example: Node X, routing for destination Y via directly attached neighbor Z: D (Y,Z) X distance from X to Y, via Z as next hop c(X,Z) + min {D (Y,w)} Z w = = D () A B C D A1764A1764 B 14 8 9 11 D5542D5542 E cost to destination via destination Directly attached neighbors of E A E D CB 7 8 1 2 1 2 Currently known minimum-cost path from Z to Y

10 Routing 10 DISTANCE TABLE: Example A E D CB 7 8 1 2 1 2 D () A B C D A1764A1764 B 14 8 9 11 D5542D5542 E cost to destination via destination D (C,D) E c(E,D) + min {D (C,w)} D w = = 2+2 = 4 D (A,D) E c(E,D) + min {D (A,w)} D w = = 2+3 = 5 D (A,B) E c(E,B) + min {D (A,w)} B w = = 8+6 = 14 loop! ENTRIES IN THE DATA TABLE for NODE E (after DV converges) Node E to C via D Node E to A via D Node E to A via B Direct link Any possible path from D to C

11 Routing 11 Distance table gives routing table D () A B C D A1764A1764 B 14 8 9 11 D5542D5542 E cost to destination via destination ABCD ABCD A,1 D,5 D,4 D,2 Outgoing link to use, cost destination Distance table Routing table D E () A E D CB 7 8 1 2 1 2

12 Routing 12 Distance Vector Routing: Distance Vector Routing: (more details) Iterative, asynchronous: Each local iteration (Distance Table update) caused by:  Change of cost of an attached link  Receipt of message update from neighbourDistributed: least-cost path  each node notifies neighbours only when its least-cost path to any destination changes wait for (change in local link cost or msg from neighbor) recompute distance table least-cost if a least-cost path to any destination has changed, notify neighbors Each node: BELLMAN-FORD ALGORITHM – Internet RIP, BGP, IDRP, Novell IPX, ARPANet

13 Routing 13 Distance Vector Algorithm: 1 Initialization: 2 for all adjacent nodes v: 3 D (*,v) =infinite ( 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 At each node, X: X Z 1 2 7 Y Initially, set all link costs to all destination nodes to infinite (∞) Send a table of vectors to each neighbor of X

14 Routing 14 Distance Vector Algorithm (cont.): 8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive an update from neighbor V) //link cost change 11 //link cost change c(X,V) changes by d 12 if (c(X,V) changes by d) d 13 /* change cost to all dest's via neighbor v by d */ d 14 /* note: d could be positive or negative */ d 15 for all destinations y: D (y,V) = D (y,V) + d //receipt of routing table from neighbor V 16 //receipt of routing table from neighbor V update received from V wrt destination Y 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ new value min D V (Y,w) 19 /* V has sent a new value for its min D V (Y,w) */ 20 /* call this received new value as newval */ newval 21 for the single destination y: D (Y,V) = c(X,V) + newval //new least-cost to any destination Y found 22 //new least-cost to any destination Y found we have a new min D (Y,w) for any destination Y 23 if we have a new min D (Y,w) for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever w X X X X X w w Change in link cost; therefore, update Entire column in distance table Received one update from neighbor v; therefore, Calculate new link cost in distance table

15 Routing 15 Distance Vector Algorithm: example X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = = 2+1 = 3 Y Let’s examine one sample computation here

16 Routing 16 Distance Vector Algorithm: example X Z 1 2 7 Y Examine which table finds a new minimum cost value after an update

17 Routing 17 Distance Vector: link cost changes Link cost changes:  node detects local link cost change  updates distance table (line 15)  if cost change in least cost path, notify neighbours (lines 23,24) X Z 1 4 50 Y 1 algorithm terminates “good news travels fast” Note: The illustrations limits the exchange of packets between nodes Y and Z only.

18 Routing 18 Distance Vector: link cost changes Link cost changes:  good news travels fast  bad news travels slow - 'count to infinity' problem! X Z 1 4 50 Y 60 algorithm continues on! 44 Routing loop bet. Y & Z – will persist after 44 iterations

19 Routing 19 Distance Vector: link cost changes X Z 1 4 50 Y 60 algorithm continues on! Link-cost change: the new link-cost to X changes from 4 to 60. ROUTING LOOP! Node Y doesn’t know that Z would pass through Y itself to get to X (at this point in time, Z is still using the old least-cost path (from Node Y to X is equal to 4) Routing Table for Node Y Routing Table for Node Z Sometime after t0: Node Y calculates the new least-cost path, and finds that passing through Z is more cost effective to reach Node X At time t1: Node Y broadcasts the new least-cost path to Z (neighbor) Sometime after t1: Node Z receives the new least-cost to Node X from Y, then computes a new least-cost to X Node Z computes the new least-cost to X, then updates its Routing Table t2: Node Z informs y of its new least-cost to X, since it has changed (increased) And so on, and so forth…

20 Routing 20 Distance Vector: poisoned 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? X Z 1 4 50 Y 60 algorithm terminates It does not. Loops with nodes >= 3 will not be detected!

21 Routing 21 Poisone Reverse Algorithm Example How to apply the Poisoned Reverse Algorithm? ABCD A4∞∞∞ B∞1∞∞ C∞83∞ D∞∞67 ∞ Eventually, the value 8 would become ∞ because it is not a direct link, and it is not the least-cost path for destination C ∞ If the link is NOT a direct link and if the link-cost is NOT equal to the minimum cost for a given destination node, then set the link-cost = ∞ (infinite) via destination ∞ Inspect each row,

22 22 Link-State Routing Algorithm Dijkstra’s algorithm net topology, link costs known to all nodes – accomplished via “link state broadcast” – all nodes have the same info computes least cost paths from one node (‘source”) to all other nodes – gives forwarding table for that node iterative: after k iterations, know least cost path to k dest.’s Notation: c(x,y): link cost from node x to y; set equal to ∞ 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 N': set of nodes whose least cost path definitively known

23 23 Dijsktra’s Algorithm 1 Initialization: 2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = ∞ 7 8 Loop 9 find w not in N' such that D(w) is a minimum 10 add w to N' 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'

24 24 Dijkstra’s algorithm: example Step 0 1 2 3 4 5 N' u ux uxy uxyv uxyvw uxyvwz D(v),p(v) 2,u D(w),p(w) 5,u 4,x 3,y D(x),p(x) 1,u D(y),p(y) ∞ 2,x D(z),p(z) ∞ 4,y u y x wv z 2 2 1 3 1 1 2 5 3 5 8 Loop 9 find w not in N' such that D(w) is a minimum 10 add w to N' 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' 1 Initialization: 2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = ∞

25 25 Dijkstra’s algorithm: example (2) u y x wv z Resulting shortest-path tree from u: v x y w z (u,v) (u,x) destination link Resulting forwarding table in u: Next hop router for node u to take: (either v or x)

26 26 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(nlogn) Oscillations possible: e.g., link cost = amount of carried traffic A D C B 1 1+e e 0 e 1 1 0 0 A D C B 2+e 0 0 0 1+e 1 A D C B 0 2+e 1+e 1 0 0 A D C B 2+e 0 e 0 1+e 1 initially … recompute routing … recompute destination source Dijkstra’s algorithm, discussion

27 27 Dijkstra’s algorithm, discussion A D C B 1 1+e e 0 e 1 1 0 0 A D C B 2+e 0 0 0 1+e 1 A D C B 0 2+e 1+e 1 0 0 A D C B 2+e 0 e 0 1+e 1 initially … recompute routing … recompute destination source  Solution:  Solution: Oscillations can be prevented by not running the LS algorithm at the same time. Let routers use randomised sending times for sending the link advertisement. Clock-wise routes Counter-clock-wise routes Clock-wise routes Problem: Oscillations with congestion-sensitive routing


Download ppt "Routing 1 Network Layer Network Layer goals:  understand principles behind network layer services:  routing (path selection)  how a router works  instantiation."

Similar presentations


Ads by Google