performance comparison of congested http/2 links brian card, cs 577 12/7/2014 1

Post on 21-Dec-2015

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Performance Comparison of Congested HTTP/2 LinksBrian Card, CS 577

12/7/2014

1

Worcester Polytechnic Institute2

Outline

• HTTP/1.1 and HTTP/2 Connections

• Problem Statement

• Experimental Setup

• Results

3

HTTP/1.1 and HTTP/2 Connections

Worcester Polytechnic Institute4

Background of HTTP

• HTTP is the Hypertext Transfer Protocol, the underlying protocol of the Web

• Major version of HTTP/1.1 was finalized in RFC 2616 in 1999

• Why do we need a new version of HTTP?

Worcester Polytechnic Institute5

Speed!

• Average website complexity is increasing!

• Users expect more features and better performance at the same time!

• Increasing capacity does not solve problem, latency has a significant affect on page load time

http://httparchive.org/trends.php?s=All&minlabel=Nov+15+2010&maxlabel=Nov+15+2014

Worcester Polytechnic Institute6

HTTP/1.1 – Connection Usage

• HTTP/1.1 connections can request a single object at a time

• But there are many objects in a webpage and some have dependencies

• What happens if I want to parallelize downloads?─ Need to open multiple TCP connections (usually max 6)

• What happens if a less important object is downloaded first?─ This is a problem─ Head Of Line Blocking where a large unimportant file

‘clogs up’ the connection

Worcester Polytechnic Institute7

Domain Sharding

• Maximum of 6 connections per domain

Client Server

Worcester Polytechnic Institute8

Domain Sharding

• Create More Domains!

Client

Server

Server

Server

Server

Worcester Polytechnic Institute9

Domain Sharding

• Average Number of Domains per website is 18!

http://httparchive.org/trends.php

Worcester Polytechnic Institute10

Domain Sharding

• Average Number of (TCP) Connections per Page

http://httparchive.org/interesting.php

Worcester Polytechnic Institute11

Other HTTP/1.1 tricks

• Inline files, (base64 encode an image, put it in CSS file)

• Concatenate files (push all CSS files into a single file)

• All trying to get the same amount of content to stream over a single connection or multiple simultaneous connections

Worcester Polytechnic Institute12

HTTP/2 Multiplexed Streaming

• Can stream multiple resources over the same connections

• Resources are prioritized by specifying a dependency graph, no Head Of Line Blocking

Worcester Polytechnic Institute13

HTTP/2 Multiplexed Streaming

• Single TCP connection per domain

• Up to 100 ‘Streams’ per TCP connection

Client Server

Worcester Polytechnic Institute14

Other features of HTTP/2

• Header Compression

• Binary Protocol (HTTP/1.1 is text)

• Encryption Required

• Server Push (Server can push resources uninitiated)

15

Problem StatementBut What About Congestion Control?

Worcester Polytechnic Institute16

Congestion Control

• HTTP/1.1 uses many connections

• When a packet is dropped, only one connection goes into congestion avoidance─ Throughput of a single connection is halved

• HTTP/2 has one connection, when a packet is dropped the throughput of the entire download is halved

• HTTP/2 connections may reach higher speeds faster, since new connections do not need to be created

• If websites do not load faster, people won’t use HTTP/2

Worcester Polytechnic Institute17

This Project

• Quantify the effects of congestion control on HTTP/1.1 vs HTTP/2

• Will HTTP/2 make domain sharding disappear?

18

Experimental Setup

Worcester Polytechnic Institute19

Overview

Server 1192.168.1.30

Server 2192.168.1.31

Server n192.168.1.[n-1]

Virtual Box Ubuntu VM

.

.

.

HTTP

Web site hosted by multiple servers on a Virtual Machine. HTTP/1.1 and HTTP/2 servers are swapped out depending on experiment. Measure time to load page completely.

Worcester Polytechnic Institute20

Setup Details

• MacBook Air 10.8.5 Mountain Lion

• http-server 0.7.4 (node.js)

• nghttp 0.6.4 (supports draft-ietf-httpbis-http2-14)

• VirtualBox 4.3.6

• Ubuntu 14.04 LTS

• Firefox Nightly 36.0a1

• Network Link Conditioner (Late July 2012)

• IP Aliasing to create multiple addresses

Worcester Polytechnic Institute21

Setup Details (continued…)

• http-server used as the HTTP/1.1 Server

• nghttp used as the HTTP/2 server─ Had to edit codebase to support multiple servers binding

to different IP addresses on the same machine

• Sample website is hosted by either server

• Measure the time it takes to load under varying network conditions

• TLS enabled on both web servers

Worcester Polytechnic Institute22

Firefox Settings

• Firefox network analyzer used to measure page load time

• Nightly build has latest HTTP/2 support

• Caching disabled:

