SlideShare una empresa de Scribd logo
1 de 36
HTTP/2 and Other NextGen Protocols:
What’s New?
V 1.4
Daniel Austin
GRIN Technologies, Inc.
daniel.austin@grintech.net
#daniel_b_austin
.
HTML5 DevConf
October 20, 2015
About: Today’s Talk
• Part 1 – What Has Gone Before
• Part 2 – Theory of HTTP/2
• Part 3 – HTTP/2 in Practice
• Part 4 – Only Forward
Disclaimer: I am not a member of the HTTPbis Working Group at
IETF. HTTP/2 is now RFC 7540.
What Has Gone Before
• 1991 – TimBL publishes HTTP 0.9
– Design Goal: Simplicity
• 1996 – RFC 1945 HTTP 1.0 ‘common usage’ (Informational)
• 1997-99 RFC 2068 (Proposed) & 2616+2617 (Standard)
• 2006-current Revisions of RFC 2616 (26 drafts!)
• 2012 – HTTP/2 first draft published (actually SPDY)
– So much for simplicity!
• May 14, 2015 HTTP/2 becomes RFC 7540 !!! <- victory
• Supported by most major browsers and HTTP servers
No Web Without HTTP
WWW
HTML
(Structure)
URI
(Addresses)
HTTP
(Transport)
Goals of HTTP/2
• The #1 goal of HTTP/2 is to reduce HTTP response times!
• Improving bandwidth efficiency (not latency!)
– Network latency occurs on layer 4, and is not modifiable by changing
layer 7 protocols like HTTP
– No individual packet will arrive faster using HTTP/2!
Performance is response time.
HTTP/2 Defined
“[HTTP/2] describes an optimized expression of the syntax of the
Hypertext Transfer Protocol (HTTP). HTTP/2 enables a more
efficient use of network resources and a reduced perception of
latency…
…HTTP's existing semantics remain unchanged. “
from draft-ietf-httpbis-http2-12
HTTP/2 & the Innovator’s Dilemma
Given the bandwidth and network latency we have, what changes
can we make at layer 7 to improve bandwidth efficiency?
• Rule #1: Don’t Break Everything (Anything)
– When even small changes can have large and unforeseen effects
• Preserving HTTP 1.1 Semantics
– This doesn’t mean things can’t be fixed
– Compatible implementations must fail gracefully to HTTP 1.1
This decision places significant constraints on what kinds of
changes can be made.
How HTTP/2 Achieves Its Goals
• Reducing the number of HTTP connections required
(multiplexing)
• Reducing the number of bytes and (logical) messages sent
across the wire
– HPACK, server push, Alt_SVC
• Prioritizing both messages and packets for queuing efficiency
• Improving caching efficiency at all levels
What is was SPDY?
• Originally proposed by Google as a wire format extension to
HTTP in 2011
• Served as an experimental protocol for improvements to HTTP
– Without the burden or standardization and associated risks
• SPDY became the basis for HTTP/2 in 2012
– Most of the development /implementation work focused on HTTP/2
• In February 2015, Google announced its plans to remove
support for SPDY in favor of HTTP/2.
Bandwidth, Latency, and All That
More Bandwidth? Less Latency!
Bandwidth Efficiency
• How well do we fill the pipe we have?
• Effective vs. Potential Throughput
• For a single object, The efficiency will depend on file size and
packet loss
• But at the ‘page’ level, HTTP introduces large inefficiencies
TCP/IP Is Limited By Packet Loss
• The Floyd Rule:
Bmax = A*(L)^1/2 * MSS/RTT
MSS = max segment size, RTT = round trip time
L = error rate (packet loss as a fraction)
A = AIMD constant (canonical value ~ 1.22
• Typical values of L are ~1% for LAN/WAN
May be as much as 3-5% on mobile!
Streaming, Framing, and Multiplexing
• HTTP/2 effectively moves flow and connection control to a
lower level of the stack;
– Instead of connections we have streams (and stream IDs)
– Streams are divided into control and data frames
– Frames (and packets) are no longer required to arrive sequentially, but
can be queued for higher efficiency
• Hah! Head-of-line blocking solved (for the most part) Wow!
– Downsides:
• More vulnerable to packet loss
• Unbroken streaming from client to server required
Illustrating Multiplexing
Source: http://nuli.nhncorp.com/
Packet Loss & HTTP/2
• From TCP/IP’s point of view, HTTP/2 makes your Website look
like one big binary file
– A single connection for each unique hostname on the ‘page’
– Multiplexing efficiently ‘packs the pipe’
• But when packets are lost, that single connection takes a hit
across all the multiplexed streams
– TCP/IP is extremely sensitive to packet loss but large files are less
sensitive than smaller ones
• End result: packet loss hurts more with HTTP/2, but not as
much as you might think.
HPACK: Header Compression (No More Black Magic)
• Current Version: RFC 7541!
• Provides a method for maintaining HTTP Header state
• Headers are in binary and need to be back-translated
• SPDY used DEFLATE, proved vulnerable to CRIME attack
• HPACK addresses CRIME
• Memory limited for small devices
• Works quite well!
– Typical compression ratio 30-80%
Server Push: A Modest Proposal
• Server push allows the server to -ahem- suggest to the client
which page requisites are needed for this page
• This is a fundamental change to the overall page loading
semantics of the Web
• Server push eliminates entirely the need for intransitive
hypertext links!!!
– Images should never have been hypertext links to begin with
Changing the HTTP loading cycle
Today the Web loads in 3 phases:
Using HTTP/2 and Server Push:
Load the base
page object ML
object
Create multiple parallel
persistent connections to
get the intransitive
content
Deferred loading
of page content
ng of page
content
Phase 1 Phase 2 Phase3
Load the base page
object AND
Create multiple parallel
persistent connections
to get the intransitive
content
Deferred loading
of page content
Phase 1 Phase 2
Server Push and Stream Priorities
• We can suggest to the client the priority (not necessarily the
order) in which resources are to be downloaded.
• This isn’t necessarily a good thing ™.
– Warning: manually overriding the default load priorities
many produce suboptimal results!
Source: http://nuli.nhncorp.com/
Protocol Negotiation
How to tell a client that the protocol has changed?
• NPN
– ‘Next Protocol Negotiation” originally proposed for SPDY (draft)
– Proposed that the server tell the client which protocols are supported.
– Deprecated in favor of ALPN
• ALPN
– ‘Application-level Protocol Negotiation’ now RFC 7301 and RFC 7639
– Proposes that the client tell the server which protocols are supported.
ALPN Example
[ 0.013] HTTP Upgrade request
GET / HTTP/1.1
Host: nghttp2.org
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c-12 HTTP2-Settings: AwAAAGQEAAD__wUAAAAB
Accept: */*
User-Agent: nghttp2/0.4.0-DEV
[ 0.024] HTTP Upgrade response
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c-12
…
Source: nghttp2 README
TLS & HTTP/2
HTTP/2 does not require the use of TLS for all connections.
The Working Group did NOT reach consensus regarding the use of
TLS for all HTTP/2 connections. But every HTTP/2 client does
require TLS
• Reduction in TLS connection Costs + OCSP Efficiencies
• TLS Tunneling
– Protects connections from proxies and intermediaries
– Experience with WebSockets and others
• Hidden Semantics of Sessions via TLS
MPPC and the TCP Transport Equation
• Single Object:
Ttcp= Sz/R+2RTT+tidle
For multiple persistent parallel connections:
Ttcp = (M+1)Si/Ri+[M/kNh]*3SRTTi+tidle
… for 1 base HTML page with M objects, with Si bits, at bandwidth Ri, k
connections per host, and Nh unique hostnames
The “SCS” Equation
For persistent connections, since HTTP/2 streaming flow control
is very close to TCP, we can simply set the browser connection
constant to 1:
Ttcp = (M+1)Si/Ri+[M/Nh]*3SRTTi+tidle
… for 1 base HTML page with M objects, with Si bits, at
bandwidth Ri, k connections per host, and Nh unique hostnames
Implementations
Servers
• Akamai Edge servers
• F5 BigIP
• Apache (mod_h2)
• Nginx
• Jetty
• MS IIS (Windows 10)
Clients
• Chrome
• Firefox
• Safari 9 (+ apps!)
• CURL
• MS Edge (Windows 10)
– finally
How Well Does it Work (Today)?
Very well!
• Significant variation in overall benefit for different application
types
• Response Time reductions of 5-60%
• Many implementations (up-to-date ones)
What’s Changed?
• Multiplexing
• HTTP is now binary (!)
• Server Push
– Changes the implicit semantics off the HTTP loading cycle
• Changing the Browser Connection Constant
– One connection per unique hostname
– Changes the implicit semantics of HTTP connections
• Security & HTTP/2
– TLS only please, we’re secure
What About HTTP/2 And Mobile Devices?
• HTTP/2 is already widely used for mobile devices using
Android
– A lot of learning from the mobile experience
– In some cases it shows dramatic improvements
• Issues with connection times, TTFB, caching remain
• Amazon Silk uses both SPDY and server-side partial rendering
– No support for HTTP/2!
• Challenges for mobile devices go beyond what HTTP can fix
Who’s Using HTTP/2?
 Google
 Twitter
 Yahoo!
 Facebook
That’s a large % of Web traffic!
Adoption – What Can We Expect?
• The bad news: we’ll need to support HTTP 1.1 indefinitely
• Clients first, as always, then CDNs and ISPs
• Mixed states will be common
– not every HTTP connection will use (or be benefited by) HTTP/2
• We should also expect many sites to run in parallel for some time
• The community has done amazing work with implementations!
Boiling the ocean was never going to be cheap or easy.
Net Neutrality & HTTP/2
• When is your ISP a ‘proxy’, an ‘explicit proxy’, or a ‘trusted
proxy’?
• Can an ISP or intermediate of any kind force a protocol
upgrade/downgrade?
– Yes
• Can an ISP modify server push resource priorities?
– No
• Can an ISP modify framing prioritization and framing?
– No
Scratch and QUIC
• QUIC (Google, 2012) is another experimental HTTP protocol
extension
– Proposed by Google in 2012
– Uses UDP rather than TCP/IP
• Does not use large datagrams
– Shares multiple features with HTTP/2
• Upgrade, framing, TLS only
• Currently widely used across Google properties
• Scratch (Austin, 2010) is a similar proposal based on HTTP-over-UDP
– Most proposed Scratch features appeared in HTTP/2 and QUIC
End: No Fate But What We Make
• HTTP/2 is now officially the best thing since sliced bread!
– Multiplexing will change the way the Web moves across the
wire.
– Server push will change the implicit semantics of the HTTP
loading cycle.
– Taken together, the features in HTTP/2 will change the Web.
• Radically!
• Coupling TLS and HTTP/2 creates a bonded protocol
The Last Word
HTTP/2 isn’t just about technical changes to the Web’s
favorite protocol…it also proves that the Web can make
big changes in short periods of time.
Over the course of three years, developers came together
and changed the way the Web moves over the wire. That’s
significant.
Thank You!
V 1.4
Daniel Austin
GRIN Technologies, Inc.
daniel.austin@grintech.net
#daniel_b_austin
.
HTML5 DevConf
October 20, 2015

Más contenido relacionado

La actualidad más candente

Introduction to Secure Delay/Disruption Tolerant Networks (DTN)
Introduction to Secure Delay/Disruption Tolerant Networks (DTN)Introduction to Secure Delay/Disruption Tolerant Networks (DTN)
Introduction to Secure Delay/Disruption Tolerant Networks (DTN)Nasir Bhutta
 
Delay Tolerant Network (DTN)
Delay Tolerant Network (DTN)Delay Tolerant Network (DTN)
Delay Tolerant Network (DTN)Haya Saani
 
Managing and monitoring large scale data transfers - Networkshop44
Managing and monitoring large scale data transfers - Networkshop44Managing and monitoring large scale data transfers - Networkshop44
Managing and monitoring large scale data transfers - Networkshop44Jisc
 
Vehicular Delay Tolerant Network (VDTN): Routing Perspectives
Vehicular Delay Tolerant Network (VDTN):Routing PerspectivesVehicular Delay Tolerant Network (VDTN):Routing Perspectives
Vehicular Delay Tolerant Network (VDTN): Routing PerspectivesSyed Hassan Ahmed
 
Internet Architecture and Design Philosophy
Internet Architecture and Design PhilosophyInternet Architecture and Design Philosophy
Internet Architecture and Design PhilosophyDilum Bandara
 
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...Dr. Mazlan Abbas
 
Sntvt sentivate presentation_blockfyre
Sntvt sentivate presentation_blockfyreSntvt sentivate presentation_blockfyre
Sntvt sentivate presentation_blockfyreJonathan Habicht
 
Delay Tolerant Network
Delay Tolerant NetworkDelay Tolerant Network
Delay Tolerant NetworkMichel Chamat
 
Delay tolerant networking
Delay tolerant networkingDelay tolerant networking
Delay tolerant networkingApoorva Hebbar
 
Evolution of computer_networks
Evolution of computer_networksEvolution of computer_networks
Evolution of computer_networksAdityaroy110
 
Delay Tolerant Network - Journal
Delay Tolerant Network - JournalDelay Tolerant Network - Journal
Delay Tolerant Network - JournalLaili Aidi
 
Dynamic trust management for delay tolerant networks and its application to s...
Dynamic trust management for delay tolerant networks and its application to s...Dynamic trust management for delay tolerant networks and its application to s...
Dynamic trust management for delay tolerant networks and its application to s...Papitha Velumani
 
A Guide to Peering on the Internet
A Guide to Peering on the InternetA Guide to Peering on the Internet
A Guide to Peering on the InternetRichard Steenbergen
 
Advance Computer networks
Advance Computer networksAdvance Computer networks
Advance Computer networksTrinity Dwarka
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014Jaime Martin Losa
 
OSI reference model
OSI reference modelOSI reference model
OSI reference modelshanthishyam
 

La actualidad más candente (20)

Introduction to Secure Delay/Disruption Tolerant Networks (DTN)
Introduction to Secure Delay/Disruption Tolerant Networks (DTN)Introduction to Secure Delay/Disruption Tolerant Networks (DTN)
Introduction to Secure Delay/Disruption Tolerant Networks (DTN)
 
Overlay network
Overlay networkOverlay network
Overlay network
 
Delay Tolerant Network (DTN)
Delay Tolerant Network (DTN)Delay Tolerant Network (DTN)
Delay Tolerant Network (DTN)
 
Managing and monitoring large scale data transfers - Networkshop44
Managing and monitoring large scale data transfers - Networkshop44Managing and monitoring large scale data transfers - Networkshop44
Managing and monitoring large scale data transfers - Networkshop44
 
Evolution of internet by Ali Kashif
Evolution of internet  by Ali KashifEvolution of internet  by Ali Kashif
Evolution of internet by Ali Kashif
 
Vehicular Delay Tolerant Network (VDTN): Routing Perspectives
Vehicular Delay Tolerant Network (VDTN):Routing PerspectivesVehicular Delay Tolerant Network (VDTN):Routing Perspectives
Vehicular Delay Tolerant Network (VDTN): Routing Perspectives
 
Internet Architecture and Design Philosophy
Internet Architecture and Design PhilosophyInternet Architecture and Design Philosophy
Internet Architecture and Design Philosophy
 
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...
Trends and Challenges in Delay Tolerant Network (DTN) or Mobile Opportunistic...
 
Sntvt sentivate presentation_blockfyre
Sntvt sentivate presentation_blockfyreSntvt sentivate presentation_blockfyre
Sntvt sentivate presentation_blockfyre
 
RINA: Recursive Inter Network Architecture
RINA: Recursive Inter Network ArchitectureRINA: Recursive Inter Network Architecture
RINA: Recursive Inter Network Architecture
 
Delay Tolerant Network
Delay Tolerant NetworkDelay Tolerant Network
Delay Tolerant Network
 
Delay tolerant networking
Delay tolerant networkingDelay tolerant networking
Delay tolerant networking
 
Evolution of computer_networks
Evolution of computer_networksEvolution of computer_networks
Evolution of computer_networks
 
Delay Tolerant Network - Journal
Delay Tolerant Network - JournalDelay Tolerant Network - Journal
Delay Tolerant Network - Journal
 
Dynamic trust management for delay tolerant networks and its application to s...
Dynamic trust management for delay tolerant networks and its application to s...Dynamic trust management for delay tolerant networks and its application to s...
Dynamic trust management for delay tolerant networks and its application to s...
 
A Guide to Peering on the Internet
A Guide to Peering on the InternetA Guide to Peering on the Internet
A Guide to Peering on the Internet
 
Advance Computer networks
Advance Computer networksAdvance Computer networks
Advance Computer networks
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
 
OSI reference model
OSI reference modelOSI reference model
OSI reference model
 
Delay telerant network
Delay telerant networkDelay telerant network
Delay telerant network
 

Destacado

Moving to Python 3
Moving to Python 3Moving to Python 3
Moving to Python 3Nick Efford
 
Technology of the future
Technology of the futureTechnology of the future
Technology of the futureIrene
 
Getting Started with Amazon Aurora
Getting Started with Amazon AuroraGetting Started with Amazon Aurora
Getting Started with Amazon AuroraAmazon Web Services
 
Future Technologies Presentation
Future Technologies PresentationFuture Technologies Presentation
Future Technologies Presentationanthony librarian
 
Future Of Technology
Future Of  TechnologyFuture Of  Technology
Future Of TechnologyMelanie Swan
 
CTO vs. VP of Engineering
CTO vs. VP of EngineeringCTO vs. VP of Engineering
CTO vs. VP of Engineeringbcantrill
 
Technology powerpoint presentations
Technology powerpoint presentationsTechnology powerpoint presentations
Technology powerpoint presentationsismailraesha
 

Destacado (9)

Moving to Python 3
Moving to Python 3Moving to Python 3
Moving to Python 3
 
Technology of the future
Technology of the futureTechnology of the future
Technology of the future
 
Getting Started with Amazon Aurora
Getting Started with Amazon AuroraGetting Started with Amazon Aurora
Getting Started with Amazon Aurora
 
Future Technology
Future TechnologyFuture Technology
Future Technology
 
Future Technologies Presentation
Future Technologies PresentationFuture Technologies Presentation
Future Technologies Presentation
 
Future Of Technology
Future Of  TechnologyFuture Of  Technology
Future Of Technology
 
Future technology
Future technologyFuture technology
Future technology
 
CTO vs. VP of Engineering
CTO vs. VP of EngineeringCTO vs. VP of Engineering
CTO vs. VP of Engineering
 
Technology powerpoint presentations
Technology powerpoint presentationsTechnology powerpoint presentations
Technology powerpoint presentations
 

Similar a Next generation web protocols

HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHAPNIC
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICAPNIC
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduOlaniyi Jinadu
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!jcak77
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 erapeychevi
 
Improving performance by changing the rules from fast to SPDY
Improving performance by changing the rules   from fast to SPDYImproving performance by changing the rules   from fast to SPDY
Improving performance by changing the rules from fast to SPDYCotendo
 
From Fast To SPDY
From Fast To SPDYFrom Fast To SPDY
From Fast To SPDYMike Belshe
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guideSrihari
 

Similar a Next generation web protocols (20)

HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
Http/2
Http/2Http/2
Http/2
 
Http 2
Http 2Http 2
Http 2
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOH
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi Jinadu
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Introduction to HTTP2
Introduction to HTTP2Introduction to HTTP2
Introduction to HTTP2
 
Let's use modern protocols everywhere!
Let's use modern protocols everywhere!Let's use modern protocols everywhere!
Let's use modern protocols everywhere!
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
 
Http2
Http2Http2
Http2
 
Improving performance by changing the rules from fast to SPDY
Improving performance by changing the rules   from fast to SPDYImproving performance by changing the rules   from fast to SPDY
Improving performance by changing the rules from fast to SPDY
 
From Fast To SPDY
From Fast To SPDYFrom Fast To SPDY
From Fast To SPDY
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
HTTP 3.pptx
HTTP 3.pptxHTTP 3.pptx
HTTP 3.pptx
 
Web technology-guide
Web technology-guideWeb technology-guide
Web technology-guide
 

Más de Daniel Austin

Performance: How Fast is Fast Enough?
Performance: How Fast is Fast Enough?Performance: How Fast is Fast Enough?
Performance: How Fast is Fast Enough?Daniel Austin
 
Big Data and the Future of Money 2014
Big Data and the Future of Money 2014Big Data and the Future of Money 2014
Big Data and the Future of Money 2014Daniel Austin
 
Big data comes in small packages v1.2
Big data comes in small packages v1.2Big data comes in small packages v1.2
Big data comes in small packages v1.2Daniel Austin
 
Designing Delay-tolerant Data Services for the Network of Things
Designing Delay-tolerant Data Services for the Network of ThingsDesigning Delay-tolerant Data Services for the Network of Things
Designing Delay-tolerant Data Services for the Network of ThingsDaniel Austin
 
Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Daniel Austin
 
Managing Performance Globally with MySQL
Managing Performance Globally with MySQLManaging Performance Globally with MySQL
Managing Performance Globally with MySQLDaniel Austin
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013Daniel Austin
 
Perspectives on the Evolution of HTML
Perspectives on the Evolution of HTMLPerspectives on the Evolution of HTML
Perspectives on the Evolution of HTMLDaniel Austin
 
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...Daniel Austin
 
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...Daniel Austin
 
Reconceiving the Web as a Distributed (NoSQL) Data System
Reconceiving the Web as a Distributed (NoSQL) Data SystemReconceiving the Web as a Distributed (NoSQL) Data System
Reconceiving the Web as a Distributed (NoSQL) Data SystemDaniel Austin
 
Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Daniel Austin
 
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)Daniel Austin
 
Performance analysisclass
Performance analysisclassPerformance analysisclass
Performance analysisclassDaniel Austin
 
Yes sql08 inmemorydb
Yes sql08 inmemorydbYes sql08 inmemorydb
Yes sql08 inmemorydbDaniel Austin
 
The Fastest Possible Search Algorithm
The Fastest Possible Search AlgorithmThe Fastest Possible Search Algorithm
The Fastest Possible Search AlgorithmDaniel Austin
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLDaniel Austin
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolDaniel Austin
 
Wrestling Large Data Volumes to the Ground
Wrestling Large Data Volumes to the GroundWrestling Large Data Volumes to the Ground
Wrestling Large Data Volumes to the GroundDaniel Austin
 

Más de Daniel Austin (19)

Performance: How Fast is Fast Enough?
Performance: How Fast is Fast Enough?Performance: How Fast is Fast Enough?
Performance: How Fast is Fast Enough?
 
Big Data and the Future of Money 2014
Big Data and the Future of Money 2014Big Data and the Future of Money 2014
Big Data and the Future of Money 2014
 
Big data comes in small packages v1.2
Big data comes in small packages v1.2Big data comes in small packages v1.2
Big data comes in small packages v1.2
 
Designing Delay-tolerant Data Services for the Network of Things
Designing Delay-tolerant Data Services for the Network of ThingsDesigning Delay-tolerant Data Services for the Network of Things
Designing Delay-tolerant Data Services for the Network of Things
 
Web Performance Bootcamp 2014
Web Performance Bootcamp 2014Web Performance Bootcamp 2014
Web Performance Bootcamp 2014
 
Managing Performance Globally with MySQL
Managing Performance Globally with MySQLManaging Performance Globally with MySQL
Managing Performance Globally with MySQL
 
Web Performance BootCamp 2013
Web Performance BootCamp 2013Web Performance BootCamp 2013
Web Performance BootCamp 2013
 
Perspectives on the Evolution of HTML
Perspectives on the Evolution of HTMLPerspectives on the Evolution of HTML
Perspectives on the Evolution of HTML
 
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...
The Fastest Possible Search Algorithm: Grover's Search and the World of Quant...
 
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...
Quantum Computing in a Nutshell: Grover's Search and the World of Quantum Com...
 
Reconceiving the Web as a Distributed (NoSQL) Data System
Reconceiving the Web as a Distributed (NoSQL) Data SystemReconceiving the Web as a Distributed (NoSQL) Data System
Reconceiving the Web as a Distributed (NoSQL) Data System
 
Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)Big data and the Future of Money (World Big Data Congress 2013)
Big data and the Future of Money (World Big Data Congress 2013)
 
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)
Big Data is a Big Scam Most of the Time! (MySQL Connect Keynote 2012)
 
Performance analysisclass
Performance analysisclassPerformance analysisclass
Performance analysisclass
 
Yes sql08 inmemorydb
Yes sql08 inmemorydbYes sql08 inmemorydb
Yes sql08 inmemorydb
 
The Fastest Possible Search Algorithm
The Fastest Possible Search AlgorithmThe Fastest Possible Search Algorithm
The Fastest Possible Search Algorithm
 
A Global In-memory Data System for MySQL
A Global In-memory Data System for MySQLA Global In-memory Data System for MySQL
A Global In-memory Data System for MySQL
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON Protocol
 
Wrestling Large Data Volumes to the Ground
Wrestling Large Data Volumes to the GroundWrestling Large Data Volumes to the Ground
Wrestling Large Data Volumes to the Ground
 

Último

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Next generation web protocols

  • 1. HTTP/2 and Other NextGen Protocols: What’s New? V 1.4 Daniel Austin GRIN Technologies, Inc. daniel.austin@grintech.net #daniel_b_austin . HTML5 DevConf October 20, 2015
  • 2. About: Today’s Talk • Part 1 – What Has Gone Before • Part 2 – Theory of HTTP/2 • Part 3 – HTTP/2 in Practice • Part 4 – Only Forward Disclaimer: I am not a member of the HTTPbis Working Group at IETF. HTTP/2 is now RFC 7540.
  • 3. What Has Gone Before • 1991 – TimBL publishes HTTP 0.9 – Design Goal: Simplicity • 1996 – RFC 1945 HTTP 1.0 ‘common usage’ (Informational) • 1997-99 RFC 2068 (Proposed) & 2616+2617 (Standard) • 2006-current Revisions of RFC 2616 (26 drafts!) • 2012 – HTTP/2 first draft published (actually SPDY) – So much for simplicity! • May 14, 2015 HTTP/2 becomes RFC 7540 !!! <- victory • Supported by most major browsers and HTTP servers
  • 4. No Web Without HTTP WWW HTML (Structure) URI (Addresses) HTTP (Transport)
  • 5. Goals of HTTP/2 • The #1 goal of HTTP/2 is to reduce HTTP response times! • Improving bandwidth efficiency (not latency!) – Network latency occurs on layer 4, and is not modifiable by changing layer 7 protocols like HTTP – No individual packet will arrive faster using HTTP/2! Performance is response time.
  • 6. HTTP/2 Defined “[HTTP/2] describes an optimized expression of the syntax of the Hypertext Transfer Protocol (HTTP). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency… …HTTP's existing semantics remain unchanged. “ from draft-ietf-httpbis-http2-12
  • 7. HTTP/2 & the Innovator’s Dilemma Given the bandwidth and network latency we have, what changes can we make at layer 7 to improve bandwidth efficiency? • Rule #1: Don’t Break Everything (Anything) – When even small changes can have large and unforeseen effects • Preserving HTTP 1.1 Semantics – This doesn’t mean things can’t be fixed – Compatible implementations must fail gracefully to HTTP 1.1 This decision places significant constraints on what kinds of changes can be made.
  • 8. How HTTP/2 Achieves Its Goals • Reducing the number of HTTP connections required (multiplexing) • Reducing the number of bytes and (logical) messages sent across the wire – HPACK, server push, Alt_SVC • Prioritizing both messages and packets for queuing efficiency • Improving caching efficiency at all levels
  • 9. What is was SPDY? • Originally proposed by Google as a wire format extension to HTTP in 2011 • Served as an experimental protocol for improvements to HTTP – Without the burden or standardization and associated risks • SPDY became the basis for HTTP/2 in 2012 – Most of the development /implementation work focused on HTTP/2 • In February 2015, Google announced its plans to remove support for SPDY in favor of HTTP/2.
  • 12. Bandwidth Efficiency • How well do we fill the pipe we have? • Effective vs. Potential Throughput • For a single object, The efficiency will depend on file size and packet loss • But at the ‘page’ level, HTTP introduces large inefficiencies
  • 13. TCP/IP Is Limited By Packet Loss • The Floyd Rule: Bmax = A*(L)^1/2 * MSS/RTT MSS = max segment size, RTT = round trip time L = error rate (packet loss as a fraction) A = AIMD constant (canonical value ~ 1.22 • Typical values of L are ~1% for LAN/WAN May be as much as 3-5% on mobile!
  • 14. Streaming, Framing, and Multiplexing • HTTP/2 effectively moves flow and connection control to a lower level of the stack; – Instead of connections we have streams (and stream IDs) – Streams are divided into control and data frames – Frames (and packets) are no longer required to arrive sequentially, but can be queued for higher efficiency • Hah! Head-of-line blocking solved (for the most part) Wow! – Downsides: • More vulnerable to packet loss • Unbroken streaming from client to server required
  • 16. Packet Loss & HTTP/2 • From TCP/IP’s point of view, HTTP/2 makes your Website look like one big binary file – A single connection for each unique hostname on the ‘page’ – Multiplexing efficiently ‘packs the pipe’ • But when packets are lost, that single connection takes a hit across all the multiplexed streams – TCP/IP is extremely sensitive to packet loss but large files are less sensitive than smaller ones • End result: packet loss hurts more with HTTP/2, but not as much as you might think.
  • 17. HPACK: Header Compression (No More Black Magic) • Current Version: RFC 7541! • Provides a method for maintaining HTTP Header state • Headers are in binary and need to be back-translated • SPDY used DEFLATE, proved vulnerable to CRIME attack • HPACK addresses CRIME • Memory limited for small devices • Works quite well! – Typical compression ratio 30-80%
  • 18. Server Push: A Modest Proposal • Server push allows the server to -ahem- suggest to the client which page requisites are needed for this page • This is a fundamental change to the overall page loading semantics of the Web • Server push eliminates entirely the need for intransitive hypertext links!!! – Images should never have been hypertext links to begin with
  • 19. Changing the HTTP loading cycle Today the Web loads in 3 phases: Using HTTP/2 and Server Push: Load the base page object ML object Create multiple parallel persistent connections to get the intransitive content Deferred loading of page content ng of page content Phase 1 Phase 2 Phase3 Load the base page object AND Create multiple parallel persistent connections to get the intransitive content Deferred loading of page content Phase 1 Phase 2
  • 20. Server Push and Stream Priorities • We can suggest to the client the priority (not necessarily the order) in which resources are to be downloaded. • This isn’t necessarily a good thing ™. – Warning: manually overriding the default load priorities many produce suboptimal results! Source: http://nuli.nhncorp.com/
  • 21. Protocol Negotiation How to tell a client that the protocol has changed? • NPN – ‘Next Protocol Negotiation” originally proposed for SPDY (draft) – Proposed that the server tell the client which protocols are supported. – Deprecated in favor of ALPN • ALPN – ‘Application-level Protocol Negotiation’ now RFC 7301 and RFC 7639 – Proposes that the client tell the server which protocols are supported.
  • 22. ALPN Example [ 0.013] HTTP Upgrade request GET / HTTP/1.1 Host: nghttp2.org Connection: Upgrade, HTTP2-Settings Upgrade: h2c-12 HTTP2-Settings: AwAAAGQEAAD__wUAAAAB Accept: */* User-Agent: nghttp2/0.4.0-DEV [ 0.024] HTTP Upgrade response HTTP/1.1 101 Switching Protocols Connection: Upgrade Upgrade: h2c-12 … Source: nghttp2 README
  • 23. TLS & HTTP/2 HTTP/2 does not require the use of TLS for all connections. The Working Group did NOT reach consensus regarding the use of TLS for all HTTP/2 connections. But every HTTP/2 client does require TLS • Reduction in TLS connection Costs + OCSP Efficiencies • TLS Tunneling – Protects connections from proxies and intermediaries – Experience with WebSockets and others • Hidden Semantics of Sessions via TLS
  • 24. MPPC and the TCP Transport Equation • Single Object: Ttcp= Sz/R+2RTT+tidle For multiple persistent parallel connections: Ttcp = (M+1)Si/Ri+[M/kNh]*3SRTTi+tidle … for 1 base HTML page with M objects, with Si bits, at bandwidth Ri, k connections per host, and Nh unique hostnames
  • 25. The “SCS” Equation For persistent connections, since HTTP/2 streaming flow control is very close to TCP, we can simply set the browser connection constant to 1: Ttcp = (M+1)Si/Ri+[M/Nh]*3SRTTi+tidle … for 1 base HTML page with M objects, with Si bits, at bandwidth Ri, k connections per host, and Nh unique hostnames
  • 26. Implementations Servers • Akamai Edge servers • F5 BigIP • Apache (mod_h2) • Nginx • Jetty • MS IIS (Windows 10) Clients • Chrome • Firefox • Safari 9 (+ apps!) • CURL • MS Edge (Windows 10) – finally
  • 27. How Well Does it Work (Today)? Very well! • Significant variation in overall benefit for different application types • Response Time reductions of 5-60% • Many implementations (up-to-date ones)
  • 28. What’s Changed? • Multiplexing • HTTP is now binary (!) • Server Push – Changes the implicit semantics off the HTTP loading cycle • Changing the Browser Connection Constant – One connection per unique hostname – Changes the implicit semantics of HTTP connections • Security & HTTP/2 – TLS only please, we’re secure
  • 29. What About HTTP/2 And Mobile Devices? • HTTP/2 is already widely used for mobile devices using Android – A lot of learning from the mobile experience – In some cases it shows dramatic improvements • Issues with connection times, TTFB, caching remain • Amazon Silk uses both SPDY and server-side partial rendering – No support for HTTP/2! • Challenges for mobile devices go beyond what HTTP can fix
  • 30. Who’s Using HTTP/2?  Google  Twitter  Yahoo!  Facebook That’s a large % of Web traffic!
  • 31. Adoption – What Can We Expect? • The bad news: we’ll need to support HTTP 1.1 indefinitely • Clients first, as always, then CDNs and ISPs • Mixed states will be common – not every HTTP connection will use (or be benefited by) HTTP/2 • We should also expect many sites to run in parallel for some time • The community has done amazing work with implementations! Boiling the ocean was never going to be cheap or easy.
  • 32. Net Neutrality & HTTP/2 • When is your ISP a ‘proxy’, an ‘explicit proxy’, or a ‘trusted proxy’? • Can an ISP or intermediate of any kind force a protocol upgrade/downgrade? – Yes • Can an ISP modify server push resource priorities? – No • Can an ISP modify framing prioritization and framing? – No
  • 33. Scratch and QUIC • QUIC (Google, 2012) is another experimental HTTP protocol extension – Proposed by Google in 2012 – Uses UDP rather than TCP/IP • Does not use large datagrams – Shares multiple features with HTTP/2 • Upgrade, framing, TLS only • Currently widely used across Google properties • Scratch (Austin, 2010) is a similar proposal based on HTTP-over-UDP – Most proposed Scratch features appeared in HTTP/2 and QUIC
  • 34. End: No Fate But What We Make • HTTP/2 is now officially the best thing since sliced bread! – Multiplexing will change the way the Web moves across the wire. – Server push will change the implicit semantics of the HTTP loading cycle. – Taken together, the features in HTTP/2 will change the Web. • Radically! • Coupling TLS and HTTP/2 creates a bonded protocol
  • 35. The Last Word HTTP/2 isn’t just about technical changes to the Web’s favorite protocol…it also proves that the Web can make big changes in short periods of time. Over the course of three years, developers came together and changed the way the Web moves over the wire. That’s significant.
  • 36. Thank You! V 1.4 Daniel Austin GRIN Technologies, Inc. daniel.austin@grintech.net #daniel_b_austin . HTML5 DevConf October 20, 2015

Notas del editor

  1. I am speaking for myself and not anyone else. I originally intended to talk about HTML5 and HTTP/2, but changed the talk to be more about HTTP/2 – after all, this is an HTML5 conference!
  2. There is no minor number version, and 2.0 is incorrect. Corgrats to the HTTPbis team. Amazing!
  3. reduced perception of latency I don’t know what that means, cut it Note: this text was removed from the final RFC.
  4. Even though this is a ‘forced move’ in some sense it’s also a good one.
  5. Another point that’s rarely made is that HTTP/2 includes multiple changes that work under the hood to make intermediate caches work better, which will have an additional impact on reducing response times at scale. ALTSVC, Server Push, PATCH
  6. Typical bandwidth efficiency measures for many commercial websites are less than 20%!
  7. Sally Floyd is a retired computer science professor at Berkeley and a prominent TCP researcher.
  8. Separation of data and control frames in HTTP/2: 12 Frame types, 1 data, 11 control.
  9. Note the big limitation here: the single origin policy limits which URLS can be multiplexed.
  10. This is basic systems theory 101 – it stands to reason that as we push the overall throughput of the system to a greater level, failures are more costly. Of course each packet belongs to a single file; only one file will be immediately impacted, but the congestion window for the connection will be reduced, and this will affect each stream.
  11. This addresses the ‘faster trash problem I originally pointed out in 2009. At one point the spec said something like ‘headers are compressed by black magic’. Apparently it involves Huffman encoding. Who knew?
  12. Apologies to Marc A!
  13. There really isn’t a bigger deal than this! Radical! No more intransitive hyperlinks!
  14. SSL Resumption still works, etc. Win Some Lose Some TLS has performance problems of its own
  15. Solution for HTTP 1.0 is in Kurose & Ross, and for multiple objects is one of the problems in the book. The solution for a single object using HTTP 1.1 was solved by Manasce in “Capacity Planning for Web Services” I published the first solution to the HTTP 1.1 solution for multiple objects (the MPPC equation) in 2009 It doesn’t work as well as it should because of the head
  16. This doesn’t take server push into account directly and is only a preliminary result! If I stand up here next year with something different, consider yourself warned.! SCS = Single Connection Streaming
  17. At least half of the top 10 websites by traffic are using HTTP/2.
  18. TLS turns out to be good for things we never expected, like making protocol upgrades more reliable, and preventing your data from your ISP. HTTP/2 has some interesting effects: ISPs can’t limit connections, have to limit bandwidth directly (via pooling, say) ISPs can’t modify or inject Nothing will protect you from your own government
  19. That’s a good thing!