Serval: An End-Host Stack for Service-Centric Networking

Slides:



Advertisements
Similar presentations
All Rights Reserved © Alcatel-Lucent 2009 Enhancing Dynamic Cloud-based Services using Network Virtualization F. Hao, T.V. Lakshman, Sarit Mukherjee, H.
Advertisements

Hierarchical IPv4 Framework Patrick Frejborg 18 Dec 2009.
CST Computer Networks NAT CST 415 4/10/2017 CST Computer Networks.
Why do current IP semantics cause scaling issues? −Today, “addressing follows topology,” which limits route aggregation compactness −Overloaded IP address.
Composing Software Defined Networks
Transitioning to IPv6 April 15,2005 Presented By: Richard Moore PBS Enterprise Technology.
IPv6 – IPv4 Network Address, Port & Protocol Translation & Multithreaded DNS Gateway Navpreet Singh, Abhinav Singh, Udit Gupta, Vinay Bajpai, Toshu Malhotra.
Project by: Palak Baid (pb2358) Gaurav Pandey (gip2103) Guided by: Jong Yul Kim.
Cs/ee 143 Communication Networks Chapter 6 Internetworking Text: Walrand & Parekh, 2010 Steven Low CMS, EE, Caltech.
Mobility Jennifer Rexford COS 461: Computer Networks Lectures: MW 10-10:50am in Architecture N101
Sponsored by the National Science Foundation SCAFFOLD Spiral 2 Year-end Project Review Princeton University Michael Freedman (PI), Jennifer Rexford (co-PI)
TDTS21 Advanced Networking
Generalized Virtual Networking: an enabler for Service Centric Networking and Network Function Virtualization Stefano Salsano (1), Nicola Blefari-Melazzi.
1 Network Address Translation (NAT) Relates to Lab 7. Module about private networks and NAT.
Layer 7- Application Layer
Network Architecture (R02) #4 Location and Identity Jon Crowcroft,
Anycast Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
COS 461: Computer Networks
CCNA Guide to Cisco Networking Fundamentals Fourth Edition Chapter 9 Network Services.
Class 3: SDN Stack Theophilus Benson. Outline Background – Routing in ISP – Cloud Computing SDN application stack revisited Evolution of SDN – The end.
Routing of Outgoing Packets with MP-TCP draft-handley-mptcp-routing-00 Mark Handley Costin Raiciu Marcelo Bagnulo.
COMPUTER NETWORKS.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
Lecture 8 Modeling & Simulation of Communication Networks.
1 Chapter Overview Subnet. What is a subnet When you break a network into a few smaller networks, you have created several subnets Like IP address where.
ECCP A Formally-Verified Migration Protocol For Mobile, Multi-Homed Hosts Matvey Arye Joint work with: Erik Nordström, Robert Kiefer Jennifer Rexford, Michael.
Host Identity Protocol
Additional SugarCRM details for complete, functional, and portable deployment.
Data Center Network Redesign using SDN
Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation.
Composing Software Defined Networks Jennifer Rexford Princeton University With Joshua Reich, Chris Monsanto, Nate Foster, and.
Host Mobility for IP Networks CSCI 6704 Group Presentation presented by Ye Liang, ChongZhi Wang, XueHai Wang March 13, 2004.
Serval: Software Defined Service-Centric Networking Jen Rexford Erik Nordstrom, David Shue, Prem Gopalan, Rob Kiefer, Mat Arye, Steven Ko, Mike Freedman.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Software-Defined Networks Jennifer Rexford Princeton University.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Data and Computer Communications Chapter 2 – Protocol Architecture, TCP/IP, and Internet-Based Applications 1.
Simple Multihoming Experiment draft-huitema-multi6-experiment-00.txt Christian Huitema, Microsoft David Kessens, Nokia.
Seamless Access to Services for Mobile Users Jennifer Rexford Princeton University Joint work with Matvey Ayre, Mike.
HAIR: Hierarchical Architecture for Internet Routing Anja Feldmann TU-Berlin / Deutsche Telekom Laboratories Randy Bush, Luca Cittadini, Olaf Maennel,
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 4: Addressing in an Enterprise Network Introducing Routing and Switching in the.
Private Network Addresses IP addresses in a private network can be assigned arbitrarily. – Not registered and not guaranteed to be globally unique Generally,
4061 Session 25 (4/17). Today Briefly: Select and Poll Layered Protocols and the Internets Intro to Network Programming.
Use of the IPv6 Flow Label as a Transport-Layer Nonce draft-blake-ipv6-flow-nonce-02 Steven Blake IETF 76 November 2009.
Information-Centric Networks06c-1 Week 6 / Paper 3 Middleboxes No Longer Considered Harmful –Michael Walfish, Jeremy Stribling, Maxwell Krohn, Hari Balakrishnan,
Create a dynamic datacenter with software-defined networking
Link Layer5-1 Synthesis: a “day” in the life of a web request  journey down protocol stack!  application, transport, network, link  putting-it-all-together:
Extending OVN Forwarding Pipeline Topology-based Service Injection
1 | © 2015 Infinera Open SDN in Metro P-OTS Networks Sten Nordell CTO Metro Business Group
1 Bus topology network. 2 Data is sent to all computers, but only the destination computer accepts 02608c
CMSC Presentation An End-to-End Approach to Host Mobility An End-to-End Approach to Host Mobility Alex C. Snoeren and Hari Balakrishnan Alex C. Snoeren.
1 Extreme Networking at Home Jari Arkko, Ericsson.
Transmission Control Protocol (TCP) Internet Protocol (IP)
NEWS: Network Function Virtualization Enablement within SDN Data Plane.
Serval: An End-Host Stack for Service-Centric Networking Erik Nordstrom, David Shue, Prem Gopalan, Robert Kiefer, Matvey Arye, Steven Y. Ko, Jennifer Rexford,
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
Chapter 11 – Cloud Application Development. Contents Motivation. Connecting clients to instances through firewalls. Cloud Computing: Theory and Practice.
1 CNLab/University of Ulsan Chapter 19 Firewalls  Packet Filtering Firewall  Application Gateway Firewall  Firewall Architecture.
Ananta: Cloud Scale Load Balancing Presenter: Donghwi Kim 1.
SCAFFOLD Steve Ko Princeton University With Mike Freedman, Jen Rexford, Prem Gopalan, and David Shue
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Networking Applications
Network Address Translation (NAT)
Instructor Materials Chapter 9: NAT for IPv4
Network Address Translation (NAT)
Routing and Switching Essentials v6.0
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Instructor Materials Chapter 9: NAT for IPv4
Programmable Networks
Network Address Translation (NAT)
Presentation transcript:

