Routing. 9: Intro to Routing Algorithms. Routing. Roadmap. Routing Algorithm classification: Static or Dynamic?

Similar documents
Initialization: Loop until all nodes in N

Network service model. Network service model. Network Layer (part 1) Virtual circuits. By the end of this lecture, you should be able to.

EE 122: Intra-domain routing

What is Routing? EE 122: Shortest Path Routing. Example. Internet Routing. Ion Stoica TAs: Junda Liu, DK Moon, David Zats

Announcement. Project 2 extended to 2/20 midnight Project 3 available this weekend Homework 3 available today, will put it online

Chapter 4: Network Layer

Chapter 4: Network Layer

Review: Routing in Packet Networks Shortest Path Algorithms: Dijkstra s & Bellman-Ford. Routing: Issues

Routing Algorithm Classification. A Link-State Routing Algorithm

Internet Technology. 08. Routing. Paul Krzyzanowski. Rutgers University. Spring CS Paul Krzyzanowski

CS 43: Computer Networks. 23: Routing Algorithms November 14, 2018

COMP 3331/9331: Computer Networks and Applications

Internet Protocol: Routing Algorithms. Srinidhi Varadarajan

Chapter 4: Network Layer

IP Forwarding Computer Networking. Routes from Node A. Graph Model. Lecture 10: Intra-Domain Routing

DATA COMMUNICATOIN NETWORKING

CSC 4900 Computer Networks: Routing Algorithms

Distance-Vector Routing: Distributed B-F (cont.)

Shortest Paths Algorithms and the Internet: The Distributed Bellman Ford Lecturer: Prof. Chiara Petrioli

CSCE 463/612 Networks and Distributed Processing Spring 2018

Network Routing. Packet Routing, Routing Algorithms, Routers, Router Architecture

Chapter 4: Network Layer, partb

Routers & Routing : Computer Networking. Binary Search on Ranges. Speeding up Prefix Match - Alternatives

Let s focus on clarifying questions. More Routing. Logic Refresher. Warning. Short Summary of Course. 10 Years from Now.

More on Network Routing and Internet Protocol

IP Forwarding Computer Networking. Graph Model. Routes from Node A. Lecture 11: Intra-Domain Routing

Network layer. Network Layer 4-1. application transport network data link physical. network data link physical. network data link physical

Announcements. CS 5565 Network Architecture and Protocols. Project 2B. Project 2B. Project 2B: Under the hood. Routing Algorithms

COMP 631: NETWORKED & DISTRIBUTED SYSTEMS 9/6/16 COMP 631: NETWORKED & DISTRIBUTED SYSTEMS. Internet Routing. Jasleen Kaur.

Chapter 4: outline. 4.5 routing algorithms link state distance vector hierarchical routing. 4.6 routing in the Internet RIP OSPF BGP

Chapter 4 Network Layer. Network Layer 4-1

CSC 401 Data and Computer Communications Networks

Third Generation Routers

Network Layer: Routing Classifications; Shortest Path Routing

Interplay between routing, forwarding

ECE 158A: Lecture 5. Fall 2015

Agenda. distance-vector (what you invented last Friday) hierarchical routing routing in the Internet. v DNS assignment Q&A v Routing Algorithms

What s a protocol? CE80N Introduction to Networks & The Internet. Communication Protocol. Protocol Layers. Dr. Chane L. Fullmer UCSC Winter 2002

CS 457 Networking and the Internet. Shortest-Path Problem. Dijkstra s Shortest-Path Algorithm 9/29/16. Fall 2016

Chapter 4: Network Layer

CS 457 Networking and the Internet. What is Routing. Forwarding versus Routing 9/27/16. Fall 2016 Indrajit Ray. A famous quotation from RFC 791

COMP/ELEC 429/556 Introduction to Computer Networks

Network Layer: Routing

CSE/EE 461 Distance Vector Routing

Routing Algorithms : Fundamentals of Computer Networks Bill Nace