about:config Setting Valuenetwork.http.spdy.enabled.http2 truenetwork.http.spdy.enabled.http2draft truenetwork.http.use-cache falsebrowser.cache.offline.enabled false

Worcester Polytechnic Institute23

Sample Website

HTML CSS JavaScript Images

1*60KB 1*60KB 5*1KB 10*1KB

5*10KB 10*5KB

5*20KB 20*20KB

5*37KB 5*40KB

5*140KB

Total 60KB 60KB 340KB 1360KB =1820KB

Worcester Polytechnic Institute24

Sample Website (continued…)

• Each file is mostly filled with comments to take up available space

• Content is rendered ‘below the fold’

• For sharded domains objects are distributed equally between domains

• This ensures equal load between domains─ In the real world, resources would typically be segregated

by domains (images all on one set of domains)

25

Results

Worcester Polytechnic Institute26

Results

• ‘Warm-up’ run used before collection results─ eliminates some startup costs on servers─ do not want to test implementation differences between

http servers

• Results are average of 3 runs

Worcester Polytechnic Institute27

Varying Capacity in Ideal Conditions

0.1 1 10 1000

5000

10000

15000

20000

25000

30000

35000

Page Download Time for HTTP/1.1

No Delay, No Loss

One Domain Two DomainsThree Domains Five Domains

Throughput Mbps

Tim

e (

ms)

0.1 1 10 1000

5000

10000

15000

20000

25000

30000

35000

Page Download Times for HTTP/2

No Delay, No Loss

One Domain Two DomainsThree Domains Five Domains

Throughput Mbps

Tim

e (

ms)

Worcester Polytechnic Institute28

Comparison of HTTP/2vs HTTP/1.1

0.5 5 50-1000

-800

-600

-400

-200

0

200

400

600

Difference In Page Download TIme, Higher Values show HTTP/2 Advantage

One Domain Two Domains Three Domains Five Domains

Throughput Mbps

Tim

e D

iffere

nce (

ms)

Worcester Polytechnic Institute29

Comparison of HTTP/2 vs HTTP/1.1

0.5 5 50-15%

-10%

-5%

0%

5%

10%

15%

20%

25%

30%

Page Download Time HTTP/2 vs HTTP/1.1No Delay, No Loss

One Domain Two Domains Three Domains Five Domains

Throughput Mbps

Perc

ent

Incre

ase v

s H

TTP

/1.1

Worcester Polytechnic Institute30

Varying Capacity, 79ms of Delay

0.1 1 10 100

-10%

0%

10%

20%

30%

40%

50%

60%

70%

Page Download Times HTTP/2 vs HTTP/1.179ms Delay, No Loss

One Domain Two Domains Three Domains Five Domains

Throughput Mbps

Perc

ent

Incre

ase v

s H

TTP

/1.1

Worcester Polytechnic Institute31

One Domain HTTP/2 vs 5 Domains HTTP/1.1

0 10 20 30 40 50 600

5000

10000

15000

20000

25000

30000

35000

-5%

0%

5%

10%

15%

20%

25%

30%

35%

40%

HTTP/2 With One Domain vs HTTP/1.1 With Five Domains

79ms Delay, No Loss

HTTP/2 One Domain HTTP/1.1 Five Domains HTTP/2 Percent Increase

Throughput Mbps

Page L

oad T

ime m

s

Perc

ent

Incre

ase f

or

HTTP

/2

Worcester Polytechnic Institute32

Increase In Performance for Increasing Domains in HTTP/2?

0.1 1 10 100-15%

-10%

-5%

0%

5%

10%

15%

20%

HTTP/2 Speed Increases For Increasing Domains79ms, No Loss

One Domain Two Domains Three Domains Five Domains

Throughput Mbps

Perc

ent

Impro

vem

ent

Over

Sin

gle

Dom

ain

Worcester Polytechnic Institute33

Loss for HTTP/1.1 and HTTP/2

• Fixed Throughput at 5Mbps

• Fixed Latency at 79ms

• Varied Delay 1%, 2%, 5%, 10%

• Last value for single domain HTTP/2 is ‘optimistic’; ran more than three runs and timeouts were occurring

Worcester Polytechnic Institute34

Loss For HTTP/1.1 and HTTP/2

0% 2% 4% 6% 8% 10% 12%0

20000

40000

60000

80000

100000

120000

140000

Page Load Times With Varying Loss Rate79ms Delay, 5Mbps Throughput

HTTP/1.1 Five Domains HTTP/2 Five Domains HTTP/2 One Domain

Loss

Page L

oad T

ime (

ms)

Worcester Polytechnic Institute35

Conclusions

• HTTP/2 has increased performance over HTTP/1 for non-congested links

• Unclear if domain sharding will disappear with HTTP/2

• Under high loss links, HTTP/2 performs significantly worse

• HTTP/2 may not be ubiquitous, advantages for high bandwidth delay product links with no loss

top related