Serval: An End-Host Stack for Service-Centric Networking serval-arch.org Serval: An End-Host Stack for Service-Centric Networking Erik Nordström David Shue, Prem Gopalan, Rob Kiefer, Mat Arye, Steven Ko, Jen Rexford, Mike Freedman Princeton University

Network designed for accessing hosts The Internet of the 1970s Killer Apps: telnet, ftp IMP 2 SRI IMP 4 Utah IMP 3 UCSB IMP 1 UCLA Network designed for accessing hosts

Users agnostic of actual service location and host The Internet of the 2000s Datacenter Users agnostic of actual service location and host

What does Service Access Involve? Locate a nearby service datacenter Map service name to location Connect to service Establish data flow to instance Load balance between pool of replicas Maintain connectivity to service Migrate between interfaces and networks

Today’s (Overloaded) Abstractions Service is IP + port Exposes location Specifies app. protocol One service per IP Flow is “five tuple” Binds flow to interface and location Cannot migrate between interfaces or networks TCP/IP connect (IP + port) Application demux (IP + port) Transport Network

Service Access Today Datacenter Enterprise Network Transit Provider 4G Cellular Provider Datacenter

Finding a Service Location Enterprise Network Transit Provider DNS 4G Cellular Provider Load-Balanced Web Service DNS binds service to location at client (early binding) Caching and ignoring TTL exacerbates the problem Slow failover when instance or load balancer fail

