Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4 – The Network Layer & Routing

Similar presentations


Presentation on theme: "Chapter 4 – The Network Layer & Routing"— Presentation transcript:

1 Chapter 4 – The Network Layer & Routing
application transport network data link physical network data link physical network data link physical network data link physical Chapter 4 – The Network Layer & Routing network data link physical network data link physical network data link physical network data link physical application transport network data link physical network data link physical application transport network data link physical The network layer moves transport layer segments from host to host in the network, to deliver them to their destination. This layer involves each and every host and router in the network. We will study the key principles and algorithms of routing, with a focus on the Internet Protocol (IP) service model. 4: Network Layer

2 Chapter 4: Network Layer
Chapter goals: understand principles behind network layer services: routing (path selection) dealing with scale how a router works … switching advanced topics: IPv6, multicast intro instantiation and implementation in the Internet Overview: network layer services routing principle: path selection hierarchical routing IP Internet routing protocols intra-domain inter-domain what’s inside a router? IPv6 multicast routing 4: Network Layer

3 Network layer functions
transport packet from sending to receiving hosts network layer protocols in every host, router three important functions: path determination: route taken by packets from source to destination - routing algorithms switching: move packets from router’s input to appropriate router output call setup: some network architectures require router call setup along path before data flows (what types?) application transport network data link physical network data link physical 4: Network Layer

4 Network service model Q: What is the appropriate service model for transporting packets from sender to receiver? guaranteed bandwidth? preservation of inter-packet timing (no jitter)? loss-free delivery? in-order delivery? congestion feedback to sender? The most important service abstraction to consider, as provided by the network layer: ? virtual circuit network or datagram network? ? ? service abstraction Recall: don’t confuse the term “datagram” as used here with the Java UDP segment name discussed earlier. 4: Network Layer

5 Virtual circuits the source-to-destination path behaves much like a telephone circuit performance-wise network actions along source-to-destination path call setup, teardown for each call before data can flow each packet carries VC identifier (not destination host ID) every router/switch on source-destination path maintains a “state” for each passing connection Recall: transport-layer connection only involved two end systems link and router resources (bandwidth, buffers) may be dedicated to the VC to get circuit-like performance but… what about start-up delay? 4: Network Layer

6 Virtual circuits: signaling protocols
used to setup, maintain and teardown the VC used in ATM, frame-relay and X.25 not used in the Internet (why?) application transport network data link physical application transport network data link physical 5. Data flow begins 6. Receive data 4. Call connected 3. Accept call 1. Initiate call 2. incoming call 4: Network Layer

7 Datagram networks: the Internet model
no call setup at network layer routers: do not maintain state for the end-to-end connections no network-level concept of a “connection” packets are typically routed using only destination host ID which is carried in the packet packets between same source-destination pair may take different paths application transport network data link physical application transport network data link physical 1. Send data 2. Receive data 4: Network Layer

8 Network layer service models:
Guarantees ? Network Architecture Internet ATM Service Model best effort CBR VBR ABR UBR Congestion feedback no (inferred via loss) no congestion yes Bandwidth none constant rate guaranteed minimum Loss no yes Order no yes Timing no yes Note- the Internet model may be extended: Integrated Services (Intserv), Differentiated Services (Diffserv) Chapter 6 4: Network Layer

9 Summary: Datagram or VC network… why?
Internet data exchange among computers “elastic” service, no strict timing required (data delivery) “smart” end systems (computers) can adapt, perform control, error recovery complexity at “edge”, simple in network core many link types different characteristics uniform service difficult ATM evolved from telephony human conversation: strict timing, reliability requirements need for guaranteed service “dumb” end systems telephones, “videophones” complexity inside the network Consider: IP over ATM (more later) 4: Network Layer

10 Goal: determine a “good” path
Routing A E D C B F 2 1 3 5 Routing protocol Goal: determine a “good” path (sequence of routers) thru the network from the source to the destination Graph abstraction for routing algorithms: graph nodes are routers graph edges are physical links link cost: delay, distance, # of hops, rate structure or congestion level = $$ Other costs?? “good” path: typically means minimum cost path other definitions also possible 4: Network Layer

11 Routing Algorithm classification
Global or decentralized cost information? Global: all routers have complete topology & link cost info “link state” algorithms Decentralized: router knows physically-connected neighbors, link costs to route 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 algorithm-driven updates responsive to link cost changes A E D C B F 2 1 3 5 4: Network Layer

12 A Link-State Routing Algorithm
Dijkstra’s algorithm net topology, link costs known to all nodes accomplished via “link state broadcast” all nodes have same info computes least cost paths from one node (“source”) to all other nodes yields a routing table for that node iterative: after k iterations, know least cost path to k destinations Notation: c(i,j): link cost from node i to node j. Cost is initially infinite if not a direct neighbor D(v): current computed value of cost of the path from the source to destination v p(v): predecessor node, that is a neighbor of v, along the path from the source to v N: set of nodes whose least cost path is definitively known 4: Network Layer

13 Dijsktra’s Algorithm 1 Initialization: 2 N = {A} // Source node is “A”
3 for all nodes v if v adjacent to A then D(v) = c(A,v) else D(v) = infinity 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: D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known shortest path cost to w plus cost from w to v */ 15 until all nodes in N A E D C B F 2 1 3 5 4: Network Layer

