Chapter 4: Network Laer 4. Introduction 4. Virtual circuit and datagram networks 4. What s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4. Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Laer 4-69 Interpla between routing, forwarding routing algorithm local forwarding table header value output link 000 00 0 00 value in arriving packet s header 0 Network Laer 4-70
Graph abstraction Graph: G = (N,E) u v w N = set of routers = { u, v, w,,, } E = set of links ={ (u,v), (u,), (v,), (v,w), (,w), (,), (w,), (w,), (,) } Remark: Graph abstraction is useful in other network contets Eample: PP, where N is set of peers and E is set of TCP connections Network Laer 4-7 Graph abstraction: costs u v w c(, ) = cost of link (, ) - e.g., c(w,) = cost could alwas be, or inversel related to bandwidth, or inversel related to congestion Cost of path (,,,, p ) = c(, ) + c(, ) + + c( p-, p ) Question: What s the least-cost path between u and? Routing algorithm: algorithm that finds least-cost path Network Laer 4-7
Routing Algorithm classification Global or decentralied information? Global: all routers have complete topolog, link cost info link state algorithms Decentralied: router knows phsicallconnected neighbors, link costs to neighbors iterative process of computation, echange of info with neighbors distance vector algorithms Static or dnamic? Static: routes change slowl over time Dnamic: routes change more quickl periodic update in response to link cost changes Network Laer 4-7 Chapter 4: Network Laer 4. Introduction 4. Virtual circuit and datagram networks 4. What s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4. Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Laer 4-74
A Link-State Routing Algorithm Dijkstra s algorithm net topolog, link costs known to all nodes accomplished via link state broadcast all nodes have same info computes least cost paths 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(,): link cost node to ; = if not direct neighbors D(v): current value of cost of path source to dest. v p(v): predecessor node along path source to v N': set of nodes whose least cost path definitivel known Network Laer 4-7 Dijsktra s Algorithm Initialiation: N' = {u} for all nodes v 4 if v adjacent to u 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 0 add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min( D(v), D(w) + c(w,v) ) /* new v is either old v or known 4 shortest path w plus cost w to v */ until all nodes in N' Network Laer 4-76 4
Dijkstra s algorithm: eample Step 0 4 N' u u u uv uvw uvw D(v),p(v),u,u,u D(w),p(w),u 4,,, D(),p(),u D(),p(), D(),p() 4, 4, 4, u v w Network Laer 4-77 Dijkstra s algorithm: eample () Resulting shortest-path tree u: v w u Resulting forwarding table in u: destination v w link (u,v) (u,) (u,) (u,) (u,) Network Laer 4-78
Dijkstra s algorithm, discussion Algorithm compleit: n nodes each iteration: need to check all nodes, w, not in N n(n+)/ comparisons: O(n ) more efficient implementations possible: O(nlogn) Oscillations possible: e.g., link cost = amount of carried traffic A +e D 0 0 B 0 e C +e A 0 D +e B 0 0 C 0 A +e D 0 0 B +e C +e A 0 D +e B 0 e C e initiall recompute routing recompute recompute Network Laer 4-79 Chapter 4: Network Laer 4. Introduction 4. Virtual circuit and datagram networks 4. What s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4. Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Laer 4-80 6
Distance Vector Algorithm Bellman-Ford Equation (dnamic programming) Define d () := cost of least-cost path to Then d () = min {c(,v) + d v () } v where min is taken over all neighbors v of Network Laer 4-8 Bellman-Ford eample u v w Clearl, d v () =, d () =, d w () = B-F equation sas: d u () = min { c(u,v) + d v (), c(u,) + d (), c(u,w) + d w () } = min { +, +, + } = 4 Node that achieves minimum is net hop in shortest path forwarding table Network Laer 4-8 7
Distance Vector Algorithm D () = estimate of least cost to Node knows each neighbor v: c(,v) Node maintains distance vector D = [D (): є N ] Node also maintains its neighbors distance vectors For each neighbor v, maintains D v = [D v (): є N ] Network Laer 4-8 Distance vector algorithm (4) Basic idea: From time-to-time, each node sends its own distance vector estimate to neighbors Asnchronous When a node receives new DV estimate neighbor, it updates its own DV using B-F equation: D () min v {c(,v) + D v ()} for each node N Under minor, natural conditions, the estimate D () converge to the actual least cost d () Network Laer 4-84 8
Distance Vector Algorithm () Iterative, asnchronous: each local iteration caused b: local link cost change DV update message neighbor Distributed: each node notifies neighbors onl when its DV changes neighbors then notif their neighbors if necessar Each node: wait for (change in local link cost or msg neighbor) recompute estimates if DV to an dest has changed, notif neighbors Network Laer 4-8 D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = node table 0 7 node table node table 0 7 0 0 0 7 0 time D () = min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 7 Network Laer 4-86 9
D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = node table 0 7 0 0 0 0 7 0 0 node table 0 7 0 0 0 0 7 0 0 node table 7 0 0 7 0 0 0 0 0 time D () = min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 7 Network Laer 4-87 Distance Vector: link cost changes Link cost changes: node detects local link cost change updates routing info, recalculates distance vector if DV changes, notif neighbors 4 0 good news travels fast At time t 0, detects the link-cost change, updates its DV, and informs its neighbors. At time t, receives the update and updates its table. It computes a new least and sends its neighbors its DV. At time t, receives s update and updates its distance table. s least costs do not change and hence does not send an message to. Network Laer 4-88 0
Distance Vector: link cost changes Link cost changes: good news travels fast bad news travels slow - count to infinit problem! 44 iterations before algorithm stabilies: see tet 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 completel solve count to infinit problem? 60 4 0 Network Laer 4-89 Comparison of LS and DV algorithms Message compleit LS: with n nodes, E links, O(nE) msgs sent DV: echange between neighbors onl convergence time varies Speed of Convergence LS: O(n ) algorithm requires O(nE) msgs ma have oscillations DV: convergence time varies ma be routing loops count-to-infinit problem Robustness: what happens if router malfunctions? LS: node can advertise incorrect link cost each node computes onl its own table DV: DV node can advertise incorrect path cost each node s table used b others error propagate thru network Network Laer 4-90
Chapter 4: Network Laer 4. Introduction 4. Virtual circuit and datagram networks 4. What s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4. Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Laer 4-9 Hierarchical Routing Our routing stud thus far - idealiation all routers identical network flat not true in practice scale: with 00 million destinations: can t store all dest s in routing tables! routing table echange would swamp links! administrative autonom internet = network of networks each network admin ma want to control routing in its own network Network Laer 4-9
Hierarchical Routing aggregate routers into regions, autonomous sstems (AS) routers in same AS run same routing protocol intra-as routing protocol routers in different AS can run different intra- AS routing protocol Gatewa router Direct link to router in another AS Network Laer 4-9 Interconnected ASes c a b AS a c d b Intra-AS Routing algorithm AS Forwarding table Inter-AS Routing algorithm a c b AS forwarding table configured b both intra- and inter-as routing algorithm intra-as sets entries for internal dests inter-as & intra-as sets entries for eternal dests Network Laer 4-94
Inter-AS tasks suppose router in AS receives datagram destined outside of AS: router should forward packet to gatewa router, but which one? AS must:. learn which dests are reachable through AS, which through AS. propagate this reachabilit info to all routers in AS Job of inter-as routing! c a b AS a c d b AS a c b AS Network Laer 4-9 Eample: Setting forwarding table in router d suppose AS learns (via inter-as protocol) that subnet reachable via AS (gatewa c) but not via AS. inter-as protocol propagates reachabilit info to all internal routers. router d determines intra-as routing info that its interface I is on the least cost path to c. installs forwarding table entr (,I) c a b AS a c d b AS a c b AS Network Laer 4-96 4
Eample: Choosing among multiple ASes now suppose AS learns inter-as protocol that subnet is reachable AS and AS. to configure forwarding table, router d must determine towards which gatewa it should forward packets for dest. this is also job of inter-as routing protocol! c a b AS c a d b AS a c b AS Network Laer 4-97 Eample: Choosing among multiple ASes now suppose AS learns inter-as protocol that subnet is reachable AS and AS. to configure forwarding table, router d must determine towards which gatewa it should forward packets for dest. this is also job of inter-as routing protocol! hot potato routing: send packet towards closest of two routers. Learn inter-as protocol that subnet is reachable via multiple gatewas Use routing info intra-as protocol to determine costs of least-cost paths to each of the gatewas Hot potato routing: Choose the gatewa that has the smallest least cost Determine forwarding table the interface I that leads to least-cost gatewa. Enter (,I) in forwarding table Network Laer 4-98