Connecting to Service Datacenter LB maps single IP to multiple servers Enterprise Network Transit Provider 4G Cellular Provider Load-Balanced Web Service Datacenter LB maps single IP to multiple servers Must do this for every packet on path -> fate sharing Increases complexity and cost

Maintaining Connectivity to Service Enterprise Network VM Migration Transit Provider 4G Cellular Provider Datacenter Migrate VMs to balance load in the cloud Requires flat addressing or tunneling within datacenter

Maintaining Connectivity to Service Datacenter Enterprise Network Transit Provider Multi- Homing 4G Cellular Provider Datacenter Physical Mobility Flows break when switching networks or interfaces

Contributions Naming abstractions Services, flows Clean role separation in the network stack Software architecture for services (Serval) Service-level control/data plane split Service-level events

Naming Abstractions

Today’s (Overloaded) Abstractions TCP/IP connect (IP + port) Application demux (IP + port) Transport forward (IP) Network

Serval Abstractions Serval cleans the slate Network layer unmodified! (But not completely) Network layer unmodified! Service Access Layer (SAL) Connects to services Maintains connectivity Serval Application Transport Service Access Network forward (IP)

Serval Abstractions Service = ServiceID Flow = FlowID Group of processes with identical functionality Flow = FlowID Invariant demux key Host-local, ephemeral Location = IP address Location, interface Can change dynamically Serval connect (serviceID) Application Transport Service Access demux ( ) serviceID flowID forward (IP) Network

A Clean Role Separation in the Stack What you access (serviceID), over which flows (flowIDs), and at which service instance (IP address) TCP/IP Serval Application connect (IP + port) connect (serviceID) Transport demux (IP + port) Service Access demux ( ) serviceID flowID Network forward (IP) forward (IP)

Service Names (ServiceIDs) Provider prefix Provider-specific Self-certifying ServiceIDs allocated in blocks Prefix ensures global uniqueness Prefix-based aggregation and LPM A ServiceID late binds to service instance ServiceID in first packet of connection Service-level routing and forwarding

A Service-Aware Network Stack bind(sock, serviceID) listen(sock) connect(sock, serviceID) Network stack must resolve service to instance for client Network stack must advertise service for server

Software Architecture

Serval End-host Architecture Application Service Controller Service Control API FlowID Socket ServiceID Action Sock/Addr Flow Table Service Table Dest Address Next Hop IP Forwarding Table

Data Plane: The Service Table ServiceID Action Rule State Prefix A FORWARD Send to addr A1 Prefix B Send to [A2, A3, A4] Prefix C DEMUX Send to listening sock s Prefix D DELAY Queue and notify service controller Prefix E DROP default Send to A5

Data Plane: The Service Table ServiceID Action Rule State Prefix A FORWARD Send to addr A1 Prefix B Send to [A2, A3, A4] Prefix C DEMUX Send to listening sock s Prefix D DELAY Queue and notify service controller Prefix E DROP default Send to A5

Data Plane: The Service Table ServiceID Action Rule State Prefix A FORWARD Send to addr A1 Prefix B Send to [A2, A3, A4] Prefix C DEMUX Send to listening sock s Prefix D DELAY Queue and notify service controller Prefix E DROP default Send to A5

Data Plane: The Service Table ServiceID Action Rule State Prefix A FORWARD Send to addr A1 Prefix B Send to [A2, A3, A4] Prefix C DEMUX Send to listening sock s Prefix D DELAY Queue and notify service controller Prefix E DROP default Send to A5

Data Plane: The Service Table ServiceID Action Rule State Prefix A FORWARD Send to addr A1 Prefix B Send to [A2, A3, A4] Prefix C DEMUX Send to listening sock s Prefix D DELAY Queue and notify service controller Prefix E DROP default Send to A5

Service Access with Serval X Service Router d Internet c X a Datacenter e

Adding a Service Instance Register Service X Application Service Controller S bind(X) listen() FlowID Socket ServiceID Action Sock/Addr X DMX s Add DEMUX rule

Removing a Service Instance Unregister Service X Application Service Controller S close() FlowID Socket ServiceID Action Sock/Addr X DMX s Remove DEMUX rule

Control Plane: The Service Controller Service X @ address a DNS Service Controller

