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

Similar documents
Lecture 3: Packet Forwarding

Link-State Routing OSPF

Redes de Computadores. Shortest Paths in Networks

Link State Rou.ng Reading: Sec.ons 4.2 and 4.3.4

Chapter 4: Network Layer, partb

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

Link State Rou.ng Reading: Sec.ons 4.2 and 4.3.4

Lecture 19: Network Layer Routing in the Internet

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSc 450/550 Computer Networks Internet Routing

5.1 introduction 5.5 The SDN control 5.2 routing protocols plane. Control Message 5.3 intra-as routing in Protocol the Internet

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

CS4450. Computer Networks: Architecture and Protocols. Lecture 15 BGP. Spring 2018 Rachit Agarwal

CS118 Discussion Week 7. Taqi

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

CSC 401 Data and Computer Communications Networks

Interdomain Routing Reading: Sections P&D 4.3.{3,4}

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

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

Dynamics of Hot-Potato Routing in IP Networks

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

Lecture 4. The Network Layer (cont d)

CSCD 330 Network Programming Spring 2018

CSCD 330 Network Programming Spring 2017

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

Interplay between routing, forwarding

Routing. Advanced Computer Networks: Routing 1

Chapter 4 Network Layer. Network Layer 4-1

Internet Architecture and Experimentation

More Routing. EE122 Fall 2012 Scott Shenker

ECE 333: Introduction to Communication Networks Fall 2001

Top-Down Network Design

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

DATA COMMUNICATOIN NETWORKING

Lecture 4: Routing. CSE 222A: Computer Communication Networks Alex C. Snoeren. Thanks: Amin Vahdat

Network layer: Overview. Network layer functions Routing IP Forwarding

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

Internet Protocol: Routing Algorithms. Srinidhi Varadarajan

Course Routing Classification Properties Routing Protocols 1/39

Routing in a network

Unit 3: Dynamic Routing

ECE 158A: Lecture 13. Fall 2015

Computer Network Architectures and Multimedia. Guy Leduc. Chapter 2 MPLS networks. Chapter 2: MPLS

LARGE SCALE IP ROUTING LECTURE BY SEBASTIAN GRAF

Interdomain Routing Reading: Sections K&R EE122: Intro to Communication Networks Fall 2007 (WF 4:00-5:30 in Cory 277)

Interdomain Routing. EE122 Fall 2011 Scott Shenker

CS118 Discussion 1A, Week 7. Zengwen Yuan Dodd Hall 78, Friday 10:00 11:50 a.m.

Routing, Routers, Switching Fabrics

Routing, Routing Algorithms & Protocols

Network Layer: Routing

Missing Pieces of the Puzzle

Lecture 4: Intradomain Routing. CS 598: Advanced Internetworking Matthew Caesar February 1, 2011

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

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

Lecture 13: Traffic Engineering

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

CS 43: Computer Networks. 24: Internet Routing November 19, 2018

Overview. Information About Layer 3 Unicast Routing. Send document comments to CHAPTER

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

Communication Networks

CS 43: Computer Networks Internet Routing. Kevin Webb Swarthmore College November 16, 2017

Topics for This Week

Chapter 4: Network Layer

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

Chapter 5 Network Layer: The Control Plane

Course on Computer Communication and Networks. Lecture 7 Network Layer, Chapter 4 (6/e) - Part B (7/e Ch5)

CSC 4900 Computer Networks: Routing Algorithms

Network Layer. IP Protocol Stack: Key AbstracHons. Best- Effort Global Packet Delivery. Circuit Switching (e.g., Phone Network)

Lecture 3: Packet Forwarding

Interdomain Routing and Connectivity

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

Routing Algorithms. CS158a Chris Pollett Apr 4, 2007.

To contain/reduce broadcast traffic, we need to reduce the size of the network (i.e., LAN).

Top-Down Network Design, Ch. 7: Selecting Switching and Routing Protocols. Top-Down Network Design. Selecting Switching and Routing Protocols

Internet Routing. Shortest-Path Routing. Intra-Domain Routing and Traffic Engineering. Two-Tiered Internet Routing System

Growth. Individual departments in a university buy LANs for their own machines and eventually want to interconnect with other campus LANs.

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

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