Lecture 5 The Network Layer part II. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Last time. Transitioning to IPv6. Routing. Tunneling. Gateways. Graph abstraction. Link-state routing. Distance-vector routing. Dijkstra's Algorithm

Discussion 8: Link State Routing. CSE 123: Computer Networks Marti Motoyama & Chris Kanich

WAN Technology and Routing

06/02/ Local & Metropolitan Area Networks. Overview. Routing algorithm ACOE322. Lecture 6 Routing

Computer Networking. Intra-Domain Routing. RIP (Routing Information Protocol) & OSPF (Open Shortest Path First)

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 14

Internet rou)ng. V. Arun CS491G: Computer Networking Lab University of MassachuseFs Amherst

CS 3516: Advanced Computer Networks

TCP/IP Networking. Part 3: Forwarding and Routing

Internet Architecture. Network Layer Overview. Fundamental Network Layer Function. Protocol Layering and Data. Computer Networks 9/23/2009

Routing in a network

Lecture 9. Network Layer (cont d) Network Layer 1-1

Computer Networking. Rou1ng Algorithms. Rou1ng Algorithms. Interplay between rou1ng, forwarding. routing algorithm

Routing Algorithms. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Chapter 4 Network Layer

Lecture 4 The Network Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Announcements. CS 5565 Network Architecture and Protocols. Count-To-Infinity. Poisoned Reverse. Distance Vector: Link Cost Changes.

CSCD 330 Network Programming Spring 2018

Advanced Computer Networks

Intra-domain Routing

Graph abstraction: costs. Graph abstraction 10/26/2018. Interplay between routing and forwarding

CSCD 330 Network Programming Spring 2017

2/16/2008. Outline Computer Networking Lecture 11 Routing. Sending Link States by Flooding. Link State Protocol Concept

CMPE 80N: Introduction to Networking and the Internet. Katia Obraczka Computer Engineering UCSC Baskin Engineering Lecture 20

Network layer: Overview. Network layer functions Routing IP Forwarding

The Problem: Finding Paths Spring 2011 Lecture #19. Forwarding. Shortest Path Routing

Chapter 5 Network Layer: The Control Plane

Network Layer: Routing. Routing. Routing protocol. Graph abstraction for routing algorithms: graph nodes are routers graph edges are physical links

Routing Algorithms. 1 Administrivia. Tom Kelliher, CS 325. Apr. 25, Announcements. Assignment. Read 4.6. From Last Time. IP protocol.

CSCE 463/612 Networks and Distributed Processing Spring 2017

DSDV: Proactive. Distance Vector (Basic idea) Distance Vector. Distance Vector Algorithm: Tables 12/13/2016

Routing in Ad-hoc Networks

Lecture 4. The Network Layer (cont d)

WANs and Long Distance Connectivity. Introduction

Missing Pieces of the Puzzle

Chapter 4 Network Layer

Chapter IV: Network Layer

Flooding. Routing: Outlook. Flooding Algorithms. Spanning Tree. Flooding

4/25/12. The Problem: Distributed Methods for Finding Paths in Networks Spring 2012 Lecture #20. Forwarding. Shortest Path Routing

Computer Networks. Wenzhong Li. Nanjing University

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE! 1. Link state flooding topology information finding the shortest paths (Dijkstra)

Routing Algorithms. CS158a Chris Pollett Apr 4, 2007.

Computer Networks. Instructor: Niklas Carlsson

Network layer functions

CS118 Discussion Week 7. Taqi

4.5 Routing Algorithms

Distance Vector Routing

CS 3516: Advanced Computer Networks

Chapter 4: Network Layer: Part II

Network Layer: Control Plane 5-2

CMPE 150: Introduction to Computer Networks

Routing. Effect of Routing in Flow Control. Relevant Graph Terms. Effect of Routing Path on Flow Control. Effect of Routing Path on Flow Control

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 13

Transcription:

Routing 9: Intro to Routing lgorithms Last Modified: // :: PM : Netork Layer a- IP Routing each router is supposed to send each IP datagram one step closer to its Ho do they do that? Static Routing Hierarchical Routing in ideal orld ould that be enough? Well its not an ideal orld ynamic Routing Routers communicate amongst themselves to determine good routes (IMP redirect is a simple example of this) efore e cover specific routing protocols e ill cover principles of dynamic routing protocols : Netork Layer a- Routing lgorithm classification: Static or ynamic? hoice : Static or dynamic? Static: routes change sloly over time onfigured by system administrator ppropriate in some circumstances, but obvious drabacks (routes added/removed? sharing load?) Not much more to say? ynamic: routes change more quickly periodic update in response to link cost changes : Netork Layer a- Routing lgorithm classification: Global or decentralized? hoice, if dynamic: global or decentralized information? Global: all routers have complete topology, link cost info link state s ecentralized: router knos physically-connected, link costs to iterative process of computation, exchange of info ith (gossip) distance vector s : Netork Layer a- Roadmap Routing etails of Link State etails of istance Vector omparison Routing protocol Goal: determine good path (sequence of routers) thru netork from source to dest. Graph abstraction for routing s: graph nodes are routers graph edges are physical links link cost: delay, $ cost, or congestion level good path: typically means minimum cost path other definitions possible : Netork Layer a- : Netork Layer a-6

Global ynamic Routing Link-State Routing lgorithm See the big picture; ind the best Route What do you use? : Netork Layer a- ijkstra s Kno complete netork topology ith link costs for each link is knon to all nodes accomplished via link state broadcast In theory, all nodes have same info ased on info from all other nodes, each node individually computes least cost paths from one node ( source ) to all other nodes gives routing table for that node iterative: after k iterations, kno least cost path to k dest. s : Netork Layer a- Link State lgorithm: Some Notation Notation: c(i,j): link cost from node i to j. cost infinite if not direct (v): current value of cost of path from source to dest. V n(v): next hop from this source to v along the least cost path N: set of nodes hose least cost path definitively knon : Netork Layer a-9 ijsktra s lgorithm Initialization kno c(i,j) to start: N {} for all nodes v if v adjacent to then (v) c(,v) 6 else (v) infty Loop 9 find not in N such that () is a minimum (optional?) add to N update (v) for all v adjacent to and not in N: (v) min( (v), () + c(,v) ) /* ne cost to v is either old cost to v or knon shortest path cost to plus cost from to v */ until all nodes in N : Netork Layer a- ijkstra s : example Step start N (),n(),,, (),n() (),n(),,,,, (),n(), (),n(),,, : Netork Layer a- ijkstra s lgorithm gives routing table Outgoing Link n() n() n () n() n() n() : Netork Layer a-

omplexity of Link State lgorithm complexity: n nodes each iteration ind next not in N such that () is a minimum Then for that, check its best path to other s > n*(n+)/ comparisons: O(n ) more efficient implementations possible using a heap: O(nlogn) : Netork Layer a- Oscillations ssume: Link cost amount of carried traffic Link cost is not symmetric and sending unit of traffic; send e units of traffic Initially start ith slightly unbalanced routes veryone goes ith least loaded, making them most loaded for next time, so everyone sitches Herding effect! +e e e Initially start ith almost equal routes +e +e and go clockise to +e +e +e +e e, and go,, go counterclockise clockise : Netork Layer a- Preventing Oscillations void link costs based on experienced load ut ant to be able to route around heavily loaded links void herding effect void all routers recomputing at the same time Not enough to start them computing at a different time because ill synchronize over time as send updates eliberately introduce randomization into time beteen hen receive an update and hen compute a ne route : Netork Layer a- istance Vector Routing lgorithm distributed: each node communicates only ith directlyattached iterative: continues until no nodes exchange info. self-terminating: no signal to stop asynchronous: nodes need not exchange info/iterate in lock step! : Netork Layer a-6 istance Vector Routing lgorithm istance Table data structure each node has its on ro for each possible column for each directlyattached neighbor to node example: in node, for dest. via neighbor : (,) distance from to, via as next hop c(,) + min { (,)} olumn only for each neighbor cost to via () x (,) Ros for each possible dest! : Netork Layer a- xample: istance Table for (ro, col) (,) (,) (,) c(,) + min { (,)} + olumn only for each neighbor cost to via () c(,) + min { (,)} + Loop back through! c(,) + min { (,)} +6 Loop back through! 6 9 Ros for each possible dest! : Netork Layer a-

