Download presentation
Presentation is loading. Please wait.
Published byΠανκρατιος Αναστασιάδης Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.