Chapter 7: Routing Dynamically. Routing & Switching

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

CS 43: Computer Networks Internet Routing. Kevin Webb Swarthmore College November 14, 2013

CHAPTER 9: PACKET SWITCHING N/W & CONGESTION CONTROL

Interplay Between Routing, Forwarding

CSC 4900 Computer Networks: Routing Protocols

Hierarchical Routing. Our routing study thus far - idealization all routers identical network flat not true in practice

Routing Basics. What is Routing? Routing Components. Path Determination CHAPTER

EC441 Fall 2018 Introduction to Computer Networking Chapter 5: Network Layer Control Plane

From Routing to Traffic Engineering

Network layer: Overview. Network layer functions Routing IP Forwarding

Lecture 15: Measurement Studies on Internet Routing

Computer Networking Introduction

Network Layer (Routing)

Network Layer, Part 2 Routing. Terminology

Link State Routing & Inter-Domain Routing

Chapter 4 Network Layer

Network Layer: Routing

ETSF05/ETSF10 Internet Protocols Routing on the Internet

Examination IP routning inom enkla datornät, DD2490 IP routing in simple networks, DD2490 KTH/CSC. Date: 20 May :00 19:00 SOLUTIONS

Advanced Topics in Routing

Dynamic Routing. The Protocols

Transcription:

CS 5 Network Programming Languages Control Plane http://www.flickr.com/photos/rofi/0979/ Nate Foster Cornell University Spring 0 Based on lecture notes by Jennifer Rexford and Michael Freedman

Announcements Breakfast pickup and presentations posted to website Reviews: start today! Only review one paper but please read them all Please submit by CMS in the future Homework # Will go out next Tuesday Due weeks later Topic: OpenFlow programming

Overview Host (last time) Network discovery and bootstrapping Resource allocation and interface to applications Data plane (next time) Streaming algorithms and switch fabric Forward, filter, buffer, schedule, mark, monitor, Control plane (today) Distributed algorithms for computing paths Disseminating the addresses of end hosts

Data, Control, and Management Planes Data Control Management Timescale Packet (ns) Event (0 ms to sec) Human (min to hours) Tasks Forwarding, buffering, filtering, scheduling Routing, signaling Analysis, configuration Location Line-card hardware Router software Humans or scripts

Routing vs. Forwarding Routing: control plane Computing paths the packets will follow Routers talking amongst themselves Individual router creating a forwarding table Forwarding: data plane Directing a data packet to an outgoing link Individual router using a forwarding table

Data and Control Planes data plane Processor control plane Line card Line card Line card Switching Fabric Line card Line card Line card 6

Routing Protocols What does the protocol compute? Spanning tree, shortest path, local policy, arbitrary endto-end paths? What algorithm does the protocol run? Spanning-tree construction, distance vector, link-state routing, path-vector routing, source routing, end-toend signaling How do routers learn end-host locations? Learning/flooding, injecting into the routing protocol, dissemination using a different protocol, and directory server

What Does the Protocol Compute?

Different Ways to Represent Paths Static Model The outcome of routing computations Not how the (distributed) computations are performed Trade-offs State required to represent the paths Efficiency of the resulting paths Ability to support multiple paths Complexity of computing paths Which nodes control the computation Different Settings LAN, intradomain, interdomain

Spanning Tree A tree that connects every node Single path between each pair of nodes No loops, so supports broadcast easily Disadvantages Paths can sometimes be long Some links unused!

Shortest Paths Shortest path(s) between each pair of nodes Separate shortest-path tree rooted at each node Minimum hop count (or minimum sum of weights) Disadvantages All nodes must agree on the link metrics Multipath routing is limited (e.g., Equal Cost Multipath)

Local Policy at Each Hop Locally best path Each node picks the path it likes best from among the paths selected by its neighbors Disadvantages More complicated to configure and model d d 5 d 5 d 6 d d 6 d 6 5 d d d d 5 d d d 5 d 6 d d 6 d 6 5 d d d d

End-to-End Path Selection End-to-end path selection Each node picks its own end to end paths independent of what other paths other nodes use Disadvantages More state and complexity in the nodes Hop-by-hop destination-based forwarding is not enough