istance table gives routing table istance Vector Routing: overvie cost to via () 6 9 istance table least cost Outgoing link to use, cost,,,, Routing table Iterative, asynchronous: each local iteration caused by: local link cost change message from neighbor: its least cost path change from neighbor istributed: each node notifies only hen its least cost path to any changes then notify their if necessary ach node: ait for (change in local link cost of msg from neighbor) recompute distance table if least cost path to any dest has changed, notify : Netork Layer a-9 : Netork Layer a- istance Vector lgorithm: t all nodes, : Initialization (don t start knoing link costs for all links in graph): for all adjacent nodes v: (*,v) infty /* the * operator means "for all ros" */ (v,v) c(,v) for all s, y 6 send min (y,) to each neighbor /* over all 's */ Then in steady state : Netork Layer a- istance Vector lgorithm (cont.): loop 9 ait (until I see a link cost change to neighbor V or until I receive update from neighbor V) if (c(,v) changes by d) /* change cost to all dest's via neighbor v by d */ /* note: d could be positive or negative */ for all s y: (y,v) (y,v) + d 6 else if (update received from V rt ) /* shortest path from V to some has changed */ 9 /* V has sent a ne value for its min V(,) */ /* call this received ne value is "neval" */ for the single y: (,V) c(,v) + neval if e have a ne min (,)for any send ne value of min (,) to all 6 forever : Netork Layer a- istance Vector lgorithm: example To start just kno directly connected links tell istance Vector lgorithm: example In steady state, hen have good nes tell neighbor hears nes from and (,) c(,) + min { (,)} + (,) c(,) + min { (,)} + : Netork Layer a- : Netork Layer a-

istance Vector: link cost changes istance Vector: link cost changes Link cost changes: node detects local link cost change updates distance table (line ) if cost change in least cost path, notify (lines,) Link cost changes: good nes travels fast bad nes travels slo - count to problem! 6 good nes travels fast terminates nyone see a problem? continues on! : Netork Layer a- : Netork Layer a-6 istance Vector: poisoned reverse If routes through to get to : Originally, tells its ( s) distance to is infinite (so on t route to via ) In end, tells ill this completely solve count to problem? 6 terminates igger Loops and Poison Reverse (,) (,) c(,) + min { (,)} + Loop back through! Poison reverse ill fix this tells because s route to through c(,) + min { (,)} +6 Loop back through! Poison reverse ill not fix this s route to is through but doesn t kno that so does not tell s route is through so no poison reverse ill try to send through : Netork Layer a- : Netork Layer a- ount to Infinity xample ith igger Loop ill learn bad nes ill have told because its route to is through, so on t reroute through hoever ill have told about a good route to through (cost 6) ill choose that route instead and advertise it as the ne best to (cost 6+ ); it ill be orse than the old one it advertised to (old cost ) ill propagate this updated best route to (cost ) ill propagate this ne best route to (cost ) ill update the best route to (cost 9) Last time it advertised cost 6 to It ill loop around adding each time (cost of loop) Will continue until cost advertises to is bigger than : Netork Layer a-9 omparison of LS and V s Message complexity LS: nodes send info on directly connections to all other nodes More, smaller messages V: nodes send info on best paths to all s to eer, larger messages Speed of onvergence LS: O(n ) may have oscillations V: convergence time varies may be routing loops count-to- problem Robustness: hat happens if router malfunctions? LS: node can advertise incorrect link cost each node computes only its on table V: V node can advertise incorrect path cost each node s table used by others error propagate thru netork : Netork Layer a-