Routing in a network

Similar documents
CSEP 561 Routing. David Wetherall

CSE 461 Routing. Routing. Focus: Distance-vector and link-state Shortest path routing Key properties of schemes

CSE/EE 461 Distance Vector Routing

Lecture 12: Link-state Routing. Lecture 12 Overview. Router Tasks. CSE 123: Computer Networks Chris Kanich. Routing overview

Network Layer: Routing

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

Routing Outline. EECS 122, Lecture 15

CS4450. Computer Networks: Architecture and Protocols. Lecture 11 Rou+ng: Deep Dive. Spring 2018 Rachit Agarwal

C13b: Routing Problem and Algorithms

Routing. Advanced Computer Networks: Routing 1

CSCE 463/612 Networks and Distributed Processing Spring 2018

Distance Vector Routing Protocols

EECS 122, Lecture 16. Link Costs and Metrics. Traffic-Sensitive Metrics. Traffic-Sensitive Metrics. Static Cost Metrics.

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

Network Layer (Routing)

Intra-domain Routing

Lecture 9. Reminder: Homework 3, Programming Project 2 due today. Questions? Thursday, September 22 CS 475 Networks - Lecture 9 1

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

Basic Idea. Routing. Example. Routing by the Network

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

Routing by the Network

CompSci 356: Computer Network Architectures. Lecture 12: Dynamic routing protocols: Link State Chapter Xiaowei Yang

Routing. Routing. Overview. Overview. Routing vs. Forwarding. Why Routing

Chapter 22 Network Layer: Delivery, Forwarding, and Routing 22.1

Routing, Routing Algorithms & Protocols

Module 8. Routing. Version 2 ECE, IIT Kharagpur

Fairness Example: high priority for nearby stations Optimality Efficiency overhead

SEMESTER 2 Chapter 4 Distance Vector Routing Protocols V 4.0 RIP, IGRP, EIGRP

Network Protocols. Routing. TDC375 Autumn 03/04 John Kristoff - DePaul University 1

Chapter 7 Routing Protocols

Distance vector and RIP

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

Routing. Jens A Andersson Communication Systems

Routing Unicast routing protocols

Computer Networks. Routing Algorithms

Overview. Problem: Find lowest cost path between two nodes Factors static: topology dynamic: load

Youki Kadobayashi NAIST

Default & Static Routes and Routing Information Protocol. Presented by : Mohammed Hamad

Network Layer (Routing)

Network Protocols. Routing. TDC375 Winter 2002 John Kristoff - DePaul University 1

CS 138: Communication I. CS 138 V 1 Copyright 2012 Thomas W. Doeppner. All rights reserved.

Routing Protocols and the IP Layer

(Refer Slide Time: 01:08 to 01:25min)

TDC 363 Introduction to LANs

Overview 4.2: Routing

Internet Protocol: Routing Algorithms. Srinidhi Varadarajan

Top-Down Network Design

ETSF05/ETSF10 Internet Protocols. Routing on the Internet

CSCD 330 Network Programming Spring 2018

ICS 351: Today's plan. netmask exercises network and subnetwork design dynamic routing RIP distance-vector routing

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

CSCD 330 Network Programming Spring 2017

ETSF05/ETSF10 Internet Protocols Routing on the Internet

Routing. 4. Mar INF-3190: Switching and Routing

The most simple way to accelerate a Router is at 9.8 m/sec/sec.

Lecture 13: Link-state Routing. CSE 123: Computer Networks Alex C. Snoeren

CS118 Discussion Week 7. Taqi

COM-208: Computer Networks - Homework 6

EE 122: Intra-domain routing

Youki Kadobayashi NAIST

COMP/ELEC 429/556 Introduction to Computer Networks

Routing Protocol comparison

Youki Kadobayashi NAIST

Lecture 12. Introduction to IP Routing. Why introduction? Routing

Operating Systems and Networks. Network Lecture 7: Network Layer 2. Adrian Perrig Network Security Group ETH Zürich

CSC 401 Data and Computer Communications Networks

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

Chapter 12. Routing and Routing Protocols 12-1

Unit 3: Dynamic Routing

ICMP, ARP, RARP, IGMP

Lecture 13: Routing in multihop wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 3, Monday

Link State Routing & Inter-Domain Routing

CS644 Advanced Networks

Chapter 5. RIP Version 1 (RIPv1) CCNA2-1 Chapter 5

Chapter 4: Network Layer, partb

Introduction to Routing

CSc 450/550 Computer Networks Internet Routing

Routing. Outline. Algorithms Scalability

Intra-AS Routing. Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley.

9.1. Routing Protocols

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