How to Compute Paths?

Spanning Tree Algorithm Elect a root Select switch with the smallest identifier and form a tree Algorithm Repeatedly talk to neighbors I think node Y is the root My distance from Y is d Update state based on neighbors Smaller id as the root Smaller distance d+ Disable interfaces not on path One hop root Primarily used in Ethernet-based LANs Three hops

Spanning Tree Example: Switch # Switch # thinks it is the root Sends (, 0, ) message to and 7 Switch # hears from # Receives (, 0, ) message from and thinks that # is the root And realizes it is just one hop away Switch # hears from #7 Receives (,, 7) from 7 And realizes this is a longer path So, prefers its own one-hop path And removes -7 link from the tree root 5 6 7

Shortest-Path Problem Compute: path costs to all nodes From a given source u to all other nodes Cost of the path through each outgoing link Next hop along the least-cost path to s u 5 6 s

Link State: Dijkstra s Algorithm Flood the topology information to all nodes Each node computes shortest paths to other nodes Initialization S = {u} for all nodes v if (v is adjacent to u) D(v) = c(u,v) else D(v) = Loop add w with smallest D(w) to S update D(v) for all adjacent v: D(v) = min{d(v), D(w) + c(w,v)} until all nodes are in S Used in OSPF and IS-IS

Link-State Routing Example 5 5 5 5

Link-State Routing Example (continued) 5 5 5 5

Link State: Shortest-Path Tree Shortest-path tree from u Forwarding table at u u v w x 5 s y t z v w x y z s t link (u,v) (u,w) (u,w) (u,v) (u,v) (u,w) (u,w)

Distance Vector: Bellman-Ford Algorithm Define distances at each node x d x (y) = cost of least-cost path from x to y Update distances based on neighbors d x (y) = min {c(x,v) + d v (y)} over all neighbors v u v w x 5 s y t z d u (z) = min{c(u,v) + d v (z), c(u,w) + d w (z)} Used in RIP and EIGRP

Distance Vector: Count to Infinity Link cost changes: Good news travels fast Bad news travels slow: count to infinity problem! 60 X Y 50 Z algorithm continues on!

Path-Vector Routing Extension of distance-vector routing Support flexible routing policies Avoid count-to-infinity problem Key idea: advertise the entire path Distance vector: send distance metric per dest d Path vector: send the entire path for each dest d Used in BGP d: path (,) d: path () data traffic data traffic d

Path-Vector: Faster Loop Detection Node can easily detect a loop Look for its own node identifier in the path E.g., node sees itself in the path,, Node can simply discard paths with loops E.g., node simply discards the advertisement d: path (,) d: path () d: path (,,)

Path-Vector: Flexible Policies Each node can apply local policies Path selection: Which path to use? Path export: Which paths to advertise? Examples Node may prefer the path,, over, Node may not let node hear the path,

End-to-End Signaling Establish end-to-end path in advance Learn the topology (as in link-state routing) End host or router computes and signals a path Routers supports virtual circuits Signaling: install entry for each circuit at each hop Forwarding: look up the circuit id in the table : 7 : 7 link 7 : : 8 link link 8 Used in MPLS with RSVP

Source Routing Similar to end-to-end signaling But the data packet carries the hops in the path rather than the routers storing big tables End-host control Tell the end host the topology Let the end host select the end-to-end path Variations of source routing Strict: specify every hop Loose: specify intermediate points Used in IP source routing (but almost always disabled)

Learning Where the Hosts Are

Finding the Hosts Building a forwarding table Computing paths between network elements and figuring out where the end-hosts are to map a destination address to an outgoing link How to find the hosts? Learning/flooding Injecting into routing protocol Dissemination via different protocol Directory service

Learning and Flooding When a frame arrives Inspect the source address When the frame has an unfamiliar destination Associate address with the incoming interface Forward out all interfaces except for the one where the frame arrived B B A C A C Switch learns how to reach A. D When in doubt, shout! D Used in Ethernet LANs

Inject into Routing Protocol Treat the end host (or subnet) as a node And disseminate in the routing protocol E.g., flood information about where addresses attach u 5 6 s... Used in OSPF and IS-IS, especially in enterprise networks

