CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

Slides:



Advertisements
Similar presentations
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 22 Omar Meqdadi Department of Computer Science and Software Engineering University.
Advertisements

What is “Routing”? Routing algorithm that part of the network layer responsible for deciding on which output line to transmit an incoming packet Adaptive.
13 –Routing Protocols Network Layer4-1. Network Layer4-2 Chapter 4 Network Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd.
Lecture 8 Overview. Graph abstraction u y x wv z Graph: G = (N,E) N = set of routers = { u, v, w, x, y, z } E = set of links ={ (u,v),
Routing - I Important concepts: link state based routing, distance vector based routing.
Data Communication and Networks Lectures 8 and 9 Networks: Part 2 Routing Algorithms and Routing Protocols October 26, November 2, 2006.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.5 Routing algorithms m Link state m Distance.
Network Layer Design Isues Store-and-Forward Packet Switching Services Provided to the Transport Layer The service should be independent of the router.
Data Communication and Networks Lecture 7 Networks: Part 2 Routing Algorithms October 27, 2005.
4-1 Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving side, delivers.
Network Layer4-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley,
Routing Algorithms and Routing in the Internet
CPSC441: Routing1 Instructor: Anirban Mahanti Office: ICT Class Location: ICT 121 Lectures: MWF 12:00 – 12:50 hours.
Network Layer4-1 Chapter 4: Network Layer, partb The slides are adaptations of the slides available by the main textbook authors, Kurose&Ross.
Announcement r Project 2 extended to 2/20 midnight r Project 3 available this weekend r Homework 3 available today, will put it online.
Lecture 7 Overview. Two Key Network-Layer Functions forwarding: move packets from router’s input to appropriate router output routing: determine route.
4: Network Layer4a-1 14: Intro to Routing Algorithms Last Modified: 7/12/ :17:44 AM.
Announcement r Project 2 Extension ? m Previous grade allocation: Projects 40% –Web client/server7% –TCP stack21% –IP routing12% Midterm 20% Final 20%
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.5 Routing algorithms m Link state m Distance.
Announcement r Project 2 due next week! r Homework 3 available soon, will put it online r Recitation tomorrow on Minet and project 2.
EE 122: Intra-domain routing Ion Stoica September 30, 2002 (* this presentation is based on the on-line slides of J. Kurose & K. Rose)
1 Announcement #1 r Did you all receive homework #1 and #2? r Homework #3 will be available online during the day r Midterm.
Chapter 4 Network Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 18.
Network Layer r Introduction r Datagram networks r IP: Internet Protocol m Datagram format m IPv4 addressing m ICMP r What’s inside a router r Routing.
Introduction 1 Lecture 21 Network Layer (Routing Activity) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science &
Network Layer4-1 Chapter 4 Network Layer Part 3: Routing Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March.
10-1 Last time □ Transitioning to IPv6 ♦ Tunneling ♦ Gateways □ Routing ♦ Graph abstraction ♦ Link-state routing Dijkstra's Algorithm ♦ Distance-vector.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
13 – Routing Algorithms Network Layer.
Network Layer4-1 Distance Vector Algorithm Bellman-Ford Equation (dynamic programming) Define d x (y) := cost of least-cost path from x to y Then d x (y)
The Network Layer & Routing
1 Week 5 Lecture 2 IP Layer. 2 Network layer functions transport packet from sending to receiving hosts transport packet from sending to receiving hosts.
Routing 1 Network Layer Network Layer goals:  understand principles behind network layer services:  routing (path selection)  how a router works  instantiation.
Introduction 1 Lecture 19 Network Layer (Routing Algorithms) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 20 Omar Meqdadi Department of Computer Science and Software Engineering University.
Internet Routing r Routing algorithms m Link state m Distance Vector m Hierarchical routing r Routing protocols m RIP m OSPF m BGP.
Computer Networks CSE 434 Fall 2009 Sandeep K. S. Gupta Arizona State University Research Experience.
Transport Layer 3-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley Chapter4_3.
Network Layer4-1 Routing Algorithm Classification Global or decentralized information? Global: r all routers have complete topology, link cost info r “link.
Advance Computer Networks Lecture#07 to 08 Instructor: Engr. Muhammad Mateen Yaqoob.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
4: Network Layer4a-1 Distance Vector Routing Algorithm iterative: r continues until no nodes exchange info. r self-terminating: no “signal” to stop asynchronous:
Network Layer (2). Review Physical layer: move bits between physically connected stations Data link layer: move frames between physically connected stations.
Network Layer4-1 NAT: Network Address Translation local network (e.g., home network) /24 rest of.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
4: Network Layer4-1 Chapter 4: Network Layer Last time: r Chapter Goals m Understand network layer principles and Internet implementation r Started routing.
Project 2 r DUE Wed: 02/24 Network Layer4-1. Project 2 r DUE Wed: 02/24 r DUE Mon: 02/29 Network Layer4-2.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
CSE 421 Computer Networks. Chapter 4 Network Layer Thanks to you All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Computer.
Application Layer 2-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
IP tutorial - #2 Routing KAIST Dept. of CS NC Lab.
Application Layer 2-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
Network Layer4-1 Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol.
CS 5565 Network Architecture and Protocols
Chapter 4 Network Layer Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CPSC 335 Data Communication.
Chapter 7 Dynamic Routing
Chapter 4 Network Layer A note on the use of these ppt slides:
Network Layer Introduction Datagram networks IP: Internet Protocol
Distance Vector Routing: overview
Road Map I. Introduction II. IP Protocols III. Transport Layer
Lecture 10 Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CS3516: These slides are generated from.
Chapter 4-4 routing and IP routing
CS4470 Computer Networking Protocols
Chapter 4: Network Layer
Network Layer (contd.) Routing
Chapter 4: Network Layer
Network Layer: Link-state and Distance-Vector Routing Protocols
Chapter 4: Network Layer
EE 122: Intra-domain routing: Link State
Chapter 4 Network Layer A note on the use of these ppt slides:
Presentation transcript:

CS 4284 Systems Capstone Godmar Back Networking

CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching) –Service models –Datagram Networks vs VC Networks –Basics of routers Packet classification, Packet Scheduling, AQM Next: Routing Algorithms