Control Plane: The Service Controller Service X @ address d Service Controller FlowID Socket ServiceID Action Sock/Addr X FWD d Add FORWARD rule

Service Access with Serval X bind(X) Service Router X d,e X@d X/24 c d Internet X/24@c c X X@e bind(X) a Datacenter e

Connecting to Service X Application Service Controller S socket() FlowID Socket ServiceID Action Sock/Addr 2 s X FWD c Allocates local flowID a

Connecting to Service X Application S connect(X) FlowID Socket ServiceID Action Sock/Addr 2 s X FWD c a To c a c 2 - X SYN

Load Balancing in Service Router FlowID Socket ServiceID Action Sock/Addr X FWD d,e From a To e c f a 2 SYN c - X a 2 SYN e - X

Service Instance Providing Service X Application S FlowID Socket ServiceID Action Sock/Addr X DMX s From a e a 2 SYN e - X

Service Instance Providing Service X Application Sc S accept() FlowID Socket ServiceID Action Sock/Addr 3 sc X DMX s To a e e 3 SYN-ACK a 2

Service Access with Serval X a SYN e X a SYN c X Service Router X d,e d Internet c X a e SYN-ACK a Datacenter e e data a

Ad hoc Service Discovery Accessing service X X connect(X) b SYN-ACK a b a SYN * X a c SYN-ACK a X ServiceID Action Rule State default FORWARD “broadcast” c

What does Service Access Involve? Locating a nearby service datacenter Map service name to location Connecting to service Establish data flow to instance Load balance between pool of replicas Maintaining connectivity to service Migrate between interfaces and networks

Migration of Flows sC sS fC1 fS1 Migrate flow a1 -> a2 Host C Host S Migrate flow a1 -> a2 RSYN RSYN-ACK ACK

Multipath with Multiple Subflows fC1 fS1 a1 a3 sC sS fS2 fC2 a2 a4 Host C Host S Add flow a2 <-> a4 SYN SYN-ACK ACK

Prototype End-host network stack (28,000 LOC) Linux kernel module BSD sockets with AF_SERVAL protocol family AF_INET sockets can be accessed simultaneously Legacy middleboxes / NATs handled via encap. Translator for incremental deployment Unmodified apps and end-hosts Serval apps with unmodified services

Incremental Deployment App Translator TCP/IP Serval

Incremental Deployment Translator App Translator Serval TCP/IP TCP/IP

Use of Migration on Clients WiFi Cellular Saves > 900 MB cellular data per month Single Serval TCP connection that never breaks

Uses of Migration on Servers Load balancing across NICs Flow 1 moved to eth1 Both flows use eth0

Uses of Migration on Servers Migrating VMs across subnets VM migrates flow to new address VM changes subnet, acquiring new address

Competitive Performance TCP Throughput Mean (Mbit/s) TCP/IP 934.5 Serval 933.8 Translator 932.1 Service Table Throughput Mbit/s Kpkt/s IP forwarding 987 388.4 Serval 872 142.8

Applications are Easy to Port Codebase Changes Iperf 5,934 240 TFTP 3,452 90 wget 87,164 207 Elinks browser 115,224 234 Firefox browser 4,615,324 70 Mongoose webserver 8,831 425 Memcached server 8,329 159 Memcached client 12,503 184

SDN to the Edges! SDN about network-wide visibility and control Today’s “SDN” (OpenFlow) primarily focuses on layer-2 / layer-3 abstractions Serval extends SDN model to the network edge New programming abstractions for services, flows, hosts, and interfaces Service-level control/data plane split Joint service and network control

Summary of Contributions New naming abstractions Clean role separation in the stack Makes it easier to build and manage services Software architecture for services Flexible service resolution and discovery Maintains robust connectivity Joint service and network management

Papers, demos, source code (GPL) online serval-arch.org @servalnetwork Papers, demos, source code (GPL) online

Related Work Locator/identifier separation Data-oriented networking HIP, i3, HAIR, DOA, LISP, LNA Data-oriented networking DONA, CCNx Support for mobility and migration TCP Migrate, Mobile IP, ROAM Multipath and multi-homing MPTCP, SCTP, Shim6