CompSci 356: Computer Network Architectures. Lecture 13: Dynamic routing protocols: Link State Chapter 3.3.3, Xiaowei Yang

Introduction to Local and Wide Area Networks

Youki Kadobayashi NAIST

ECE 435 Network Engineering Lecture 11

RIP Configuration. RIP Overview. Operation of RIP. Introduction. RIP routing table. RIP timers

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

Network Layer (Routing)

Routing in Internet. Problem. Given set of nodes, how do routers acquire info about neighbors to construct the routing tables?

BTEC Level 3 Extended Diploma

Outline. Routing. Introduction to Wide Area Routing. Classification of Routing Algorithms. Introduction. Broadcasting and Multicasting

Chapter 7: Routing Dynamically. Routing & Switching

Chapter 4: outline. Network Layer 4-1

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

CHAPTER 4: ROUTING DYNAMIC. Routing & Switching

Table of Contents 1 Static Routing Configuration RIP Configuration 2-1

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

ECE 333: Introduction to Communication Networks Fall 2001

CS 5114 Network Programming Languages Control Plane. Nate Foster Cornell University Spring 2013

Topology. Youki Kadobayashi NAIST. Outline. Routing system: its function. Gateway Model Revisited. Routing system: its structure

Transcription:

Routing in a network Focus is small to medium size networks, not yet the Internet Overview Then Distance vector algorithm (RIP) Link state algorithm (OSPF) Talk about routing more generally E.g., cost metrics, stability, multi-path, scalability, Application Presentation Session Transport Network Data Link Physical

Routing versus Forwarding Routing is the process by which all nodes exchange control messages to calculate the routes packets will follow Involves global decisions; emphasis is correctness Nodes build a routing table that models the global network Forwarding is the process by which a node examines packets and sends them along their paths through the network Involves local decisions; emphasis is efficiency Nodes distill a forwarding table from their routing table keyed by packet attributes, e.g., address

Routing versus Forwarding R2 packet R1 142.150.210.12 forwarding Table 128.208.4.* R2 R4 140.142.13.* R4 R3 140.142.13.107 140.142.13.107 routing 128.208.4.1 128.208.4.3

A Simple Routing Table The routing table at A, for example, lists at a minimum the next hops for the different destinations Dest Next Hop B B C C D C E E F F G F A F B E C G Other possible keys: Destination and source; path identifier; service class D

Some Pitfalls Remember the network is a distributed system No central authority just tells nodes what to do Using global knowledge is challenging Hard to collect Can be out-of-date Needs to summarize in a locally-relevant way Inconsistencies in local /global knowledge can cause: Loops (black holes) Oscillations, esp. when adapting to load

Network as a Graph Routing is essentially a problem in graph theory. Remember Bellman-Ford Single-Source Shortest Path? A F 1 1 1 B 1 1 E 1 C G 1 1 D X =router =link 1 =cost

Distance Vector Routing Assume: Each router knows only address/cost of neighbors Goal: Calculate routing table of next hop information for each destination at each router Idea: Tell neighbors about learned distances to all destinations All nodes do this in parallel; its a distributed routing computation

DV Algorithm Each router maintains a vector of costs to all destinations as well as routing table Initialize neighbors with known cost, others with infinity Periodically send copy of distance vector to neighbors On reception of a vector, if your neighbor s path to a destination plus cost to that neighbor cost is better Update the cost and next-hop in your outgoing vectors Assuming no changes, will converge to shortest paths But what happens if there are changes?

A F DV Example Initial Table at A B C D E G Dest Cost Next B 1 B C 1 C D - E 1 E F 1 F G -

A F DV Example Final Table at A This simple example converges after one iteration B C D E G Dest Cost Next B 1 B C 1 C D 2 C E 1 E F 1 F G 2 F

What if there are changes? One scenario: Suppose link between F and G fails 1. F notices failure, sets its cost to G to infinity and tells A 2. A sets its cost to G to infinity too, since it learned it from F 3. A learns route from C with cost 2 and adopts it A F B E XXXXX C D G Dest Cost Next B 1 B C 1 C D 2 C E 1 E F 1 F G 3 C

But failures can cause problems Imagine two nodes want to maintain routes to the Internet. A/2 B/1 Internet What happens when the link between B and Internet fails?

Count To Infinity Problem B hears of a route to the Internet via A with cost 2 So B switches to the better (but wrong!) route A/2 B/3 XXX update Internet (work through the next few steps )

Only partial solutions Split Horizon solves trivial count-to-infinity problem Router never advertises the cost of a destination back to its next hop that s where it learned it from! Poison reverse: go even further advertise back infinity However, DV protocols still subject to the same kinds of transient problems in more complicated scenarios Many enhancements suggested Fundamentally distributed computation is hard

