Deliverable D3.3 Extended Transport System and Transparent Support of Non-NEAT Applications
Total Page:16
File Type:pdf, Size:1020Kb
NEAT A New, Evolutive API and Transport-Layer Architecture for the Internet H2020-ICT-05-2014 Project number: 644334 Deliverable D3.3 Extended Transport System and Transparent Support of Non-NEAT Applications Editor(s): Karl-Johan Grinnemo Contributor(s): Zdravko Bozakov, Anna Brunstrom, Maria Isabel Sanchez Bueno, Thomas Dreibholz, Kristian Evensen, Gorry Fairhurst, Karl-Johan Grinnemo, Audun Fosselie Hansen, David Hayes, Per Hurtig, Mohammad Rajiullah, Tom Jones, David Ros, Tomasz Rozensztrauch, Michael Tüxen, Eric Vyncke Work Package: 3 / Extended Transport System Revision: 1.0 Date: November 30, 2017 Deliverable type: R (Report) Dissemination level: Confidential, only for members of the consortium (including the Commission Services) D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 Abstract This deliverable summarises and concludes our work in Work Package 3 (WP3) to extend the transport services provided by the NEAT System developed in Work Package 2, and to enable non-NEAT applications to harness the transport services offered by NEAT. We have demonstrated how a policy- and information-based selection of transport pro- tocol by NEAT could provide a more efficient transport service for web applications. The information on which NEAT makes its transport selection decisions resides in the Charac- teristics Information Base (CIB). The CIB is populated by various CIB sources, and in WP3 we have designed, implemented, and evaluated various CIB sources, including meta data from mobile broadband networks, passive measurements, IPv6 Provisioning Domain pro- tocols and the Happy Eyeballs mechanism, which caches the outcome of its connection attempts. A key property of NEAT is that it not only “vertically” decouples applications from transport protocols, but also “horizontally”. Particularly, it enables applications to harness information about resource availability and policies from Software Defined Net- working (SDN) controllers in managed networks, without these applications actually being SDN-aware. To extend the use of NEAT to non-NEAT applications, we have implemented a BSD- compatible sockets API on top of NEAT and a NEAT proxy that intercepts and replaces stan- dard TCP connections with NEAT flows, i.e., with the transport solutions deemed most ap- propriate by NEAT. We have also proposed a way for non-NEAT applications to make use of NEAT through the deployment of NEAT-enabled virtual appliances in SDN-controlled net- works: connections from these applications are routed via an SDN-controlled proxy that terminates the original connection and replaces it with a NEAT-selected connection. Participant organisation name Short name Simula Research Laboratory AS (Coordinator) SRL Celerway Communication AS Celerway EMC Information Systems International EMC MZ Denmark APS Mozilla Karlstads Universitet KaU Fachhochschule Münster FHM The University Court of the University of Aberdeen UoA Universitetet i Oslo UiO Cisco Systems France SARL Cisco 2 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 Contents List of Abbreviations 5 1 Introduction 9 2 Extensions to the transport system 10 2.1 New transports for web browsing................................ 11 2.1.1 Multi-streaming for Web traffic............................. 11 2.1.2 The QUIC protocol.................................... 18 2.1.3 Role in NEAT and next steps............................... 19 2.2 Extended policy system and transport selection........................ 19 2.2.1 CIB sources........................................ 20 2.2.2 Transport selection and configuration......................... 25 2.2.3 Role in NEAT and next steps............................... 28 2.3 SDN controller integration.................................... 29 2.3.1 Integration strategies................................... 29 2.3.2 NEAT external interfaces................................. 31 2.3.3 Selected implementation scenario........................... 33 2.3.4 SDN controller integration................................ 35 2.3.5 Role in NEAT and next steps............................... 36 2.4 PvD integration.......................................... 36 2.4.1 Detailed description................................... 37 2.4.2 Getting PvD information into NEAT.......................... 38 2.4.3 PvD JSON format and properties............................ 38 2.4.4 Deployment scenarios.................................. 39 2.4.5 Role in NEAT and next steps............................... 39 3 Transparent support of non-NEAT applications 41 3.1 NEAT proxy solutions....................................... 41 3.1.1 Traffic identification................................... 43 3.2 SDN middleware......................................... 45 3.2.1 Network Hypervisor Integration............................. 45 3.2.2 Next Steps......................................... 46 3.3 NEAT Sockets API......................................... 46 3.3.1 Implementation...................................... 47 3.3.2 Usage examples...................................... 48 3.3.3 with_neat......................................... 49 4 Conclusions 50 References 57 A NEAT Terminology 58 B Paper: Evaluating the Impact of Transport Mechanisms on Web Performance 61 3 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 C Paper: Raising the Datagram API to Support Transport Protocol Evolution 73 D Paper: A Datagram API for Evolving Networks Beyond 5G 80 E Paper: A NEAT Approach to Mobile Communication 83 F Paper: A NEAT Framework for Enhanced End-Host Integration in SDN Environments 90 G Demo: A NEAT framework for application-awareness in SDN environments 98 H NEAT Sockets API: list of API function calls 101 I Internet Draft: NEAT Sockets API 104 4 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 List of abbreviations AAA Authentication, Authorisation and Accounting AAAA Authentication, Authorisation, Accounting and Auditing API Application Programming Interface BE Best Effort BLEST Blocking Estimation-based MPTCP CC Congestion Control CCC Coupled Congestion Controller CDG CAIA Delay Gradient CIB Characteristics Information Base CM Congestion Manager DA-LBE Deadline Aware Less than Best Effort DAPS Delay-Aware Packet Scheduling DCCP Datagram Congestion Control Protocol DNS Domain Name System DNSSEC Domain Name System Security Extensions DPI Deep Packet Inspection DSCP Differentiated Services Code Point DTLS Datagram Transport Layer Security ECMP Equal Cost Multi-Path EFCM Ensemble Flow Congestion Manager ECN Explicit Congestion Notification ENUM Electronic Telephone Number Mapping E-TCP Ensemble-TCP FEC Forward Error Correction FLOWER Fuzzy Lower than Best Effort FSE Flow State Exchange FSN Fragments Sequence Number GUE Generic UDP Encapsulation 5 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 H1 HTTP/1 H2 HTTP/2 HE Happy Eyeballs HoLB Head of Line Blocking HTTP HyperText Transfer Protocol IAB Internet Architecture Board ICE Internet Connectivity Establishment ICMP Internet Control Message Protocol IETF Internet Engineering Task Force IF Interface IGD-PCP Internet Gateway Device – Port Control Protocol IoT Internet of Things IP Internet Protocol IRTF Internet Research Task Force IW Initial Window IW10 Initial Window of 10 segments JSON JavaScript Object Notation KPI Kernel Programming Interface LAG Link Aggregation LAN Local Area Network LBE Less than Best Effort LEDBAT Low Extra Delay Background Transport LRF Lowest RTT First MBB Mobile Broadband MBC Model Based Control MID Message Identifier MIF Multiple Interfaces MPTCP Multipath Transmission Control Protocol MPT-BM Multipath Transport-Bufferbloat Mitigation MTU Maximum Transmission Unit 6 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 NAT Network Address (and Port) Translation NEAT New, Evolutive API and Transport-Layer Architecture NIC Network Interface Card NUM Network Utility Maximization OF OpenFlow OS Operating System OTIAS Out-of-order Transmission for In-order Arrival Scheduling OVSDB Open vSwitch Database PCP Port Control Protocol PDU Protocol Data Unit PHB Per-Hop Behaviour PI Policy Interface PIB Policy Information Base PID Proportional-Integral-Differential PLUS Path Layer UDP Substrate PM Policy Manager PMTU Path MTU POSIX Portable Operating System Interface PPID Payload Protocol Identifier PRR Proportional Rate Reduction PvD Provisioning Domain QoS Quality of Service QUIC Quick UDP Internet Connections RACK Recent Acknowledgement RFC Request for Comments RSerPool Reliable Server Pooling RTT Round Trip Time RTP Real-time Protocol RTSP Real-time Streaming Protocol SCTP Stream Control Transmission Protocol 7 of 141 Project no. 644334 D3.3 Confidential Extended Transport System and Transparent Support of Non-NEAT Applications Rev. 1.0/ November 30, 2017 SCTP-CMT Stream Control Transmission Protocol – Concurrent Multipath Transport SCTP-PF Stream Control Transmission Protocol – Potentially Failed SCTP-PR Stream Control Transmission Protocol – Partial Reliability SDN Software-Defined Networking SDT Secure Datagram Transport SIMD Single Instruction