A Library and Proxy for SPDY

Similar documents
FlexiWeb: Network-Aware Compaction for Accelerating Mobile Web

A New Internet? Introduction to HTTP/2, QUIC and DOH

A New Internet? RIPE76 - Marseille May Jordi Palet

HTTP, WebSocket, SPDY, HTTP/2.0

Advanced Computer Networking. CYBR 230 Jeff Shafer University of the Pacific QUIC

Experimental Evaluation of Transport Services CoAP, HTTP and SPDY for Internet of Things

HTTP/2: What You Need to Know. Robert

SPDY - A Web Protocol. Mike Belshe Velocity, Dec 2009

HTTP/2: Ease the Transition, Remove Implementation Barriers. Robert Haynes Ronnie Dockery

SPDY. HTML5. Make the web fast

How to Configure SSL VPN Portal for Forcepoint NGFW TECHNICAL DOCUMENT

Informing Protocol Design Through Crowdsourcing

HTTP/2 Out Of The Box

(h)icn Socket Library for HTTP Leveraging (h)icn socket library for carrying HTTP messages

RKN 2015 Application Layer Short Summary

SE Memory Consumption

HTTP/2. HTML5. Make the web fast. Christian Horny

Website Acceleration with mod_pagespeed

Flash: an efficient and portable web server

Reading nginx CHANGES together

QUIC evaluation. HTTP Workshop. 28 July 2015 Münster - Germany. G. Carlucci, L. De Cicco, S. Mascolo. Politecnico di Bari, Italy

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017

WebRTC. what is it, how, why, and when? Ilya Grigorik gplus.to/igrigorik Make the Web Fast, Google

PARCEL: Proxy Assisted BRowsing in Cellular networks for Energy and Latency reduction

Investigating Transparent Web Proxies in Cellular Networks

What HTTP/2 means to Java Developers?

Front End Optimization for Enterprise Grade Applications

SE Memory Consumption

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

CSE 333 Lecture HTTP

WebRTC. Why now? What is it? Ilya Grigorik Web Performance Engineer Google

Homework 2 50 points. CSE422 Computer Networking Spring 2018

Application Protocols and HTTP

Why is My Website Running Slow? Edmond Chan & Feybian Yip Akamai Professional Services September 2018

Module 6 Node.js and Socket.IO

Speeding up Web Page Loads with Shandian. Sophia Wang University of Washington

SSL/TLS and HTTP/2 State of the Art in Our Servers Jean-Frederic Clere

Drupal Frontend Performance & Scalability

Evaluating external network bandwidth load for Google Apps

Feedback: Twitter: #TechTalk #wpo #io2011. Make The Web Faster. Joshua Marantz Richard Rabbat Håkon Wium Lie.

How speedy is SPDY? Xiao Sophia Wang, Aruna Balasubramanian, Arvind Krishnamurthy, and David Wetherall University of Washington Abstract

DYNAMIC ADAPTIVE STREAMING OVER HTTP/2.0

SSL/TLS and HTTP/2 State of the Art in Our Servers Jean-Frederic Clere

Exam - Final. CSCI 1680 Computer Networks Fonseca. Closed Book. Maximum points: 100 NAME: 1. TCP Congestion Control [15 pts]

Citrix NetScaler Traffic Management

Tuning NGINX for high performance. Nick Shadrin

Tuning NGINX for high performance. Nick Shadrin

INF5750. RESTful Web Services

The realtime web: HTTP/1.1 to WebSocket, SPDY and beyond. Guillermo QCon. November 2012.

UNIVERSITY OF TORONTO FACULTY OF APPLIED SCIENCE AND ENGINEERING

Quickly Starting Media Streams Using QUIC

Internet Content Distribution

IETF/W3C/etc De-facto STD Overview (in My Case)

CSCI-1680 WWW Rodrigo Fonseca

Paper survey related with web/app performance optimization and MEC. Youngseok Lee

The Application Layer HTTP and FTP

Web. Computer Organization 4/16/2015. CSC252 - Spring Web and HTTP. URLs. Kai Shen

Investigating the Use of Synchronized Clocks in TCP Congestion Control

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal

How to Make the Client IP Address Available to the Back-end Server

Fig. 2: Time gap between retransmission clusters for different connections.

Solving HTTP Problems With Code and Protocols NATASHA ROONEY

FortiTester Handbook VERSION 2.5.0

Demystifying Mobile Web Browsing under Multiple Protocols

Detects Potential Problems. Customizable Data Columns. Support for International Characters