Routing Information Protocol (RIP) DV protocol with hop count as metric Infinity value is 16 hops; limits network size Includes split horizon with poison reverse Routers send vectors every 30 seconds With triggered updates for link failures Time-out in 180 seconds to detect failures RIPv1 specified in RFC1058 www.ietf.org/rfc/rfc1058.txt RIPv2 (adds authentication etc.) in RFC1388 www.ietf.org/rfc/rfc1388.txt

Link State Routing Same assumptions/goals, but different idea than DV: Tell all routers the topology and have each compute best paths Two phases: 1. Topology dissemination (flooding) 2. Shortest-path calculation (Dijkstra s algorithm) Why? In DV, routers hide their computation, making it difficult to decide what to use when there are changes With LS, faster convergence and hopefully better stability It is more complex though

Flooding Each router maintains link state database and periodically sends link state packets (LSPs) to neighbor LSPs contain [router, neighbors, costs] Each router forwards LSPs not already in its database on all ports except where received Each LSP will travel over the same link at most once in each direction Flooding is fast, and can be made reliable with acknowledgments

Example LSP generated by X at T=0 Nodes become yellow as they receive it X A T=0 T=1 X A C B D C B D X A T=2 T=3 X A C B D C B D

Complications When link/router fails need to remove old data. How? LSPs carry sequence numbers to determine new data Send a new LSP with cost infinity to signal a link down What happens when a router fails and restarts? What sequence number should it use? Don t want data ignored. One option: age LSPs and send with TTL 0 to purge What happens if the network is partitioned and heals? Different LS databases must be synchronized A version number is used!

A deeper look at sequence numbers Complications highlight robustness issues How do we handle sequence number exhaustion? Make sequence number space very large? There s a problem Use module arithmetic? There s a problem

ARPANet failed in 1981, because a<b A dying router emitted 3 LSPs with 3 very unlucky sequence numbers. Soon, the entire network was doing nothing but b<c propagating these same three LSPs everywhere. b c bigger c<a a

Shortest Paths: Dijkstra s Algorithm Graph algorithm for single-source shortest path S {} Q <all nodes keyed by distance> While Q!= {} u extract-min(q) S S plus {u} for each node v adjacent to u relax the cost of v u is done, add to shortest paths

Dijkstra Example Step 1 10 1 2 3 9 0 4 6 5 7 2

Dijkstra Example Step 2 10 10 1 2 3 9 0 4 6 5 7 5 2

Dijkstra Example Step 3 8 1 14 2 3 9 0 4 6 5 7 5 7 2

Dijkstra Example Step 4 8 1 13 2 3 9 0 4 6 5 7 5 7 2

Dijkstra Example Step 5 8 1 9 2 3 9 0 4 6 5 7 5 7 2

Dijkstra Example Done 8 1 9 2 3 9 0 4 6 5 7 5 7 2

Open Shortest Path First (OSPF) Widely-used Link State protocol today; see also ISIS Basic link state algorithms plus many features: Authentication of routing messages Extra hierarchy: partition into routing areas Load balancing: multiple equal cost routes

Contrast of DV and LS DV: Tell your neighbors about the world. Easy to get confused Simple but limited, chatty and slow Number of hops might be limited Periodic broadcasts of large tables Slow convergence due to ripples and hold down LS: Tell the world about your neighbors. Harder to get confused More complex and more computation Faster convergence and better stability Able to impose global policies in a globally consistent way e.g., load balancing LS is used today except in resource limited situations

Kinds of Routing Schemes Many routing schemes have been proposed/explored! Distributed or centralized Hop-by-hop or source-based Deterministic or stochastic Single or multi-path Fixed or load adaptive route selection Internet is mostly to the left

How do we choose the best path? (What is best anyway?) Can define best as lowest cost. But how to choose cost? To get high bandwidth, low delay or low loss? Do they depend on the load, e.g., to avoid congestion? Can define best for the network, not individual paths. Routing is no longer solely on destination, e.g., MPLS Typically an optimization problem that involves traffic Routing within a network today Cost-based with fixed costs mostly based on latency Direct paths are good for everyone in most networks Manually adjust costs to engineer the network Path-based (MPLS in ISPs) for greater engineering/control

What didn t work: Revised ARPANET Cost Metric Based on load and link Variation limited (3:1) and change damped 225 9.6-Kbps satellite link 9.6-Kbps terrestrial link 56-Kbps satellite link 56-Kbps terrestrial link New metric (routing units) Capacity dominates at low load; we only try to move traffic if high load Today we have slowscale traffic engineering at ISPs 140 90 75 60 30 25% 50% 75% 100% Utilization