Network Programming Languages. Robert Soulé University of Lugano



Similar documents
SDN and Streamlining the Plumbing. Nick McKeown Stanford University

Software Defined Networking

CS6204 Advanced Topics in Networking

Software Defined Networks

Network Virtualization

OpenFlow and Onix. OpenFlow: Enabling Innovation in Campus Networks. The Problem. We also want. How to run experiments in campus networks?

The Internet: A Remarkable Story. Inside the Net: A Different Story. Networks are Hard to Manage. Software Defined Networking Concepts

How To Understand The Power Of The Internet

Open Source Network: Software-Defined Networking (SDN) and OpenFlow

Project 3 and Software-Defined Networking (SDN)

Limitations of Current Networking Architecture OpenFlow Architecture

Applying SDN to Network Management Problems. Nick Feamster University of Maryland

Software Defined Networking and the design of OpenFlow switches

Software Defined Networking What is it, how does it work, and what is it good for?

Autonomicity Design in OpenFlow Based Software Defined Networking

SDN AND SECURITY: Why Take Over the Hosts When You Can Take Over the Network

Software Defined Networking (SDN)

Software Defined Networking (SDN) - Open Flow

SOFTWARE DEFINED NETWORKS REALITY CHECK. DENOG5, Darmstadt, 14/11/2013 Carsten Michel

Virtualization techniques for network functions. Fabrice Guillemin, Orange Labs, OLN/CNC/NCA September 14, 2015

Software Defined Networking

Software Defined Networking & Openflow

Formal Specification and Programming for SDN

The Future of Networking, and the Past of Protocols

SDN. What's Software Defined Networking? Angelo Capossele

Information- Centric Networks. Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics

Towards Software Defined Cellular Networks

Cloud Networking Disruption with Software Defined Network Virtualization. Ali Khayam

2) What is the structure of an organization? Explain how IT support at different organizational levels.

Frenetic: A Programming Language for OpenFlow Networks

Outline. Institute of Computer and Communication Network Engineering. Institute of Computer and Communication Network Engineering

JOB READY ASSESSMENT BLUEPRINT COMPUTER NETWORKING FUNDAMENTALS - PILOT. Test Code: 4514 Version: 01

OpenFlow: Enabling Innovation in Campus Networks

packet retransmitting based on dynamic route table technology, as shown in fig. 2 and 3.

BROADCOM SDN SOLUTIONS OF-DPA (OPENFLOW DATA PLANE ABSTRACTION) SOFTWARE

Improving Network Management with Software Defined Networking

From Active & Programmable Networks to.. OpenFlow & Software Defined Networks. Prof. C. Tschudin, M. Sifalakis, T. Meyer, M. Monti, S.

Improving Network Management with Software Defined Networking

Securing Local Area Network with OpenFlow

Ethernet-based Software Defined Network (SDN) Cloud Computing Research Center for Mobile Applications (CCMA), ITRI 雲 端 運 算 行 動 應 用 研 究 中 心

Analysis on Virtualization Technologies in Cloud

Conference. Smart Future Networks THE NEXT EVOLUTION OF THE INTERNET FROM INTERNET OF THINGS TO INTERNET OF EVERYTHING

Course Number: IAC-SOFT-WDAD Web Design and Application Development

CS244 Lecture 5 Architecture and Principles

SDN Security Design Challenges

An Introduction to Software-Defined Networking (SDN) Zhang Fu

Managing the Home Network

基 於 SDN 與 可 程 式 化 硬 體 架 構 之 雲 端 網 路 系 統 交 換 器

OpenFlow: Load Balancing in enterprise networks using Floodlight Controller

Software-Defined Networking for the Data Center. Dr. Peer Hasselmeyer NEC Laboratories Europe

SDN. WHITE PAPER Intel Ethernet Switch FM6000 Series - Software Defined Networking. Recep Ozdag Intel Corporation

Software-Defined Network (SDN) & Network Function Virtualization (NFV) Po-Ching Lin Dept. CSIE, National Chung Cheng University

SDN/Virtualization and Cloud Computing

