Srinivas Narayana MIT CSAIL October 7, 2016

Slides:



Advertisements
Similar presentations
Virtual Network Diagnosis as a Service Wenfei Wu (UW-Madison) Guohui Wang (Facebook) Aditya Akella (UW-Madison) Anees Shaikh (IBM System Networking)
Advertisements

Compiling Path Queries in Software-Defined Networks Srinivas Narayana Jennifer Rexford and David Walker Princeton University.
SDN Applications Jennifer Rexford Princeton University.
Florin Dinu T. S. Eugene Ng Rice University Inferring a Network Congestion Map with Traffic Overhead 0 zero.
Jennifer Rexford Princeton University
Programmable Measurement Architecture for Data Centers Minlan Yu University of Southern California 1.
OpenSketch Slides courtesy of Minlan Yu 1. Management = Measurement + Control Traffic engineering – Identify large traffic aggregates, traffic changes.
Programming Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
Performance Evaluation of IPv6 Packet Classification with Caching Author: Kai-Yuan Ho, Yaw-Chung Chen Publisher: ChinaCom 2008 Presenter: Chen-Yu Chaug.
NET-REPLAY: A NEW NETWORK PRIMITIVE Ashok Anand Aditya Akella University of Wisconsin, Madison.
Software-Defined Networks Jennifer Rexford Princeton University.
POSTECH DP&NM Lab. Internet Traffic Monitoring and Analysis: Methods and Applications (1) 5. Passive Monitoring Techniques.
Vladimír Smotlacha CESNET Full Packet Monitoring Sensors: Hardware and Software Challenges.
Copyright 2013 Open Networking User Group. All Rights Reserved Confidential Not For Distribution Programming Abstractions for Software-Defined Networks.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Measurement COS 597E: Software Defined Networking.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
High-Speed Policy-Based Packet Forwarding Using Efficient Multi-dimensional Range Matching Lakshman and Stiliadis ACM SIGCOMM 98.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
OpenFlow MPLS and the Open Source Label Switched Router Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
An Efficient Gigabit Ethernet Switch Model for Large-Scale Simulation Dong (Kevin) Jin.
Measurement Query Languages for Software-Defined Networks Jennifer Rexford Princeton University Joint work with Srinivas.
A Classification for Access Control List To Speed Up Packet-Filtering Firewall CHEN FAN, LONG TAN, RAWAD FELIMBAN and ABDELSHAKOUR ABUZNEID Department.
Compiling Network Path Queries Srinivas Narayana Princeton University.
Protocols and layering Network protocols and software Layered protocol suites The OSI 7 layer model Common network design issues and solutions.
Data and Computer Communications Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based Applications.
MOZART: Temporal Coordination of Measurement (SOSR’ 16)
SketchVisor: Robust Network Measurement for Software Packet Processing
William Stallings Data and Computer Communications
P4: Programming Protocol-Independent Packet Processors
Advanced Network Tap application for
COS 561: Advanced Computer Networks
Hardware-Software Co-Design for Network Performance Measurement
SDN challenges Deployment challenges
HULA: Scalable Load Balancing Using Programmable Data Planes
Compiling Path Queries
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Jennifer Rexford Princeton University
OTCP: SDN-Managed Congestion Control for Data Center Networks
FlowRadar: A Better NetFlow For Data Centers
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Data Streaming in Computer Networking
NOX: Towards an Operating System for Networks
Language-Directed Hardware Design for Network Performance Monitoring
Congestion-Aware Load Balancing at the Virtual Edge
SONATA: Query-Driven Network Telemetry
Programmable Networks
The Stanford Clean Slate Program
Sonata Query-driven Streaming Network Telemetry
Software Defined Networking (SDN)
Network Core and QoS.
Sonata: Query-Driven Streaming Network Telemetry
Programmable Networks
Fast Congestion Control in RDMA-Based Datacenter Networks
Memento: Making Sliding Windows Efficient for Heavy Hitters
Programmable Switches
Project proposal: Questions to answer
Congestion-Aware Load Balancing at the Virtual Edge
2019/5/13 A Weighted ECMP Load Balancing Scheme for Data Centers Using P4 Switches Presenter:Hung-Yen Wang Authors:Peng Wang, George Trimponias, Hong Xu,
An Empirical Evaluation of Wide-Area Internet Bottlenecks
Bridges Neil Tang 10/10/2008 CS440 Computer Networks.
Computer Networks Protocols
Caching 50.5* + Apache Kafka
Toward Self-Driving Networks
Toward Self-Driving Networks
Elmo Muhammad Shahbaz Lalith Suresh, Jennifer Rexford, Nick Feamster,
Network Core and QoS.
Control-Data Plane Separation
Lecture 6, Computer Networks (198:552)
Presentation transcript:

Srinivas Narayana MIT CSAIL October 7, 2016 Co-Designing Software and Hardware for Declarative Performance Measurement Srinivas Narayana MIT CSAIL October 7, 2016

An example: High tail latencies Delay completion of flows (and applications)

An example: High tail latencies Where is the queue buildup? How did queues build up? UDP on-off traffic? Fan-in? Which other flows cause queue buildup? Throttle UDP? Traffic pattern?

An example: High tail latencies What measurement support do you need? Where is the queue buildup? How did queues build up? UDP on-off traffic? Fan-in? Which other flows cause queue buildup? Throttle UDP? Traffic pattern?

Existing measurement support Sampling (NetFlow, sFlow) May not sample packets/events you care about  Counting (OpenSketch, UnivMon, …) Only traffic counting Time granularity too coarse  Packet capture (Endace, Niksun, Fmadio, …) Too much data to collect everywhere & always  Endpoint data collection (Pingmesh, …) Data distributed over several hosts  Insufficient network visibility  Network Specify concrete examples too (netflow / …) Host

Network performance questions Flow-level packet drop rates Queue latency EWMA per connection Route flapping incidents Persistently long queues TCP incast and outcast Interference from bursty traffic Incidence of TCP reordering and retransmissions Understanding congestion control schemes Incidence and lengths of flowlets High end to end latencies ...

Can we build better performance monitoring tools for networks? 

An example: High tail latencies Switches have precise visibility into network conditions…

Performance monitoring on switches (+) Precise visibility of performance (e.g., queue buildup, flows, …) (+) Speed (line rates of 10-100 ports of 10-100 Gb/s/port) (-) Costly and time-consuming to build hardware (2-3 years) Ideally, new hardware should suit diverse measurement needs… (XXX possible to add cost numbers?)

Co-design software and hardware (1) Design declarative query language to ask performance questions (2) Design hardware primitives to support query language at line rate Does programmability come at the cost of speed?

Performance query system Declarative performance queries Network operator Cat picture credit: http://www.cathub.tv/13-cats-using-computers-will-surprise-humans/ Accurate query results with low overhead Diagnostic apps

(1) Declarative language abstraction Write SQL-like performance queries on an abstract table: (Packet headers, Queue id, Queue size, Time at queue ingress, Time at queue egress, Packet path info) For all packets at all queues

(1) Example performance queries Queues and traffic sources with high latency SELECT srcip, qid FROM T WHERE tout - tin > 1ms Traffic counters per source & destination SELECT srcip, dstip, count, sum_len GROUPBY srcip, dstip Queue latency EWMA SELECT 5tuple, qid, ewma GROUPBY 5tuple, qid def ewma (lat_est, (tin, tout)): lat_est = alpha * lat_est + (1 - alpha) * (tout-tin) User-defined fold functions Packet ordering matters (recent queue sizes more significant)

(2) Hardware primitives Good news: Many existing primitives prove useful! Selection: Match-action rules Per-packet latency and queue data: In-band network telemetry (INT)

(2) Hardware support for aggregation SELECT 5tuple, ewma GROUPBY 5tuple 5tuple EWMA … Run a key-value store on switches? K-V store supports read-modify-write operations

(2) Challenges in building switch K-V Run at line rate 1GHz packet rate Scale to millions of keys e.g., number of connections No existing memory is fast and large enough!

(2) “Split” key-value store

Need more information? See our upcoming HotNets ‘16 paper!

Why performance monitoring? Determine network performance bottlenecks Exonerate network as source of problems New proposals for scheduling, congestion control, … what works?

Semantically useful language primitives Per-packet performance attributes: latency, loss Isolate traffic with “interesting” performance Aggregate performance stats over sets of packets “Simultaneous” occurrences of multiple conditions Compose results to pose more complex questions

The SRAM cache

Does caching lead to correct results? In general, no “Forget” keys and their values when evicted Keys previously evicted can come back! Merging SRAM and DRAM may eventually produce correct results

Merging example … SELECT COUNT, SUM(pkt_len) GROUPBY srcip, dstip True COUNT = COUNTSRAM + COUNTDRAM True SUM(pkt_len) = SUMSRAM + SUMDRAM Srcip, Dstip Count Sum(pkt_len) …

Linear-in-state condition State updates of the form S = A * S + B A, B: functions on a bounded history of packets

Linear-in-state update correctDRAM = finalSRAM – An*defaultSRAM + An*previousDRAM previousDRAM correctDRAM State defaultSRAM finalSRAM Updates

Current work: Compiler Detecting linear-in-state condition Queries that use multiple key-value stores Network-wide queries Nested queries An equivalent of linear-in-state for multiple tables?

How YOU can help Useful performance diagnostics questions? How would you evaluate this system? What’s a reasonable prototype?