CS 4284 Spring 2013 The Network Layer transports segment from sending to receiving host on sending side encapsulates segments into datagrams on receiving side, delivers segments to transport layer network layer protocols in every host, router router examines header fields in all IP datagrams passing through it network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical application transport network data link physical

CS 4284 Spring 2013 Key Network-Layer Functions forwarding: move packets from router’s input to appropriate router output routing: determine route taken by packets from source to dest. –Routing algorithms analogy: routing: process of planning trip from source to dest forwarding: process of getting through single interchange

CS 4284 Spring value in arriving packet’s header routing algorithm local forwarding table header value output link Interplay between Routing and Forwarding

Routing Algorithms

CS 4284 Spring 2013 u y x wv z 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) } Graph abstraction

CS 4284 Spring 2013 Graph Abstraction: Costs u y x wv z c(x,x’) = cost of link (x,x’) - e.g., c(w,z) = 5 cost could always be 1, or inversely related to bandwidth, or inversely related to congestion Cost of path (x 1, x 2, x 3,…, x p ) = c(x 1,x 2 ) + c(x 2,x 3 ) + … + c(x p-1,x p ) Question: What’s the least-cost path between u and z ?

CS 4284 Spring 2013 Routing Algorithm Classification Global or decentralized information? Global: all routers have complete topology, link cost info “link state” algorithms Decentralized: router knows physically- connected neighbors, link costs 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 update –in response to link cost changes Note: Global/decentralized classification does not say where routing computation is performed, it says what information one has when computing routes

CS 4284 Spring 2013 Link State Routing Routers periodically broadcast link state information –link state messages or LSA (link state advertisement) –broadcast via sequence-number controlled flooding All routers acquire complete connectivity + link cost information of entire network Each router computes routing table from that obtained topology –Dijkstra’s shortest path to other routers, from computing router  this becomes forwarding table

CS 4284 Spring 2013 Link State Broadcast Goal: every node obtains a copy of this table –and updates as conditions change u y x wv z uvwxyz u0251  v2032  w x12301  y  1102 z  5  20