Introduction to Software Defined Networking (SDN) and how it will change the inside of your DataCentre

Performance of Network Virtualization in Cloud Computing Infrastructures: The OpenStack Case.

Facility Usage Scenarios

n Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation

Testing Challenges for Modern Networks Built Using SDN and OpenFlow

Software Defined Networking Subtitle: Network Virtualization Terry Slattery Chesapeake NetCraftsmen Principal Consultant CCIE #1026.

SDN Programming Languages. Programming SDNs!

CSCI 3136 Principles of Programming Languages

What is SDN? And Why Should I Care? Jim Metzler Vice President Ashton Metzler & Associates

Network Virtualization and Software-defined Networking. Chris Wright and Thomas Graf Red Hat June 14, 2013

SIMPLE NETWORKING QUESTIONS?

OpenFlow Overview. Daniel Turull

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

PCI Express Overview. And, by the way, they need to do it in less time.

Communication Networks. MAP-TELE 2011/12 José Ruela

APV9650. Application Delivery Controller

A Presentation at DGI 2014 Government Cloud Computing and Data Center Conference & Expo, Washington, DC. September 18, 2014.

Software Defined Networking A quantum leap for Devops?

Network Virtualization

SOFTWARE-DEFINED NETWORKING AND OPENFLOW

Network Virtualization for the Enterprise Data Center. Guido Appenzeller Open Networking Summit October 2011

LTE - Can SDN paradigm be applied?

Utility Computing and Cloud Networking. Delivering Networking as a Service

Intel Ethernet Switch Load Balancing System Design Using Advanced Features in Intel Ethernet Switch Family

Dynamically Reconfigurable Network Nodes in Cloud Computing Systems

Network Security through Software Defined Networking: a Survey

Network Functions Virtualization on top of Xen

The Business Case for Software-Defined Networking

Facilitating Network Management with Software Defined Networking

Cisco Discovery 3: Introducing Routing and Switching in the Enterprise hours teaching time

Fiber Channel Over Ethernet (FCoE)

Chapter 6: Programming Languages

Lithium: Event-Driven Network Control

Information and Communications Technology Courses at a Glance

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

SDN and OpenFlow. Naresh Thukkani (ONF T&I Contributor) Technical Leader, Criterion Networks

Network Virtualization History. Network Virtualization History. Extending networking into the virtualization layer. Problem: Isolation

Enabling Practical SDN Security Applications with OFX (The OpenFlow extension Framework)

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

Extending the Internet of Things to IPv6 with Software Defined Networking

A Case for Overlays in DCN Virtualization Katherine Barabash, Rami Cohen, David Hadas, Vinit Jain, Renato Recio and Benny Rochwerger IBM

Chapter 11 Cloud Application Development

Leveraging SDN and NFV in the WAN

QoS Switching. Two Related Areas to Cover (1) Switched IP Forwarding (2) 802.1Q (Virtual LANs) and 802.1p (GARP/Priorities)

Transcription:

1 Network Programming Languages Robert Soulé University of Lugano

2 Languages A programming language provides abstractions and ways to compose those abstractions The programming languages you are familiar with are models of computer systems They provide abstractions for data and computation

3 Abstractions Assembly languages Procedural languages OO languages Functional languages abstractions addresses, registers, instructions, labels booleans, arithmetic, loops, arrays, procedures objects, methods, fields, classes first-class functions, algebraic data types compositions sequences of instructions sequences of statements, procedure calls method invocation, inheritance function application, type constructors

4 Domain Specific Languages A general-purpose language provides abstractions for modeling computation A domain-specific language provides abstractions for other domains

5 Benefits of a DSL Can enable optimizations Can ensure program correctness Provide abstractions tailored to a particular domain Allow programmers to use emerging technologies

6 Enabling Optimizations 2 3 1 2 A B C StreamIt: a streaming language designed for static optimization FIFO queue B pops 3 per firing B pushes 1 per firing float->float pipeline ABC { add float->float filter A() { work pop push 2 { /*details elided*/ } } add float->float filter B() { work pop 3 push 1 { /*details elided*/ } } add float->float filter C() { work pop 2 push { /*details elided*/ } } } Statically known push/pop rates for every operator.