Kaazing. Connect. Everything. WebSocket The Web Communication Revolution

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP SYSTEM WITH BEA WEBLOGIC SERVER

c) With the selective repeat protocol, it is possible for the sender to receive an ACK for a packet that falls outside of its current window.

Hypertext Transport Protocol

Passive Fingerprinting of HTTP/2 Clients

CSE/EE 461 HTTP and the Web

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

Deploying the BIG-IP System v10 with Oracle s BEA WebLogic

Distil Networks & Akamai CDN Integration Guide

Architectural Overview INSIGHT Remote Monitoring Platform

CSE/EE 461 Lecture 13 Connections and Fragmentation. TCP Connection Management

Content Deployment and Caching Techniques in Africa

Factors Affecting Performance of Web Flows in Cellular Networks

Lec 17 Multimedia Transport: RTP, TCP/HTTP and QUIC

Internet Connectivity with

Graphiq Reality. Product Requirement Document. By Team Graphiq Content. Vincent Duong Kevin Mai Navdeep Sandhu Vincent Tan Xinglun Xu Jiapei Yao

Preferential Resource Delivery Via Web Proxy or Web Browser

BIG-IP Access Policy Manager : Portal Access. Version 12.1

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v10 with Microsoft IIS 7.0 and 7.5

This project must be done in groups of 2 3 people. Your group must partner with one other group (or two if we have add odd number of groups).

HTTP/2 Stream Priority in ATS. ATS Spring 2016 Summit Masaori Koshiba

Factors Affecting Performance of Web Flows in Cellular Networks

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v9.x with Microsoft IIS 7.0 and 7.5

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

TDTS06 Computer Networks Final Exam: 14:00-18:00, Friday, November 1, 2013

SHARE THIS WHITEPAPER. Fastest Website Acceleration for New HTTP Protocol with Alteon NG and Advanced HTTP/2 Gateway Whitepaper

DeTail Reducing the Tail of Flow Completion Times in Datacenter Networks. David Zats, Tathagata Das, Prashanth Mohan, Dhruba Borthakur, Randy Katz

Checklist for Testing of Web Application

Lab 2. All datagrams related to favicon.ico had been ignored. Diagram 1. Diagram 2

BIG-IP Analytics: Implementations. Version 12.1

Website Report for bangaloregastro.com

Unit 3 - Week 2 lectures: Building your webapp

Building next-gen Web Apps with WebSocket. Copyright Kaazing Corporation. All rights reserved.

Application Layer Introduction; HTTP; FTP

Transcription:

A Library and Proxy for SPDY Interdisciplinary Project Andrey Uzunov Chair for Network Architectures and Services Department of Informatics Technische Universität München April 3, 2013 Andrey Uzunov (TUM) A Library and Proxy for SPDY 1

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 2

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 3

What is SPDY? An experimental protocol for a faster web alternative to HTTP uses one persistent TCP connection per host: only one TCP handshake and slow start traffic reduction by compressing headers pushes data to the client even before being asked for it requests have priorities, so they may be answered in different order now (almost) always used over TLS actually used are SPDY/2 and SPDY/3 SPDY/3 is the base for HTTP/2.0 Andrey Uzunov (TUM) A Library and Proxy for SPDY 4

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 5

