Bryan Call ATS Spring Summit 2016

Slides:



Advertisements
Similar presentations
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
TCP for today’s Web. Connections today Web-page > 300KB but objects are small 7.5KB -2.4KB [25] lots of small objects in a page. Implication: TCP Handshake.
Chapter 7 Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Explain the need for the transport layer.  Identify.
SPDY - Clean Slate HTTP About SPDY o What is SPDY o Goals o Features About HTTP o Simple HTTP o Pipelining for cuncurrency o Pipelining doesn’t help SPDY.
ICE Jonathan Rosenberg Cisco Systems. Changes Removed abstract protocol concept Relaxed requirements for ICE on servers and gateways – no address gathering.
By Jory Cohen Made for CISC856, Spring 2010 Thanks to Dr. Amer, Mike Belshe(Google), Jon Leighton.
Dynamic Adaptive Streaming over HTTP2.0. What’s in store ▪ All about – MPEG DASH, pipelining, persistent connections and caching ▪ Google SPDY - Past,
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Computer Networks Transport Layer. Topics F Introduction  F Connection Issues F TCP.
CS335 Networking & Network Administration Tuesday, April 20, 2010.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Performance Comparison of Congested HTTP/2 Links Brian Card, CS /7/
5/12/05CS118/Spring051 A Day in the Life of an HTTP Query 1.HTTP Brower application Socket interface 3.TCP 4.IP 5.Ethernet 2.DNS query 6.IP router 7.Running.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
UDP© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department.
Process-to-Process Delivery:
CS 218 F 2003 Nov 3 lecture:  Streaming video/audio  Adaptive encoding (eg, layered encoding)  TCP friendliness References: r J. Padhye, V.Firoiu, D.
1 Transport Layer Computer Networks. 2 Where are we?
Review: –What is AS? –What is the routing algorithm in BGP? –How does it work? –Where is “policy” reflected in BGP (policy based routing)? –Give examples.
NECP: the Network Element Control Protocol IETF WREC Working Group November 11, 1999.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
Transport Layer Layer #4 (OSI-RM). Transport Layer Main function of OSI Transport layer: Accept data from the Application layer and prepare it for addressing.
Sharing the Network It slices, it dices, it sequences ….. All of this and error checking too!
3: Transport Layer3-1 Where we are in chapter 3 Last time: r TCP m Reliable transfer m Flow control m Connection management r principles of congestion.
Data Transmission Over Wireless Links Fan Yang
Information Flow Across the Internet. What is the Internet? A large group of computers that link together to form the Worldwide Area Network (WAN)
TCP and SCTP RTO Restart draft-hurtig-tcpm-rtorestart-02 Michael Welzl 1.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
INTRODUCTION TO NETWORKS 8/2/2015 SSIG SOUTHERN METHODIST UNIVERSITY.
Networking Basics CCNA 1 Chapter 11.
Transport Layer3-1 TCP throughput r What’s the average throughout of TCP as a function of window size and RTT? m Ignore slow start r Let W be the window.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
HTTP/2 and ATS ATS Fall Summit 2015 Bryan Call. Why HTTP/2? Reduce latency and TCP connection overhead Easier to write well-performing sites (no domain.
1 Interview Questions - What is the difference between TCP and UDP? - What is Nagle's Algorithm? - Describe the TCP handshaking process. - What is Slow.
Transport Layer: Sliding Window Reliability
© 2002, Cisco Systems, Inc. All rights reserved..
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Cisco I Introduction to Networks Semester 1 Chapter 7 JEOPADY.
Distributed Systems 11. Transport Layer
Application Layer Functionality and Protocols Abdul Hadi Alaidi
The Transport Layer Implementation Services Functions Protocols
Chapter 9: Transport Layer
Instructor Materials Chapter 9: Transport Layer
Reddy Mainampati Udit Parikh Alex Kardomateas
Quick UDP Internet Connections
PART 5 Transport Layer Computer Networks.
Multipath QUIC: Design and Evaluation
Working at a Small-to-Medium Business or ISP – Chapter 7
Computer Networks Bhushan Trivedi, Director, MCA Programme, at the GLS Institute of Computer Technology, Ahmadabad.
Working at a Small-to-Medium Business or ISP – Chapter 7
Quick UDP Internet Connections
Transport Layer Our goals:
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Working at a Small-to-Medium Business or ISP – Chapter 7
Process-to-Process Delivery:
File Transfer Issues with TCP Acceleration with FileCatalyst
HTTP/2.
Chapter 17. Transport Protocols
Beyond FTP & hard drives: Accelerating LAN file transfers
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
CS 381: Introduction to Computer Networks
Review of Internet Protocols Transport Layer
Chapter 8 – Data switching and routing
Presentation transcript:

Bryan Call ATS Spring Summit 2016 QUIC Bryan Call ATS Spring Summit 2016

How do you make the web faster? $BROWSER HTTP/1.1 TLS 1.2 User-perceived latency TCP IP Physical Network Copied from Redefining Internet Transport Janna Iyengar google.com

How do you make the web faster? $BROWSER HTTP/1.1 TLS 1.2 User-perceived latency TCP IP Physical Network Build a carrier-grade network Google CDN Copied from Redefining Internet Transport Janna Iyengar google.com google.com

How do you make the web faster? $BROWSER Chrome Launch your own browser Update HTTP HTTP/1.1 HTTP/2 TLS 1.2 User-perceived latency TCP IP Physical Network Build a carrier-grade network Google CDN Copied from Redefining Internet Transport Janna Iyengar google.com google.com

How do you make the web faster? $BROWSER Chrome Launch your own browser Update HTTP HTTP/1.1 HTTP/2 TLS 1.2 User-perceived latency TCP ??? IP Physical Network Build a carrier-grade network Google CDN Copied from Redefining Internet Transport Janna Iyengar google.com google.com

QUIC Features 0-RTT connection handshake 0-RTT encryption handshake Connections survive IP address change Enhanced packet loss recovery Always encrypted Mostly fixes head of line blocking FEC (Forward Error Correction) data recovery

HTTP/2 Features in QUIC Multiplexed streams Sharing connection across domains HPACK header compression Stream prioritization Flow Control Server­initiated streams

QUIC Congestion control, encryption, and some HTTP/2 move to QUIC Runs in user-space

Streams One stream per request Stream are broken up into frames Stream 1 crypto handshake Stream 3 is for headers – to serialize headers (HPACK)

Multiplexed Streams HTTP/1.1 HTTP/2 and QUIC 4-8 outstanding requests on 4-8 connections Resource intensive on the server HTTP/2 and QUIC One connection, many concurrent requests Normally limited to 100

Connection Sharing Multiple domains over one TCP connection Domain must be in certificate and resolve to same IP

Prioritization Ability for clients to set a priority of a stream Dependency tree for streams Higher weights get more resources Resources proportional to the weighting

Flow Control Client and server Connection and streams Credit based Default 64KB – clients and server normally set this higher Requires updates by WINDOW_UPDATE frame

Server-Initiated Streams Should send push before referencing resource - race condition Response must be cacheable Depending on the use case can be faster or slower Browser already has the resource cached Client canceling the stream using RST_STREAM frame

Establishing a QUIC Connection HTTP response header Alternate-Protocol: 443:quic Client establishes QUIC connection in the background Client’s can cache if server supports QUIC

QUIC - Connections Handshake UDP encrypted and authenticated packets 0-RTT for reestablished connections 1-RTT for new connections Accounts for 50% latency improvements Will use TLS 1.3 handshake UDP encrypted and authenticated packets TCP like header are encrypted Prevents active attacks and middlebox changes unlike TCP Moved congestion control into application layer Connections are keep-alive for 30 seconds (default) due to NATs

QUIC - Connections Unencrypted connection ID (64-bit) Connections survive IP address change Used for routing connections ICW remembered by the client for reestablished connections

QUIC Success Rate QUIC connection success rate 92% works 7% doesn’t work 1% is rate limited Google disables QUIC to specific ASNs Chart copied from Redefining Internet Transport Janna Iyengar

QUIC Performance 5% latency reduction on average 30% reduction in rebuffers (video pauses) on YouTube 1 second faster at the 99th percentile for Google web search Helps more for higher latency networks

QUIC Features in TCP and TLS Server Support Client Support TCP   Increasing TCP's Initial Window RHEL 6.2 N/A Computing TCP's Retransmission Timer RHEL 6.3 CUBIC Inflated Window Bug RHEL 6.7 TCP Fast Open ATS done, RHEL 7.2 IOS, OSX, Android needs to be enabled TCP Loss Probe RHEL 7 Early Retransmit for TCP TCP Packet Pacing RHEL 7.2 RACK: a time-based fast loss detection algorithm for TCP Linux 4.4 ICW 32 Dependent on TCP enhancements TLS TLS 1.3 RFC not done

QUIC Status Draft 2 in IETF Waiting on TLS 1.3 https://tools.ietf.org/html/draft-tsvwg-quic-protocol-02 Waiting on TLS 1.3

QUIC Potential Issues UDP rate limiting and blocking More CPU usage on client and server DOS attacks

QUIC Support Client Library Chrome enable by default Wireshark support libquic / goquic proto-quic First release 4/1 Supported by Google

QUIC in ATS Started using libquic Switched to proto-quic More dependencies Build time enabled

Currently in ATS

QUIC in ATS

Discussion Routing connections with IP change Long term implementation in ATS