7 Enabling Optimizations A A A A A A 2 3 B B B B B B 1 2 C C C C C C Steady-state schedule means fixed queue sizes and scalarization.

8 Program Correctness Parallelize computations. Safety No state or disjoint state Merge in order, if needed Variations Round-robin (no state) Hash by key (disjoint state) Duplicate Throughput 6 4 2 0 Profitability Fission p/s/o = 1/1/0 p/s/o = 1/0/1 p/s/o = 1/0/0 1 2 3 4 5 6 Number of Cores Example MapReduce languages

9 Abstractions For A Particular Domain Customer Plant PK C# select * from customer, plant where plant.pid = customer.pid and city= milan PK P# Pname City Margin Invoice PK I# Amt Idate FK1 C# Cname City FK1 P#

Emerging Technologies 10

11 Example of DSLs SQL abstractions relations, tuples, queries compositions joins, selection, projection make files, build rules dependencies lex yacc OpenSCAD characters, strings tokens, nonterminal symbols shapes sequences, alternation ( ), repetition (*) grammar rules union, intersection, linear transformations

12 What Abstractions Do We Need for Networking?

13 Network Devices Middlebox Switch Switch Switch

13 Network Devices Middlebox Switch Switch Switch Send and receive traffic

13 Network Devices Middlebox Switch Forward traffic Switch Switch Send and receive traffic

13 Network Devices Middlebox Switch Forward traffic Switch Switch Additional processing (e.g., NAT, DPI, IDS) Send and receive traffic

14 What Abstractions Do We Need for Networking? It depends on what we want to do. Authorization needs principals and privileges DPI needs patterns and packet payload State queries might need tables and relations What do we need to model forwarding? What do we need to model switch hardware?

15 Device Configuration Middlebox Switch Switch Switch SSH to switch or router Configure with a vendor-specific DSL Route traffic to middle box for additional processing

16 Device Configuration Campus network has 100s of switches Datacenter network has 1000s of switches Hard to manage! Hard to verify!

17 Software Defined Networking Middlebox Switch Switch Switch Standardization: switches support a vendor-agnostic, open API Off-device control: software program manages the switches Big idea: separate control logic from the data plane

17 Software Defined Networking Middlebox Switch Controller Switch Switch Standardization: switches support a vendor-agnostic, open API Off-device control: software program manages the switches Big idea: separate control logic from the data plane

18 What Abstractions for SDN? OpenFlow provides abstractions to match headers, forward/drop packets, and collect simple statistics Often referred to as match-action abstraction in literature Is this a good abstraction? Models the basic functionality of a switch Amenable to efficient hardware implementations Is it enough? (i.e., what else does the network do?)

19 Network Languages Query network state (e.g., Sophia) Authorization (e.g., NAL, SAFE) Overlays (e.g., P2, MACE, Teacup) Forwarding/Routing (e.g., Frenetic, Pyretic, Maple) Traffic Engineering (e.g., Merlin) Program switch hardware (e.g., P4) Implement routers (e.g., Click) and many more!

20 SDN (control plane) languages FatTire Flog FlowLog FML Frenetic HFT Maple Merlin nlog NetCore NetKat Nettle Procura Pyretic Kinetic and more.

21 Programming Paradigms FatTire Flog FlowLog FML Frenetic HFT Maple Merlin nlog NetCore NetKat Nettle Procura Pyretic Kinetic and more. Imperative Functional Logic DataFlow FRP

22 Imperative A programming paradigm in which programs are written as a sequence of statements that may modify state Models the Von Neumann architecture Examples: C, Java, Pyretic

23 Imperative Example Pyretic: round-robin load balancer.

24 Logic-Based Languages A programming paradigm in which programs are based on formal logic Programs are often written as a set of rules in the form of a Horn clause (i.e., a disjunction of literals with at most one negated literal) Examples: Prolog, Datalog, Flowlog

25 Logic Example FlowLog: forwarding example and rule clause.

