Download presentation
Presentation is loading. Please wait.
1
Chapter 4: outline 4.1 introduction
4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol datagram format IPv4 addressing ICMP IPv6 4.5 routing algorithms link state distance vector hierarchical routing 4.6 routing in the Internet RIP OSPF BGP 4.7 broadcast and multicast routing Network Layer
2
Interplay between routing, forwarding
routing algorithm determines end-end-path through network routing algorithm forwarding table determines local forwarding at this router local forwarding table dest address output link address-range 1 address-range 2 address-range 3 address-range 4 3 2 1 IP destination address in arriving packet’s header 1 2 3 Network Layer
3
Graph abstraction z x u y w v 5 2 3 1 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) } Network Layer
4
Graph abstraction: costs
c(x,x’) = cost of link (x,x’) e.g., c(w,z) = 5 cost is inversely related to bandwidth, or proportionally related to congestion - high bandwidth, low congestion: cost 1 - low bandwidth, high congestion: high cost u y x w v z 2 1 3 5 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
5
Routing Algorithm classification
[Classification 1] Global or Decentralized information? Global: all routers have complete topology and link cost info. “link state (LS)” algorithms Decentralized: router only knows physically-connected neighbors and link costs to neighbors “distance vector (DV)” algorithms Network Layer
6
Routing Algorithm classification
[Classification 2] Static or Dynamic? Static: Manual setup Network administrator usually setups the route routes does not change, or change slowly over time Dynamic: routes change more quickly periodic update in response to link cost changes LS and DV algorithms Network Layer
7
Routing Algorithm classification
Static routing Manually configuration routing table Single “permanent” route is configured for each source to destination pair Routes usually determined using a least cost algorithm Route fixed, at least until a change in network topology Can’t react dynamically to network change such as router’s crash Practically, fixed routing is much used within a local domain
8
Routing Algorithm classification
Dynamic route Network protocol adjusts automatically for topology or traffic changes Unix hosts can run routing daemon routed or gated Routing Table Routing Table Routing Protocol Routing Protocol Update Routing Information
9
Routing Algorithm classification
[Classification 3] Source or Hop-by-Hop? Source routing: Source will determine the entire route Routers only act as store-forward devices Hop-by-hop: Routers determine the path based on theirs’ own information LS and DV algorithms Network Layer
10
Chapter 4: outline 4.1 introduction
4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol datagram format IPv4 addressing ICMP IPv6 4.5 routing algorithms link state distance vector hierarchical routing 4.6 routing in the Internet RIP OSPF BGP 4.7 broadcast and multicast routing Network Layer
11
Flooding “Link State” Each node floods “link status” to the entire routers Packet sent by source router to every neighbor Incoming packet resent to all outgoing links except source link Duplicate packets already transmitted are discarded Prevent endless retransmission All routers get information to build routing table High traffic load Use the link state to build a shortest path map to every node Also known as Shortest Path First (SPF) algorithm Network Layer
12
Link State Algorithm - Overview
Exchange its connection and cost to its neighbors All nodes will have same info Each router computes the set of optimum path to all destination (using a Shortest Path - Dijkstra's algorithm) W X Y Z link state link state link state Network Layer
13
Link State Algorithm - Overview
Each router initially begins with directly connected network Link state flooding (broadcast) Determine full knowledge of distant routers and their connection R1 exchange link state packets R2 R4 build topological database Routing Table R3 compute SPF update routing table Network Layer
14
Link State Algorithm - Overview
On the topology change, send the change information to other routers All information will converge R1 R4 topology change R2 R3 Network Layer
15
A Link-State Routing Algorithm
Dijkstra’s algorithm net topology, link costs known to all nodes computes the least cost paths from one node (‘source”) to all other nodes Result: forwarding table for that node iterative: after k iterations, know least cost path to k destinations. 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 Network Layer
16
Dijsktra’s Algorithm (see this, not one in the book)
Inside node u u y x w v z 2 1 3 5 0 Pre-calculation: c(u,v) c(u,x) c(u,y) c(u,w) c(u,z) 2 1 ∞ 5 link cost value c(v,u) c(v,x) c(v,y) c(v,w) c(v,z) 2 ∞ 3 link cost value c(x,u) c(x,v) c(x,y) c(x,w) c(x,z) 1 2 3 ∞ link cost value c(y,u) c(y,v) c(y,x) c(y,w) c(y,z) ∞ 1 2 link cost value c(w,u) c(w,v) c(w,x) c(w,y) c(w,z) 5 3 1 link cost value c(z,u) c(z,v) c(z,x) c(z,y) c(z,w) ∞ 2 5 link cost value Network Layer
17
Dijsktra’s Algorithm (see this, not one in the book)
Inside node u u y x w v z 2 1 3 5 1 Initialization: 2 N' = {u} 3 for all nodes v if v adjacent to u then D(v) = c(u,v), p(v)=u else D(v) = ∞ 7 8 Loop 9 find e not in N' such that D(e) is a minimum 10 add e to N' 11 update D(n) for all n (not in N') adjacent to e: if (D(e) + c(e,n) < D(n)) { D(n) = D(e) + c(e,n), p(n) = e } 15 /* new cost to n is either old cost to n or shortest path cost to e plus cost from e to n */ 17 until all nodes in N' Network Layer
18
Dijkstra’s algorithm: example
Step 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 D(n) = min( D(n), D(e) + c(e,n) ) u y x w v z 2 1 3 5 [Example] Step1: D(w) = min(D(w), D(x) + c(x,w)) = min(5, 1 + 3) = D(y) = min(D(y), D(x) + c(x,y)) = min(∞, 1 + 1) = 2 Step2: D(w) = min(D(w), D(y) + c(y,w)) = min(4, 2 + 1) = 3 Network Layer
19
Dijkstra’s algorithm: example
resulting shortest-path tree from u: u y x w v z “resulting forwarding table” in u: v x y w z (u,v) (u,x) destination link Network Layer
20
Dijkstra’s algorithm: another example
D(v) p(v) D(w) p(w) D(x) p(x) D(y) p(y) D(z) p(z) Step N' u ∞ 7,u 3,u 5,u 1 uw ∞ 11,w 6,w 5,u 2 uwx 14,x 11,w 6,w 3 uwxv 14,x 10,v 4 uwxvy 12,y 5 uwxvyz w 3 4 v x u 5 7 y 8 z 2 9 notes: construct shortest path tree by tracing predecessor nodes Network Layer
21
Dijkstra’s algorithm, discussion
oscillations possible: link cost amount of carried traffic Initial traffic z w: 1 traffic x w: 1 traffic y w: e traffic routers execute their LS routing algorithm with the same periodicity Solution: ensure that not all routers run the LS algorithm at the same time. Network Layer
22
Chapter 4: outline 4.1 introduction
4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol datagram format IPv4 addressing ICMP IPv6 4.5 routing algorithms link state distance vector hierarchical routing 4.6 routing in the Internet RIP OSPF BGP 4.7 broadcast and multicast routing Network Layer
23
Distance vector algorithm
At Node i, for the destination j via all other neighbor nodes let dx(y) := cost of least-cost path from x to y then dx(y) = min {c(x,v) + dv(y) } a, 22.7 b, 28.1 c, 15.1 di(j) = where a, b, c are the i‘s neighbors Bellman-Ford equation (dynamic programming) v cost from neighbor v to destination y cost to neighbor v min taken over all neighbors v of x Network Layer
24
Bellman-Ford example Assume that router u knows…
dv(z) = 5, dx(z) = 3, dw(z) = 3 u y x w v z 2 1 3 5 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 achieving minimum” is the next hop in shortest path and it will be used in forwarding table Network Layer
25
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 “exact” 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
26
Distance vector algorithm
key idea: from time-to-time, each node sends its own distance vector (DV) 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 under natural conditions, the estimate Dx(y) will converge to the actual cost dx(y) Network Layer
27
Distance vector algorithm
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 each node: wait for (change in local link cost or msg from neighbor) recompute estimates if DV to any dest has changed, notify neighbors Network Layer
28
z y x Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 node x table cost to cost to x y z x y z x x 2 3 y from ∞ ∞ ∞ from y z z ∞ ∞ ∞ node y table cost to x z 1 2 7 y x y z x ∞ ∞ ∞ y from z ∞ ∞ ∞ node z table cost to x y z x ∞ ∞ ∞ from y ∞ ∞ ∞ z 7 1 time Network Layer
29
z y x Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 node x table cost to cost to cost to x y z x y z x y z x x 2 3 x y from y ∞ ∞ ∞ from y from z z ∞ ∞ ∞ z node y table cost to cost to x z 1 2 7 y cost to x y z x y z x y z x ∞ ∞ ∞ x x y y from from y from z z ∞ ∞ ∞ z node z table cost to cost to cost to x y z x y z x y z Dz(x) = min{c(z,x) Dx(x), c(z,y) + Dy(x)} = min{7+0 , 1+2} = 3 x x x ∞ ∞ ∞ y from y y from from ∞ ∞ ∞ z z z 7 1 time time Network Layer
30
Distance vector: link cost changes
SKIP!! 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 x z 1 4 50 y “good news travels fast” t0 : y detects link-cost change, updates its DV, informs its neighbors. t1 : z receives update from y, updates its table, computes new least cost to x , sends its neighbors its DV. t2 : y receives z’s update, updates its distance table. y’s least costs do not change, so y does not send a message to z. Network Layer
31
Distance vector: link cost changes
SKIP!! Distance vector: link cost changes link cost changes: node detects local link cost change bad news travels slow - “count to infinity” problem! 44 iterations before algorithm stabilizes x z 1 4 50 y 60 At time t0, y detects the link-cost change, updates its DV, and informs its neighbors. Dy(x) = min{c(y,x)+Dx(x), c(y,z)+Dz(x)} = min{60+0, 1+5} = 6 “Routing Loop” occurs (from y to x: y send to z and z send to y) At time t1, z receives the update from y and updates its table. Dz(x) = min{c(z,x)+Dx(x), c(z,y)+Dy(x)} = min{50+0, 1+6} = 7 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 DV, and inform its neighbor Dy(x) = min{c(y,x)+Dx(x), c(y,z)+Dz(x)} = min{60+0, 1+7} = 8 … Network Layer
32
Distance vector: link cost changes
SKIP!! Distance vector: link cost changes 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 Network Layer
33
Comparison of LS and DV algorithms
robustness: what happens if router malfunctions? LS: node can advertise incorrect link cost each node computes only its own table Incorrect link cost will be delivered after a (long) periodic time. DV: DV node can advertise incorrect path cost incorrect cost delivered immediately each node’s table used by others error propagate thru network message complexity LS: with n nodes, E links, O(nE) msgs sent Link State Flooding Fast Convergence DV: exchange between neighbors only convergence time varies (and slow) Weak point LS: O(n2) algorithm requires O(nE) msgs fast may have oscillations DV: convergence time varies (and slow) may be routing loops count-to-infinity problem Network Layer
34
Chapter 4: outline 4.1 introduction
4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol datagram format IPv4 addressing ICMP IPv6 4.5 routing algorithms link state distance vector hierarchical routing 4.6 routing in the Internet RIP OSPF BGP 4.7 broadcast and multicast routing Network Layer
35
Hierarchical routing our routing study thus far - idealization
all routers identical network “flat” … not true in practice scale: with 600 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 Network Layer
36
Hierarchical routing aggregate routers into regions, “autonomous systems (AS) ” routers in same AS run same routing protocol “intra-AS” routing protocol routers in different AS can run different intra-AS routing protocol gateway router: at “edge” of its own AS has link to router in another AS Network Layer
37
Interconnected ASes 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b Intra-AS Routing algorithm Inter-AS Forwarding table 3c forwarding table 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 Network Layer
38
Inter-AS tasks suppose router in AS1 receives datagram destined outside of AS1: router should forward packet to gateway router, but which one? AS1 must: learn which dests are reachable through AS2, which through AS3 propagate this reachability info to all routers in AS1 job of inter-AS routing! 3c 3a 3b 2c AS3 other networks AS1 1c 1a 1d 1b 2a 2b other networks AS2 Network Layer
39
Example: setting forwarding table in router 1d
suppose AS1 learns (via inter-AS protocol) that subnet x reachable via AS3 (gateway 1c), but not via AS2 inter-AS protocol propagates reachability info to all internal routers router 1d determines from intra-AS routing info that its interface I is on the least cost path to 1c installs forwarding table entry (x,I) … x 3c 3a 3b 2c AS3 other networks AS1 1c 1a 1d 1b 2a 2b other networks I AS2 Network Layer
40
Example: choosing among multiple ASes
now suppose AS1 learns from inter-AS protocol that subnet x is reachable from AS3 and from AS2. to configure forwarding table, router 1d must determine which gateway it should forward packets towards for dest x this is also job of inter-AS routing protocol! … x 3c …… 3a 3b 2c AS3 other networks AS1 1c 1a 1d 1b 2a 2b other networks AS2 ? Network Layer
41
Example: choosing among multiple ASes
now suppose AS1 learns from inter-AS protocol that subnet x is reachable from AS3 and from AS2. Before Inter-AS routing algorithm select one of two gateways, which gateways does the router 1d send a packet destined to subnet x? Just send it to gateway 1b (more closer one.) hot potato routing: send packet towards the closest of two gateways. the AS gets rid of the packet (the hot potato) as quickly as possible (more precisely, as inexpensively as possible). This is done by having a router send the packet to the gateway router that has the smallest router-to-gateway cost among all gateways with a path to the destination. Network Layer
42
Internet Routing Architecture
IGP: Interior Gateway Protocols - RIP, OSPF, IGRP EGP: Exterior Gateway Protocols - BGP(Boarder Gateway Protocol) Autonomous System IGP EGP/BGP IGP EGP/BGP IGP Autonomous System BGP4 BGP4 Autonomous System IGP IGP BGP4 Autonomous System EGP/BGP EGP/BGP EGP/BGP EGP/BGP IGP IGP IGP IGP Autonomous System Network Layer
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.