Network Control Jennifer Rexford

Slides:



Advertisements
Similar presentations
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
Advertisements

4/12/2015© 2009 Raymond P. Jefferis IIILect Internet Protocol - Continued.
13 –Routing Protocols Network Layer4-1. Network Layer4-2 Chapter 4 Network Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd.
1 Dijkstra’s Shortest Path Algorithm Gordon College.
Link-State Routing Reading: Sections 4.2 and COS 461: Computer Networks Spring 2011 Mike Freedman
1 Computer Networks Routing Algorithms. 2 IP Packet Delivery Two Processes are required to accomplish IP packet delivery: –Routing discovering and selecting.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 21 Introduction to Computer Networks.
CSE123A discussion session 2007/03/08 Ryo Sugihara.
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.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
Network and Communications Ju Wang Chapter 5 Routing Algorithm Adopted from Choi’s notes Virginia Commonwealth University.
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.
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 2 CS457 Fall 2010.
Routing and Routing Protocols
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.
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.
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.
CSE 421 Computer Networks. Network Layer 4-2 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside.
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.
Routing Link-State, Distance-Vector CS168 Section 2.
COS 561: Advanced Computer Networks
The network layer: routing
HULA: Scalable Load Balancing Using Programmable Data Planes
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
Routing Jennifer Rexford.
CSE390 – Advanced Computer Networks
Handout # 8: The Internet Protocol, Routing & Forwarding
Chapter 4 Network Layer A note on the use of these ppt slides:
CMPT 880: Internet Architectures and Protocols
CS 457 – Lecture 12 Routing Spring 2012.
Network Layer Introduction Datagram networks IP: Internet Protocol
Intra-Domain Routing Jacob Strauss September 14, 2006.
Chapter 5 Network Layer.
Chapter 4: outline 4.1 introduction
Outline IP Datagram (IPv4) NAT
Fundamentals of Computer Networks ECE 478/578
NAT traversal problem client want to connect to server with address
EEC-484/584 Computer Networks
Lecture 10 Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CS3516: These slides are generated from.
CS 4700 / CS 5700 Network Fundamentals
Chapter 4-4 routing and IP routing
COS 561: Advanced Computer Networks
Routers Routing algorithms
CS 3700 Networks and Distributed Systems
COS 561: Advanced Computer Networks
Chapter 6 Dynamic Programming
CS4470 Computer Networking Protocols
CS 3700 Networks and Distributed Systems
COS 561: Advanced Computer Networks
COS 561: Advanced Computer Networks
Administrivia Review 1 paper assignments are out
Chapter 4: Network Layer
Chapter 4: Network Layer
Network Layer (contd.) Routing
Chapter 4: Network Layer
Network Layer: Link-state and Distance-Vector Routing Protocols
Toward Self-Driving Networks
Chapter 4: Network Layer
Toward Self-Driving Networks
CSCD 330 Network Programming
EE 122: Intra-domain routing: Link State
Control-Data Plane Separation
Chapter 4 Network Layer A note on the use of these ppt slides:
OSPF Protocol.
Presentation transcript:

Network Control Jennifer Rexford Fall 2018 (TTh 1:30-2:50 in Friend 006) COS 561: Advanced Computer Networks http://www.cs.princeton.edu/courses/archive/fall18/cos561/

Traditional Division of Labor Management: policy Measurement and configuration of switches Human timescales Control: events Among the switches Distributed state and computation Data: packets Local to the switch Handle each packet E.g., forward, drop, buffer Management

Example: Shortest-Path Routing Management: configure the link weights Control: compute shortest paths on the graph Data: forward packets to next hop along shortest paths 2 1 3 1 4 u 2 1 5 4 3 6 s

Link State: Dijkstra’s Algorithm Flood the topology information to all nodes Each node computes shortest paths to other nodes Initialization Loop S = {u} for all nodes v if (v is adjacent to u) D(v) = c(u,v) else D(v) = ∞ 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 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5

Link-State Routing Example (cont.) 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5 3 2 1 4 5

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

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

Distance Vector Example 2 y 3 2 1 4 5 u v w x y z s t dv(z)= min{2+dy(z), 1+dx(z)} = 3 1 3 1 x 4 2 u 1 z 5 t w 4 3 s dy(z)=1 dx(z)=4

Distance Vector Example (Cont.) 3 2 1 4 5 u v w x y z s t dw(z)= min{1+dx(z), 4+ds(z), 2+du(z)} = 5 3 2 1 4 5 u v w x y z s t du(z)= min{3+dv(z), 2+dw(z)} = 6

What is the Right Division of Labor? Management

Control Plane as a Distributed System Two aspects of the control plane Distributed state (e.g., topology discovery) Control logic (e.g., shortest path) Key idea in the ONIX paper Leverage existing distributed systems techniques Create a state discovery and management layer Support different consistency & durability properties

Hop-by-Hop Utilization-aware Load-balancing Architecture Naga Katta, Mukesh Hira, Changhoon Kim, Anirudh Sivaraman, and Jennifer Rexford http://conferences.sigcomm.org/sosr/2016/papers/sosr_paper67.pdf

HULA Multipath Load Balancing S2 ToR 10 Data S3 ToR 1 S1 S4 Load balancing entirely in the data plane Collect real-time, path-level performance statistics Group packets into “flowlets” based on time & headers Direct each new flowlet over the current best path

Flowlet Routing Using the flowlet table Dest ToR Timestamp Next-Hop ToR 10 1 S2 ToR 0 17 S4 … h(flowid) 1 … S3 S1 Data Data S4 Using the flowlet table Update the next hop if enough time has elapsed Update the timestamp to the current time Forward the packet to the chosen next hop

Path Performance Statistics Best-hop table Best Next-Hop Path Utilization S3 50% S4 10% … Dest ToR 1 … Probe Probe S3 S1 Data Data S4 Using the best-hop table Update the best next-hop upon new probes Assign a new flowlet to the best next-hop

Putting it all Together Using P4 data packet Best Next-Hop Path Utilization S3 50% S4 10% … Dest ToR 1 … current best next-hop S3 Dest ToR Timestamp Next-Hop ToR 10 1 S2 ToR 0 17 S4 … Update next-hop (if enough time elapsed) and time h(flowid) 1 … chosen next-hop