26 Functional Languages A programming paradigm in which computation is based on mathematical functions (often avoiding mutable state) Programs are typically written as compositions of functions Examples: Lisp, Racket, OCaml, Haskell, Frenetic

27 Functional Example Frenetic (2011): amount of incoming web traffic every 30 seconds.

28 Dataflow Languages A programming paradigm in which programs are modeled as a directed graph of operations Programs are usually written as names of operations and arrows Examples: SISAL, nesc, Click

DataFlow Example 29

30 Functional Reactive Programming (FRP) Combines asynchronous dataflow programming (i.e., reactive programming) with functional programming Distinguishes between discrete and continuous events. Programs manipulate streams of values. Examples: Elm, Flapjax, Yampa, Nettle, Frenetic (2010)

31 FRP Example Frenetic (2010): amount of incoming web traffic every 30 seconds.

Software Defined Networking 32

33 Technological Influences Control vs. Data Plane Network Virtualization Active Networks

Separate Control From Data 34

35 Control and Data Control plane: includes system configuration, management, routing table information, etc. Also called the signaling of the network. Control plane packets are processed by the switch/router. Data plane: forwards traffic to the next hop. Also called the forwarding plane. Data plane packets pass through the switch/router.

36 In-Band Signalling Send metadata in the same band or channel Certain frequencies (e.g., 2600 Hz) could reset phone trunk lines, route calls, etc. Insecure, end users have access to control signals

37 Out-of-band Signaling Send metadata in a separate, dedicated channel In telephone networks, introduced in the 1970s (SS6) and 1980 (SS7) Example: In 1981, AT&T introduced the Network Control Point (NCP) A centralized server that could send commands to switches Reduces expenditures (shorter circuit holding time, quickly determine busy/idle status) Allows rapid introduction of new services (only implemented once at server)

38 Benefits of Central Control Network-wide vantage point Can directly observe network wide behavior Independent evolution of infrastructure, data, and services Services and resource allocation decisions can be made based on customer data, network load, etc.

Network Virtualization 39

40 Network Virtualization Represent one or more logical topologies on the same physical infrastructure Many different instantiations VLANs Slicing, etc. VMWare, Nicira, etc.

41 Benefits Sharing Multiple logical routers on single platform Resource isolation in CPU, memory, bandwidth, forwarding tables Customizability Can easily modify routing and forwarding software General purpose CPUs for the control plane Network processors and FPGAs for data plane

42 Examples Tempest: Switchlets (1998) Separation of control framework from switches Virtualization of the switch VINI: A virtual network infrastructure (2006) Virtualization of the network infrastructure Cabo: Separates infrastructure, services (2007)

Active Networks 43

44 Active Networks Goal: create networking technologies that can evolve and support application-specific customization Key idea: It would be easier to support these goals if the network were programmable Realization: switches perform custom computation on packets Examples: trace program running at each router, firewalls, proxies, application services

45 Active Networks History Vigorous area of research when DARPA began funding (1994-1995) A confluence of ideas from O.S., P.L., Networking, Distributed Systems

46 Two Approaches Capsules ( integrated ) Packets carried procedures. Active nodes evaluate content carried in packets. Code dispatched to execution environment. Programmable Switches ( discrete ) Custom processing functions run on the router Packets routed through programmable nodes Program depends on packet header

47 What went wrong? Wrong time No clear application Hardware was expensive Missteps Security, special languages for safe code, packets carrying code End user as programmer (vs. network operator) Interoperability

48 What went right for SDN? Motivating use case (virtualization): Nicira s Network Virtualization Platform Pragmatic Minimal functionality (API) that can be efficiently implemented on a variety of hardware Industry support

49

50 Reading List Nick Feamster, Jennifer Rexford, and Ellen Zegura, The Road to SDN: An Intellectual History of Programmable Networks, ACM SITCOM CCR, April 2014 Jonathan M. Smith and Scott M. Nettles, Active Networking: One View of the Past, Present, and Future, IEEE Transactions on Systems, Man, and Cybernetics, March 2003

51