Disseminate With Another Protocol Distribute using another protocol One router learns the route and shares the information with other routers learn a route to d (e.g., via BGP) disseminate route to other routers Internal BGP (ibgp) used in backbone networks

Directory Service Contact a service to learn the location Lookup the end-host or subnet address and learn the label to put on the packet to get the traffic to the right egress point directory e Host d is at egress e Used in some data centers s i Encapsulate packet to send to egress e. d

Conclusion Routing is challenging Distributed computation Challenges with scalability and dynamics Many different solutions for different environments Ethernet LAN: spanning tree, MAC learning, flooding Enterprise: link-state, inject subnet addresses Backbone: link-state inside, path-vector routing with neighboring domains, and ibgp dissemination Data centers: many different solutions, still in flux E.g., link-state routing or multiple spanning trees E.g., directory service, inject subnet

Design Philosophy of the DARPA Internet Protocols (ACM SIGCOMM, 988) David Clark

Design Goals Primary goal Effective technique for multiplexed utilization of existing interconnected networks (e.g., ARPAnet, packet radio) Important goals Survivability in the face of failure Multiple types of communication service Wide variety of network technologies Less important goals Distributed management of resources Cost effectiveness Host attachment with low level of effort Accountability of resources

Consequences of the Goals Effective multiplexed utilization of existing networks Packet switching, not circuit switching Continued communication despite network failures Routers don t store state about ongoing transfers End hosts provide key communication services Support for multiple types of communication service Multiple transport protocols (e.g., TCP and UDP) Accommodation of a variety of different networks Simple, best-effort packet delivery service Packets may be lost, corrupted, or delivered out of order Distributed management of network resources Multiple institutions managing the network Intradomain and interdomain routing protocols

Questions What if we started with different goals? Network management Less concern about backwards compatibility More concern about security Can we address new challenges Management, security, privacy, sensor nets, Without sacrificing the other goals? Without a major change to the architecture?

End-to-End Routing Behavior in the Internet (ACM SIGCOMM, 996; ToN, 997) Vern Paxson

Measurement With Traceroute Traceroute tool to measure the forwarding path Send packets with TTL=,, Record the source of the time exceeded message TTL= Time exceeded source TTL= destination Useful, but introduces many challenges Path changes Non-participating nodes Inaccurate, two-way measurements

Questions Why can t we measure the Internet more directly? What can we do about it? Right division of labor between host and network? For path selection For network monitoring How do we fix these routing problems? In a decentralized, federated network How to incentivize better network management

Backup Slides on Paxson Paper

Paxson Study: Forwarding Loops Forwarding loop Packet returns to same router multiple times May cause traceroute to show a loop If loop lasted long enough So many packets traverse the loopy path Traceroute may reveal false loops Path change that leads to a longer path Causing later probe packets to hit same nodes Heuristic solution Require traceroute to return same path times

Paxson Study: Causes of Loops Transient vs. persistent Transient: routing-protocol convergence Persistent: likely configuration problem Challenges Appropriate time boundary between the two? What about flaky equipment going up and down? Determining the cause of persistent loops? Anecdote on recent study of persistent loops Provider has static route for customer prefix Customer has default route to the provider

Paxson Study: Path Fluttering Rapid changes between paths Multiple paths between a pair of hosts Load balancing policies inside the network Packet-based load balancing Round-robin or random Multiple paths for packets in a single flow Flow-based load balancing Hash of some fields in the packet header E.g., IP addresses, port numbers, etc. To keep packets in a flow on one path

Paxson Study: Routing Stability Route prevalence Likelihood of observing a particular route Relatively easy to measure with sound sampling Poisson arrivals see time averages (PASTA) Most host pairs have a dominant route Route persistence How long a route endures before a change Much harder to measure through active probes Look for cases of multiple observations Typical host pair has path persistence of a week

Paxson Study: Route Asymmetry Hot-potato routing Customer B multiple peering points Provider B Early-exit routing Other causes Asymmetric link weights in intradomain routing Cold-potato routing, where AS requests traffic enter at particular place Consequences Lots of asymmetry One-way delay is not necessarily half of the round-trip time Provider A Customer A