CS 4284 Spring 2013 Link State Broadcast (2) Idea: –Send n’th row of own adjacency matrix – (conceptually, at least) –With sender id n –Sequence number k On receipt of msg from node n, node m updates n’th row with msg content –update adj[m][n] to note connection to neighbor with link cost Controlled flooding, based on sequence number First round, everybody sends u y x wv z *,0  from node_id seq number

CS 4284 Spring 2013 Link State Broadcast (3) u’s view after first broadcast u y x wv z uvwxyz u0251  v  0  w  0  x  0  y  0  z  0

CS 4284 Spring 2013 Link State Broadcast (4) v’s view after first broadcast u y x wv z uvwxyz u0  v2032  w  0  x  0  y  0  z  0

CS 4284 Spring 2013 Link State Broadcast (5) Msgs exchanged in second round u y x wv z u,10251  v,12032  w, x,  y,1  1102 z,1  5  20

CS 4284 Spring 2013 Link State Broadcast (6) everybody’s view after 2 nd broadcast –Link changes will cause new broadcasts u y x wv z uvwxyz u0251  v2032  w x12301  y  1102 z  5  20

CS 4284 Spring 2013 Dijkstra’s algorithm 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 Idea: –Keep track of nodes to whom least cost path is known –Keep track of complement: “candidate set” – for which you have estimates of cost Start with one node –Create estimates for adjacent nodes Repeat –Choose best candidate, update estimates for other candidates based on candidate’s neighbors –Remove candidate from candidate set and add to known set Until done

CS 4284 Spring 2013 Dijkstra’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'

CS 4284 Spring , u 4, x 2, x  2, u 3, y 4, y 3, y 4, y 4, y 2, u 5, u 1, u   Dijkstra’s Algorithm Example u y x wv z Step N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z)vwxy z 0 u 1 u 2 ux 3 uxy 5 uxyvw 4 uxyv Done!

CS 4284 Spring 2013 Implementing Link State Routing “HELLO” neighbor protocol –Get to know your neighbors –Learn if neighbor moves out (link goes down) LSA broadcast protocol –Let the entire world know who your neighbors are As soon as you learn who yours are Whenever your knowledge changes –Help others broadcast information about their neighbors to entire world (until everybody learns entire topology) –Maintain sequence numbers to prevent circular forwarding The two can be combined (design choice)

CS 4284 Spring 2013 Dijkstra’s algorithm, discussion Algorithm complexity: n nodes, assume |E| << n 2 each iteration: need to check all nodes, w, not in N n(n+1)/2 comparisons: O(n 2 ) more efficient implementations possible: O(nlogn) Oscillations possible: If, for instance, link cost = amount of carried traffic A D C B 1 1+e e 0 e A D C B 2+e e 1 A D C B 0 2+e 1+e A D C B 2+e e 1 initially … recompute routing … recompute

CS 4284 Spring 2013 Distance Vector Algorithm (1) Bellman-Ford Equation (dynamic programming) Define d x (y) := cost of least-cost path from x to y Then d x (y) = min {c(x,v) + d v (y) } where min is taken over all neighbors of x

CS 4284 Spring 2013 Bellman-Ford Example (2) u y x wv z Clearly, d v (z) = 5, d x (z) = 3, d w (z) = 3 d u (z) = min { c(u,v) + d v (z), c(u,x) + d x (z), c(u,w) + d w (z) } = min {2 + 5, 1 + 3, 5 + 3} = 4 Node that achieves minimum is next hop in shortest path ➜ forwarding table B-F equation says:

CS 4284 Spring 2013 Distance Vector Algorithm (3) D x (y) = estimate of least cost from x to y Distance vector: D x = [D x (y): y  N ] Node x knows cost to each neighbor v: c(x,v) Node x maintains D x = [D x (y): y  N ] Node x also maintains its neighbors’ distance vectors (at least temporarily) –For each neighbor v, x maintains D v = [D v (y): y  N ]

