420 likes | 542 Views
CS 4284 Systems Capstone. Networking. Godmar Back. Summary. Basics of Network Layer Routing (path selection) vs Forwarding (switching) Service models Datagram Networks vs VC Networks Basics of routers Packet classification, Packet Scheduling, AQM Next: Routing Algorithms.
E N D
CS 4284Systems Capstone Networking Godmar Back
Summary • Basics of Network Layer • Routing (path selection) vs Forwarding (switching) • Service models • Datagram Networks vs VC Networks • Basics of routers • Packet classification, Packet Scheduling, AQM • Next: Routing Algorithms CS 4284 Spring 2013
transports segment from sending to receiving host on sending side encapsulates segments into datagrams on receiving side, delivers segments to transport layer network layer protocols in every host, router router examines header fields in all IP datagrams passing through it 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 The Network Layer CS 4284 Spring 2013
Key Network-Layer Functions • forwarding: move packets from router’s input to appropriate router output • routing: determine route taken by packets from source to dest. • Routing algorithms • analogy: • routing: process of planning trip from source to dest • forwarding: process of getting through single interchange CS 4284 Spring 2013
routing algorithm local forwarding table header value output link 0100 0101 0111 1001 3 2 2 1 value in arriving packet’s header 1 0111 2 3 Interplay between Routing and Forwarding CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w u y v Graph abstraction Graph: G = (N,E) N = set of routers = { u, v, w, x, y, z } E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Graph Abstraction: Costs • c(x,x’) = cost of link (x,x’) • - e.g., c(w,z) = 5 • cost could always be 1, or • inversely related to bandwidth, • or inversely related to • congestion Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) Question: What’s the least-cost path between u and z ? CS 4284 Spring 2013
Global or decentralized information? Global: all routers have complete topology, link cost info “link state” algorithms Decentralized: router knows physically-connected neighbors, link costs to neighbors iterative process of computation, exchange of info with neighbors “distance vector” algorithms Static or dynamic? Static: routes change slowly over time Dynamic: routes change more quickly periodic update in response to link cost changes Routing Algorithm Classification Note: Global/decentralized classification does not say where routing computation is performed, it says what information one has when computing routes CS 4284 Spring 2013
Link State Routing • Routers periodically broadcast link state information • link state messages or LSA (link state advertisement) • broadcast via sequence-number controlled flooding • All routers acquire complete connectivity + link cost information of entire network • Each router computes routing table from that obtained topology • Dijkstra’s shortest path to other routers, from computing router this becomes forwarding table CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Link State Broadcast • Goal: every node obtains a copy of this table • and updates as conditions change CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 seq number x z w y u v from node_id Link State Broadcast (2) • Idea: • Send n’th row of own adjacency matrix – (conceptually, at least) • With sender id n • Sequence number k • On receipt of msg from node n, node m updates n’th row with msg content • update adj[m][n] to note connection to neighbor with link cost • Controlled flooding, based on sequence number • First round, everybody sends CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Link State Broadcast (3) • u’s view after first broadcast CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Link State Broadcast (4) • v’s view after first broadcast CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Link State Broadcast (5) • Msgs exchanged in second round CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Link State Broadcast (6) • everybody’s view after 2nd broadcast • Link changes will cause new broadcasts CS 4284 Spring 2013
Notation: c(x,y): link cost from node x to y; = ∞ 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 Idea: Keep track of nodes to whom least cost path is known Keep track of complement: “candidate set” – for which you have estimates of cost Start with one node Create estimates for adjacent nodes Repeat Choose best candidate, update estimates for other candidates based on candidate’s neighbors Remove candidate from candidate set and add to known set Until done Dijkstra’s algorithm CS 4284 Spring 2013
Dijkstra’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' CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w y u v Dijkstra’s Algorithm Example Step N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) v w x y z 0 u 2, u 5, u 1, u 1 u 2, u 4, x 2, x 2 ux 2, u 3, y 4, y 3 uxy 3, y 4, y 4 uxyv 4, y 5 uxyvw Done! CS 4284 Spring 2013
Implementing Link State Routing • “HELLO” neighbor protocol • Get to know your neighbors • Learn if neighbor moves out (link goes down) • LSA broadcast protocol • Let the entire world know who your neighbors are • As soon as you learn who yours are • Whenever your knowledge changes • Help others broadcast information about their neighbors to entire world (until everybody learns entire topology) • Maintain sequence numbers to prevent circular forwarding • The two can be combined (design choice) CS 4284 Spring 2013
Algorithm complexity: n nodes, assume |E| << n2 each iteration: need to check all nodes, w, not in N n(n+1)/2 comparisons: O(n2) more efficient implementations possible: O(nlogn) Oscillations possible: If, for instance, link cost = amount of carried traffic A A A A D D D D B B B B C C C C 1 1+e 2+e 0 2+e 0 2+e 0 0 0 1 1+e 0 0 1 1+e e 0 0 0 0 1 1+e 0 1 1 e … recompute … recompute routing … recompute initially Dijkstra’s algorithm, discussion CS 4284 Spring 2013
Distance Vector Algorithm (1) Bellman-Ford Equation (dynamic programming) Define dx(y) := cost of least-cost path from x to y Then dx(y) = min {c(x,v) + dv(y) } where min is taken over all neighbors of x CS 4284 Spring 2013
5 3 5 2 2 1 3 1 2 1 x z w u y v Bellman-Ford Example (2) Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3 B-F equation says: du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, 5 + 3} = 4 Node that achieves minimum is next hop in shortest path ➜ forwarding table CS 4284 Spring 2013
Distance Vector Algorithm (3) • Dx(y) = estimate of least cost from x to y • Distance vector: Dx = [Dx(y): y N ] • Node x knows cost to each neighbor v: c(x,v) • Node x maintains Dx = [Dx(y): y N ] • Node x also maintains its neighbors’ distance vectors (at least temporarily) • For each neighbor v, x maintains Dv = [Dv(y): y N ] CS 4284 Spring 2013
Distance Vector Algorithm (4) Basic Idea: • Each node periodically sends its own distance vector estimate to neighbors • When a node x receives new DV estimate from neighbor, it updates its own DV using B-F equation: Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N • Under minor, natural conditions, the estimate Dx(y) converges to actual least costdx(y) CS 4284 Spring 2013
Iterative, asynchronous: each local iteration caused by: local link cost change DV update message from neighbor Distributed: each node notifies neighbors only when its DV changes neighbors then notify their neighbors if necessary wait for (change in local link cost of msg from neighbor) recompute estimates if DV to any dest has changed, notify neighbors Distance Vector Algorithm (5) Each node: CS 4284 Spring 2013
Example DV Routing 0 1 1 2 5 4 2 1 3 CS 4284 Spring 2013
Example (cont’d) 1 2 4 5 1 time Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N CS 4284 Spring 2013
Example (cont’d) • Converged after 3 iterations • What if link cost changes? CS 4284 Spring 2013
x z y Distance Vector: Link Cost Changes • Link cost changes: • node detects local link cost change • updates routing info, recalculates distance vector • if DV changes, notify neighbors 1 4 1 50 At time t0, y detects the link-cost change, updates its DV, and informs its neighbors. At time t1, z receives the update from y and updates its table. It computes a new least cost to x and sends its neighbors its DV. At time t2, y receives z’s update and updates its distance table. y’s least costs do not change and hence y does not send any message to z. “good news travels fast” CS 4284 Spring 2013
50 51 - 51 50 - 51 50 - 51 50 - 51 50 60 60 x z y 51 - 1 6 - 1 51 - 1 8 - 1 4 1 50 1 50 5 1 - 50 1 - 7 1 - 50 1 - Count-To-Infinity 51 50 Before change: x y z y to x via z z to x via y y to x via z CS 4284 Spring 2013
60 4 1 50 x z y Distance Vector: Link Cost Changes • Link cost changes: • good news travels fast • bad news travels slow - “count to infinity” problem! • 44 iterations before algorithm stabilizes • 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? CS 4284 Spring 2013
- 51 50 - 51 50 60 x z y 51 - 1 51 - 1 4 1 50 50 1 - 50 1 - Poisoned Reverse After change: x 60 y 50 1 z y to x via z Don’t tell z dist to x z to x via x CS 4284 Spring 2013
Message complexity LS: with n nodes, E links, O(nE) msgs sent DV: exchange between neighbors only convergence time varies Speed of Convergence LS: O(n2) algorithm requires O(nE) msgs may have oscillations DV: convergence time varies may be routing loops count-to-infinity problem Robustness: what happens if router malfunctions? LS: node can advertise incorrect link cost each node computes only its own table DV: DV node can advertise incorrect path cost each node’s table used by others error propagates thru network Comparison of LS and DV algorithms CS 4284 Spring 2013
scale: with 200 million destinations: can’t store all dest’s in routing tables! routing table exchange would swamp links! administrative autonomy internet = network of networks each network admin may want to control routing in its own network Hierarchical Routing • Our routing study thus far - idealization • all routers identical • network “flat” • … not true in practice CS 4284 Spring 2013
aggregate routers into regions, “autonomous systems” (AS) routers in same AS run same routing protocol “intra-AS” routing protocol routers in different AS may run different intra-AS routing protocols Gateway router Direct link to router in another AS Example: [AS1312] Hierarchical Routing CS 4284 Spring 2013
Forwarding table is configured by both intra- and inter-AS routing algorithm Intra-AS sets entries for internal dests Inter-AS & Intra-AS sets entries for external dests 3a 3b 2a AS3 AS2 1a 2c AS1 2b 3c 1b 1d 1c Inter-AS Routing algorithm Intra-AS Routing algorithm Forwarding table Interconnected ASes CS 4284 Spring 2013
AS1 needs: to learn which dests are reachable through AS2 and which through AS3 to propagate this reachability info to all routers in AS1 Job of inter-AS routing! Suppose router in AS1 receives datagram for which dest is outside of AS1 Router should forward packet towards one of the gateway routers, but which one? 3a 3b 2a AS3 AS2 1a AS1 2c 2b 3c 1b 1d 1c Inter-AS tasks CS 4284 Spring 2013
Scenario 1 Destination x is reachable through single AS Inter-AS must propagate this information inside AS Suppose router in AS1 receives datagram for which dest is outside of AS1 Router should forward packet towards one of the gateway routers, but which one? 3a 3b 2a AS3 AS2 1a AS1 2c 2b 3c 1b 1d 1c Inter-AS tasks (cont’d) Least cost path to 1c is interface l, add (x, l) to routing table AS3 advertises route to x AS2 does not advertise route to x Spread in AS1: use gateway 1c to get to x CS 4284 Spring 2013
Scenario 2: Destination is reachable through multiple AS: Hot potato routing: send packet towards closest of two routers Suppose router in AS1 receives datagram for which dest is outside of AS1 Router should forward packet towards one of the gateway routers, but which one? 3a 3b 2a AS3 AS2 1a AS1 2c 2b 3c 1b 1d 1c Hot Potato Routing CS 4284 Spring 2013
Scenario 2: Destination is reachable through multiple AS: Hot potato routing: send packet towards closest of two routers Suppose router in AS1 receives datagram for which dest is outside of AS1 Router should forward packet towards one of the gateway routers, but which one? 3a 3b 2a AS3 AS2 1a AS1 2c 2b 3c 1b 1d 1c Hot Potato Routing 1b is closer than 1c, interface k leads to 1b, so add (x, k) to routing table AS3 advertises route to x AS2 advertises route to x Spread in AS1: 1c and 1b lead to x CS 4284 Spring 2013
Summary • Routing algorithms: • Link State • Distance Vector • Hierarchical Routing • AS: autonomous systems • Next: application to Internet/IP CS 4284 Spring 2013