Chapter 5: Network Layer Control Plane

Chapter 5: Network Layer Control Plane

Chapter 5: Network Layer Control Plane UG3 Computer Communications & Networks (COMN) Mahesh Marina [email protected] Slides copyright oF Kurose and Ross Network-layer functions Recall: two network-layer functions: • forwarding: move packets from router’s input to data plane appropriate router output § routing: determine route taken by packets from source control plane to destination Two approaches to structuring network control plane: § per-router control (traditional) § logically centralized control (software defined networking) Network Layer: Control Plane 5-2 Per-router control plane Individual routing algorithm components in each and every router interact with each other in control plane to compute forwarding tables 4.1 • OVERVIEW OF NETWORK LAYER 309 Routing Algorithm Routing algorithm control Control plane plane Data plane Local forwarding data table plane header output 0100 3 0110 2 0111 2 1001 1 Values in arriving packet’s header 1 1101 2 3 Network Layer: Control Plane 5-3 Figure 4.2 ♦ Routing algorithms determine values in forward tables tables. In this example, a routing algorithm runs in each and every router and both forwarding and routing functions are contained within a router. As we’ll see in Sec- tions 5.3 and 5.4, the routing algorithm function in one router communicates with the routing algorithm function in other routers to compute the values for its forward- ing table. How is this communication performed? By exchanging routing messages containing routing information according to a routing protocol! We’ll cover routing algorithms and protocols in Sections 5.2 through 5.4. The distinct and different purposes of the forwarding and routing functions can be further illustrated by considering the hypothetical (and unrealistic, but technically feasible) case of a network in which all forwarding tables are configured directly by human network operators physically present at the routers. In this case, no routing protocols would be required! Of course, the human operators would need to interact with each other to ensure that the forwarding tables were configured in such a way that packets reached their intended destinations. It’s also likely that human configu- ration would be more error-prone and much slower to respond to changes in the net- work topology than a routing protocol. We’re thus fortunate that all networks have both a forwarding and a routing function! M04_KURO4140_07_SE_C04.indd 309 11/02/16 3:14 PM Logically centralized control plane A distinct (typically remote) controller interacts with local control agents (CAs) in routers to compute forwarding tables Remote Controller control plane data plane CA CA CA CA CA Network Layer: Control Plane 5-4 Routing protocols Routing protocol goal: determine “good” paths (equivalently, routes), from any sending host to receiving host, through network of routers • path: sequence of routers packets will traverse in going from given initial source host to given final destination host • “good”: least “cost”, “fastest”, “least congested” • routing: a “top-10” networking challenge! Network Layer: Control Plane 5-5 Graph abstraction oF the network 5 v 3 w 2 5 u 2 1 3 z 1 x y 2 graph: G = (N,E) 1 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) } aside: graph abstraction is useful in other network contexts, e.g., P2P, where N is set oF peers and E is set oF TCP connections Network Layer: Control Plane 5-6 Graph abstraction: costs 5 c(x,x’) = cost oF link (x,x’) v 3 w e.g., c(w,z) = 5 2 5 cost could always be 1, or u 2 1 z 3 inversely related to bandwidth, 1 x y 2 or inversely related to 1 congestion cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) key question: what is the least-cost path between u and z? routing algorithm: algorithm that finds that least cost path Network Layer: Control Plane 5-7 Routing algorithm classification Q: global or decentralized information? Q: static or dynamic? global: static: • all routers have complete • routes change slowly over time topology, link cost info dynamic: • “link state” algorithms • routes change more quickly decentralized: – periodic update • router knows physically- connected neighbors, link costs – in response to link cost to neighbors changes • iterative process of computation, exchange of info with neighbors • “distance vector” algorithms Network Layer: Control Plane 5-8 A link-state routing algorithm Dijkstra’s algorithm notation: • net topology, link costs • c(x,y): link cost from node known to all nodes x to y; = ∞ if not direct neighbors – accomplished via “link state broadcast” • D(v): current value of cost – all nodes have same info of path from source to dest. v • computes least cost paths from one node (“source”) • p(v): predecessor node along path from source to v to all other nodes – gives forwarding table for • N': set of nodes whose that node least cost path definitively known • iterative: after k iterations, know least cost path to k dest.’s Network Layer: Control Plane 5-9 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' Network Layer: Control Plane 5-10 Dijkstra’s algorithm: example D(v) D(w) D(x) D(y) D(z) Step N' p(v) p(w) p(x) p(y) p(z) 0 u 7,u 3,u 5,u ∞ ∞ 1 uw 6,w 5,u 11,w ∞ 2 uwx 6,w 11,w 14,x 3 uwxv 10,v 14,x 4 uwxvy 12,y 5 uwxvyz x 9 5 7 notes: 4 v construct shortest path tree by tracing predecessor nodes 8 3 v ties can exist (can be broken u w y z arbitrarily) 2 3 7 4 v Network Layer: Control Plane 5-11 Dijkstra’s algorithm: another example Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u 2,u 5,u 1,u ∞ ∞ 1 ux 2,u 4,x 2,x ∞ 2 uxy 2,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 4,y 5 uxyvwz 5 v 3 w 2 5 u 2 1 3 z 1 x y 2 1 * Check out the online interactive exercises For more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Network Layer: Control Plane 5-12 Dijkstra’s algorithm: example (2) resulting shortest-path tree from u: v w u z x y resulting forwarding table in u: destination link v (u,v) x (u,x) y (u,x) w (u,x) z (u,x) Network Layer: Control Plane 5-13 Dijkstra’s algorithm, discussion algorithm complexity: n nodes • 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: • e.g., support link cost equals amount of carried traffic: A 1 1+e A A A 2+e 0 0 2+e 2+e 0 D B D B D D 0 0 1+e 1 0 0 B 1+e 1 B 0 e 0 0 C C 0 1 C 1+e C 0 1 1 e given these costs, given these costs, given these costs, initially find new routing…. find new routing…. find new routing…. resulting in new costs resulting in new costs resulting in new costs Network Layer: Control Plane 5-14 Distance vector algorithm Bellman-Ford equation (dynamic programming) let dx(y) := cost of least-cost path from x to y then dx(y) = minv {c(x,v) + dv(y) } cost from neighbor v to destination y cost to neighbor v min taken over all neighbors v of x Network Layer: Control Plane 5-15 Bellman-Ford example 5 clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3 v 3 w 2 5 u 2 1 B-F equation says: 3 z 1 d (z) = min { c(u,v) + d (z), x y 2 u v 1 c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, 5 + 3} = 4 node achieving minimum is next hop in shortest path, used in forwarding table Network Layer: Control Plane 5-16 Distance vector algorithm • Dx(y) = estimate of least cost from x to y – x maintains distance vector Dx = [Dx(y): y є N ] • node x: – knows cost to each neighbor v: c(x,v) – maintains its neighbors’ distance vectors. For each neighbor v, x maintains Dv = [Dv(y): y є N ] Network Layer: Control Plane 5-17 Distance vector algorithm key idea: • from time-to-time, each node sends its own distance vector estimate to neighbors • when 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 v under minor, natural conditions, the estimate Dx(y) converges to the actual least cost dx(y) Network Layer: Control Plane 5-18 Distance vector algorithm iterative, asynchronous: each node: each local iteration caused by: wait for (change in local link • local link cost change cost or msg from neighbor) • DV update message from neighbor distributed: recompute estimates • each node notifies neighbors only when its if DV to any dest has DV changes changed, notify neighbors – neighbors then notify their neighbors if necessary Network Layer: Control Plane 5-19 Dx(z) = min{c(x,y) + Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 node x cost to cost to table x y z x y z x 0 2 7 x 0 2 3 y y 2 0 1 ∞ ∞ ∞ from from z ∞ ∞ ∞ z 7 1 0 node y cost to table x y z y 2 1 x ∞ ∞ ∞ x z y 2 0 1 7 from z ∞ ∞ ∞ node z cost to table x y z x ∞ ∞ ∞ y ∞ ∞ from ∞ z 7 1 0 time Network Layer: Control Plane 5-20 Dx(z) = min{c(x,y) + Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 node x cost to cost to cost to table x y z x y z x y z x 0 2 7 x 0 2 3 x 0 2 3 y y 2 0 1 ∞ ∞ ∞ from y from 2 0 1 z z from ∞ ∞ ∞ 7 1 0 z 3 1 0 node y cost to cost to table x y z x y z cost to y x y z 2 1 x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z y 2 0 1 y 2 0 1 y 2 0 1 7 from from z ∞ ∞ ∞ z 7 1 0 from z 3 1 0 node z cost to cost to cost to table x y z x y z x y z x ∞ ∞ ∞ x 0 2 7 x 0 2 3 y y 2 0 1 y from 2 0 1 ∞ ∞ from from ∞ z z z 7 1 0 3 1 0 3 1 0 time Network Layer: Control Plane 5-21 Distance vector: link cost changes link cost changes: 1 v node detects local link cost change y 4 1 v updates routing info, recalculates x z distance vector 50 v if DV changes, notify neighbors “good t0 : y detects link-cost change, updates its DV, inForms its news neighbors.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    51 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us