CS 4284 Spring 2013 Distance Vector Algorithm (4) Basic Idea: Each node periodically sends its own distance vector estimate to neighbors When a node x receives new DV estimate from neighbor, it updates its own DV using B-F equation: D x (y) ← min v {c(x,v) + D v (y)} for each node y ∊ N Under minor, natural conditions, the estimate D x (y) converges to actual least cost d x (y)

CS 4284 Spring 2013 Distance Vector Algorithm (5) 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 wait for (change in local link cost of msg from neighbor) recompute estimates if DV to any dest has changed, notify neighbors Each node:

CS 4284 Spring 2013 Example DV Routing  

CS 4284 Spring 2013 Example (cont’d)   time 341- D x (y) ← min v {c(x,v) + D v (y)} for each node y ∊ N

CS 4284 Spring 2013 Example (cont’d) Converged after 3 iterations What if link cost changes?

CS 4284 Spring 2013 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 “good news travels fast” x z y 1 At time t 0, y detects the link-cost change, updates its DV, and informs its neighbors. At time t 1, z receives the update from y and updates its table. It computes a new least cost to x and sends its neighbors its DV. At time t 2, y receives z’s update and updates its distance table. y’s least costs do not change and hence y does not send any message to z.

CS 4284 Spring 2013 Count-To-Infinity x z 1 4 y 60 x y z Before change: y to x via z z to x via y y to x via z 51 50

CS 4284 Spring 2013 Distance Vector: Link Cost Changes Link cost changes: good news travels fast bad news travels slow - “count to infinity” problem! 44 iterations before algorithm stabilizes 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 y 60

CS 4284 Spring 2013 Poisoned Reverse x z 1 4 y After change: y to x via z z to x via x  -1 Don’t tell z dist to x x y z

CS 4284 Spring 2013 Comparison of LS and DV algorithms Message complexity LS: with n nodes, E links, O(nE) msgs sent DV: exchange between neighbors only –convergence time varies Speed of Convergence LS: O(n 2 ) algorithm requires O(nE) msgs –may have oscillations DV: convergence time varies –may be routing loops –count-to-infinity problem 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 error propagates thru network

CS 4284 Spring 2013 Hierarchical Routing scale: with 200 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 Our routing study thus far - idealization all routers identical network “flat” … not true in practice

CS 4284 Spring 2013 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 may run different intra- AS routing protocols Gateway router Direct link to router in another AS Example: –[AS1312]AS1312

CS 4284 Spring b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b Intra-AS Routing algorithm Inter-AS Routing algorithm Forwarding table 3c Interconnected ASes Forwarding table is 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

CS 4284 Spring b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c Inter-AS tasks Suppose router in AS1 receives datagram for which dest is outside of AS1 –Router should forward packet towards one of the gateway routers, but which one? AS1 needs: 1.to learn which dests are reachable through AS2 and which through AS3 2.to propagate this reachability info to all routers in AS1 Job of inter-AS routing!

CS 4284 Spring b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c Inter-AS tasks (cont’d) Suppose router in AS1 receives datagram for which dest is outside of AS1 –Router should forward packet towards one of the gateway routers, but which one? Scenario 1 Destination x is reachable through single AS Inter-AS must propagate this information inside AS AS3 advertises route to x AS2 does not advertise route to x Spread in AS1: use gateway 1c to get to x Least cost path to 1c is interface l, add (x, l) to routing table

CS 4284 Spring b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c Hot Potato Routing Suppose router in AS1 receives datagram for which dest is outside of AS1 –Router should forward packet towards one of the gateway routers, but which one? Scenario 2: Destination is reachable through multiple AS: Hot potato routing: send packet towards closest of two routers

CS 4284 Spring b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c Hot Potato Routing Suppose router in AS1 receives datagram for which dest is outside of AS1 –Router should forward packet towards one of the gateway routers, but which one? Scenario 2: Destination is reachable through multiple AS: Hot potato routing: send packet towards closest of two routers AS3 advertises route to x AS2 advertises route to x Spread in AS1: 1c and 1b lead to x 1b is closer than 1c, interface k leads to 1b, so add (x, k) to routing table

CS 4284 Spring 2013 Summary Routing algorithms: –Link State –Distance Vector Hierarchical Routing –AS: autonomous systems Next: application to Internet/IP