14 Dijkstra’s algorithm: example
Step 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A - D(C),p(C) 5,A 4,D 3,E - D(D),p(D) 1,A - D(E),p(E) infinity 2,D - D(F),p(F) infinity 4,E A E D C B F 2 1 3 5 4: Network Layer

15 Dijkstra’s algorithm, discussion
Algorithm complexity: n nodes each iteration: need to check all nodes, w, not in N n*(n+1)/2 comparisons => worst case complexity O(n2) more efficient implementations possible: O(nlogn) Oscillations possible with congestion-based costing: e.g., link cost = amount of carried traffic (load) A A D C B 2+e 1+e 1 A A D C B 2+e e 1+e 1 1 1+e 2+e D B D B e 1 C 1+e C 1 1 e … recompute routing … recompute … recompute initially 4: Network Layer

16 Distance Vector Routing Algorithm
iterative: continues until no nodes exchange info. self-terminating: no “signal” to stop asynchronous: nodes need not exchange info/iterate in lock step! distributed: each node communicates only with directly-attached neighbors Distance Table data structure each node has its own row for each possible destination column for each directly-attached neighbor to node example: in node X, for destination Y via neighbor Z: distance from X to Y, via Z as next hop = DX(Y,Z) = c(X,Z) + minw {DZ(Y,w)} 4: Network Layer

17 Distance Table: example
7 8 1 2 D () A B C D 1 7 6 4 14 8 9 11 5 2 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 loop back through E! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 loop back through E! 4: Network Layer

18 Distance table gives routing table
1 7 6 4 14 8 9 11 5 2 E cost to destination via destination Outgoing link to use, cost E A B C D A,1 D,5 D,4 D,2 destination Distance table Routing table >> next link, cost 4: Network Layer

19 Distance Vector Routing: overview
Iterative, asynchronous: each local iteration caused by: local link cost change message from neighbor: its least cost path changed from a neighbor Distributed: each node notifies neighbors only when its least cost path to any destination changes neighbors then notify their neighbors if necessary Each node: wait for (change in local link cost, or notification from a neighbor) recompute distance table if least cost path to any dest. has changed, notify neighbors 4: Network Layer

20 Distance Vector Algorithm (Bellman-Ford):
At all nodes, X: 1 Initialization: 2 for all adjacent nodes v: D (*,v) = infinity /* the * operator means "for all rows" */ D (v,v) = c(X,v) 5 for all destinations, y send min D (y,w) to each neighbor /* w over all X's neighbors */ X X X w 4: Network Layer

21 Distance Vector Algorithm (cont.):
8 loop 9 wait (until I see a link cost change to neighbor V or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) /* change cost to all dest's via neighbor v by d */ /* note: d could be positive or negative */ for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) /* shortest path from V to some Y has changed */ /* V has sent a new value for its min DV(Y,w) */ /* call this received new value is "newval" */ for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y send new value of min D (Y,w) to all neighbors 25 26 forever X X w X X w X w 4: Network Layer

22 Distance Vector Algorithm: example
Z 1 2 7 Y E.G., at node X: Information from Y that its cost to Z is 1… add to X cost to Z via Y Information from Z that its cost to Y is 1… add to X cost to Y via Z 4: Network Layer

23 Distance Vector Algorithm: example
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 4: Network Layer

24 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 C D 1 DB A C E 7 1 D 8 Initialize… & update DC B D A 1 2 E DD C E A B 2 DE A B D 1 8 C 2 4: Network Layer

25 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 C D 1 DB A C E 7 1 D 8 DC B D A 1 2 E DD C E A B 2 DE A B D 1 8 C 2 4: Network Layer

26 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 9 C D 3 1 DB A C E 7 9 1 D 10 8 DC B D A 1 2 E DD C E A 3 B 10 2 DE A B D 1 8 C 2 4: Network Layer

27 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 9 C D 3 1 DB A C E 7 9 1 D 10 8 DC B D A 1 2 E DD C E A 3 B 10 2 DE A B D 1 8 C 2 4: Network Layer

28 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 9 C 8 D 17 3 15 1 DB A C E 7 9 1 D 10 8 DC B D A 8 1 11 2 E 9 DD C E A 3 B 10 2 DE A B D 1 15 8 C 9 18 2 4: Network Layer

29 Distance Vector Algorithm: example
B 7 8 1 2 DA B E 7 9 C 8 D 17 3 15 1 DB A C E 7 9 1 D 10 8 and so on… DC B D A 8 1 11 2 E 9 DD C E A 3 B 10 2 DE A B D 1 15 8 C 9 18 2 4: Network Layer

30 Distance Vector: link cost changes
node detects local link cost change updates distance table (line 15) if cost change in least cost path, notify neighbors (lines 23,24) X Z 1 4 50 Y algorithm terminates “good news travels fast” 4: Network Layer

31 Distance Vector: link cost changes
good news travels fast bad news travels slowly - “count to infinity” problem! X Z 1 4 50 Y 60 Y algorithm continues on! 4: Network Layer

32 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 Y algorithm terminates 4: Network Layer

33 Comparison of LS and DV algorithms
Message complexity LS: with n nodes, E links, O(nE) msgs sent/broadcast 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 poisoned reverse is sometimes successful 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 errors propagate through the network 4: Network Layer


Download ppt "Chapter 4 – The Network Layer & Routing"

Similar presentations


Ads by Google