Current SPDY usage Google, Facebook, Twitter,... Apache mod spdy, nginx,... Chrome, Firefox, Opera,... several libraries e.g., spdylay (http://spdylay.sourceforge.net/) supports most of the features of SPDY/2 and SPDY/3 Andrey Uzunov (TUM) A Library and Proxy for SPDY 6

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 7

The library libmicrospdy similar API to libmicrohttpd only server functionality single-threaded two subsystems: framing layer application layer high-level the user does not care about the framing layer, TLS, I/O operations, etc. everything for receiving and answering GET requests is implemented Andrey Uzunov (TUM) A Library and Proxy for SPDY 8

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 9

The proxy Everything happens in a single event loop and callback functions. uses libmicrospdy to receive client SPDY requests small changes in headers (e.g., SPDY uses only lower case, special headers : ) sends HTTP requests to localhost via libcurl multi API receives HTTP responses small changes in headers (e.g., SPDY uses only lower case, special headers : ) sends back SPDY responses No caching, nothing more Andrey Uzunov (TUM) A Library and Proxy for SPDY 10

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 11

Setup for the Experiments Download a real world big web page with all its resources. 1 HTML file ( 385 KB) 3 CSS files (10 30 KB each) 1311 image files of different type (100 B 30 KB each) That all is 3560921 B Andrey Uzunov (TUM) A Library and Proxy for SPDY 12

Setup for the Experiments Setup Protocol Client Server Note http/1.0 HTTP/1.0 curl Apache2 Single request per TCP connection http/1.1 HTTP/1.1 curl Apache2 Multiple requests per TCP connection https/1.0 https/1.1 HTTP/1.0 + TLS HTTP/1.1 + TLS curl Apache2 + mod ssl curl Apache2 + mod ssl Single request per TCP connection Multiple requests per TCP connection Andrey Uzunov (TUM) A Library and Proxy for SPDY 13

Setup for the Experiments Setup Protocol Client Server Note spdy/ fileserver spdy/proxy SPDY/3 + TLS SPDY/3 + TLS spdycat from libspdylay spdycat from libspdylay Web server serving files from the file system (libmicrospdy) SPDYto-HTTP proxy (libmicrospdy and libcurl) All requests in a single TCP connection All requests in a single TCP connection at the SPDY side, multiple requests per TCP connection at the HTTP side; the HTTP requests are served by Apache2 on localhost Andrey Uzunov (TUM) A Library and Proxy for SPDY 14

Setup for the Experiments Figure : Setup for the experiments. Andrey Uzunov (TUM) A Library and Proxy for SPDY 15

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 16

Results First Set of Experiments Simulating browser connections to one host Most of the current versions of the popular browsers use at most 6 connections per host So, we compare 6 parallel HTTP connections vs. 1 SPDY Andrey Uzunov (TUM) A Library and Proxy for SPDY 17

Results Performance on downloading the page (s) 240 220 200 180 160 140 120 100 80 60 40 20 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 0 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Download time for the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 18

Results Performance on downloading the page (s) 240 220 200 180 160 140 120 100 80 60 40 20 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 0 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Download time for the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. RTT deviation is set to 20% of RTT and packet loss rate is 5%. Andrey Uzunov (TUM) A Library and Proxy for SPDY 19

Results Traffic on downloading the page (MB) 7.5 7 6.5 6 5.5 5 4.5 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 4 3.5 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Network traffic on downloading the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 20

Results Traffic on downloading the page (number of packets) 35000 30000 25000 20000 15000 10000 5000 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 0 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Network traffic (in packets) on downloading the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 21

Results Relative performance on downloading the page (%) 100 90 80 70 60 50 40 30 20 10 spdy/fileserver to http/1.1 spdy/proxy to http/1.1 spdy/fileserver to https/1.1 spdy/proxy to https/1.1 spdy/fileserver to http/1.0 spdy/proxy to http/1.0 spdy/fileserver to https/1.0 spdy/proxy to https/1.0 0 +/-0ms loss 0% +/-4ms loss 0% +/-4ms +/-4ms loss 0.5% loss 1% +/-4ms +/-4ms loss 1.5% loss 2% +/-4ms +/-4ms loss 2.5% loss 3% +/-4ms +/-4ms loss 3.5% loss 4% +/-4ms +/-4ms loss 4.5% loss 5% Figure : Download time for the entire webpage needed by SPDY setups in relation to the time needed by HTTP setups for RTT 20ms and different packet loss rates, allowing 6 parallel TCP connections for the latter. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 22

Results Relative performance on downloading the page (%) 100 90 80 70 60 50 40 30 20 10 spdy/fileserver to http/1.1 spdy/proxy to http/1.1 spdy/fileserver to https/1.1 spdy/proxy to https/1.1 spdy/fileserver to http/1.0 spdy/proxy to http/1.0 spdy/fileserver to https/1.0 spdy/proxy to https/1.0 0 +/-0ms loss 0% +/-80ms loss 0% loss +/-80ms 0.5% +/-80ms loss 1% loss +/-80ms 1.5% +/-80ms loss 2% loss +/-80ms 2.5% +/-80ms loss 3% loss +/-80ms 3.5% +/-80ms loss 4% loss +/-80ms 4.5% +/-80ms loss 5% Figure : Download time for the entire webpage needed by SPDY setups in relation to the time needed by HTTP setups for RTT 400ms and different packet loss rates, allowing 6 parallel TCP connections for the latter. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 23

Results 100 95 spdy/fileserver to http/1.1 spdy/proxy to http/1.1 spdy/fileserver to https/1.1 spdy/proxy to https/1.1 spdy/fileserver to http/1.0 spdy/proxy to http/1.0 spdy/fileserver to https/1.0 spdy/proxy to https/1.0 Relative traffic on downloading the page (%) 90 85 80 75 70 65 60 55 50 +/-0ms loss 0% +/-4ms loss 0% +/-4ms +/-4ms loss 0.5% loss 1% +/-4ms +/-4ms loss 1.5% loss 2% +/-4ms +/-4ms loss 2.5% loss 3% +/-4ms +/-4ms loss 3.5% loss 4% +/-4ms +/-4ms loss 4.5% loss 5% Figure : Network traffic on downloading the entire webpage for SPDY setups in relation to the traffic for HTTP setups for RTT 20ms and different packet loss rates, allowing 6 parallel TCP connections for HTTP. Median value of 6 runs is used. Andrey Uzunov (TUM) A Library and Proxy for SPDY 24

Results Second Set of Experiments Simulating browser connections to more hosts Real world web pages have resources from different hosts So, we compare different number of parallel HTTP connections vs. 1 SPDY Andrey Uzunov (TUM) A Library and Proxy for SPDY 25

Results Performance on downloading the page (s) 200 180 160 140 120 100 80 60 40 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 20 0 0 5 10 15 20 25 30 35 40 45 50 Number of parallel TCP connections for HTTP setups Figure : Download time for the entire webpage in relation to the number of parallel TCP connections for HTTP setups averaged over 2 runs for RTT 20ms. The values for SPDY setups are median values of 6 runs. (Overview.) Andrey Uzunov (TUM) A Library and Proxy for SPDY 26

Results Performance on downloading the page (s) 20 18 16 14 12 10 8 6 4 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 2 0 0 5 10 15 20 25 30 35 40 45 50 Number of parallel TCP connections for HTTP setups Figure : Download time for the entire webpage in relation to the number of parallel TCP connections for HTTP setups averaged over 2 runs for RTT 20ms. The values for SPDY setups are median values of 6 runs. Andrey Uzunov (TUM) A Library and Proxy for SPDY 27

Results Performance on downloading the page (s) 20 18 16 14 12 10 8 6 4 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 2 0 0 5 10 15 20 25 30 35 40 45 50 Number of parallel TCP connections for HTTP setups Figure : Download time for the entire webpage in relation to the number of parallel TCP connections for HTTP setups averaged over 2 runs for RTT 100ms. The values for SPDY setups are median values of 6 runs. Andrey Uzunov (TUM) A Library and Proxy for SPDY 28

Agenda What is SPDY? Current SPDY usage The library The proxy Setup for the Experiments Results Future Work Andrey Uzunov (TUM) A Library and Proxy for SPDY 29

Future Work Features to be implemented in libmicrospdy SPDY PING SPDY WINDOW UPDATE SPDY Settings SPDY PUSH SPDY HEADERS HTTP POST over SPDY and receiving DATA frames HTTP PUT over SPDY SPDY Credentials Andrey Uzunov (TUM) A Library and Proxy for SPDY 30

Thank you Andrey Uzunov (TUM) A Library and Proxy for SPDY 31

Additional slides Andrey Uzunov (TUM) A Library and Proxy for SPDY 32

The library in the event loop: SPDY get timeout(...); SPDY get fdset (...); select(...); SPDY run(...); user callbacks e.g., callback for received request SPDY build response(...); SPDY queue response(...); Andrey Uzunov (TUM) A Library and Proxy for SPDY 33

Setup for the Experiments Some notes on what is measured: SPDY header compression enabled only in responses No PUSH No TLS compression for any of the setups spdy/fileserver issues three headers fewer compared to all others Andrey Uzunov (TUM) A Library and Proxy for SPDY 34

Results Traffic on downloading the page (MB) 7.5 7 6.5 6 5.5 5 4.5 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 4 3.5 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Network traffic on downloading the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. RTT deviation is set to 20% of RTT and packet loss rate is 5%. Andrey Uzunov (TUM) A Library and Proxy for SPDY 35

Results Traffic on downloading the page (number of packets) 35000 30000 25000 20000 15000 10000 5000 http/1.1 https/1.1 http/1.0 https/1.0 spdy/fileserver spdy/proxy-to-http1.1 0 0 50 100 150 200 250 300 350 400 RTT (ms) Figure : Network traffic (in packets) on downloading the entire webpage in relation to network latency, allowing 6 parallel TCP connections for all HTTP setups. Median value of 6 runs is used. RTT deviation is set to 20% of RTT and packet loss rate is 5%. Andrey Uzunov (TUM) A Library and Proxy for SPDY 36