SPDY Essentials
Will Chan
Roberto Peon
Topics
State of the Web Page (May 2010)
HTTP Connection Use 2010
Goals
Quick SPDY Background
What is SPDY?
HTTP
SPDY
SSL
TCP
IP
Reducing Upload Bytes
Reducing Download Bytes
Reducing Total Packets
Increasing Parallelism
Comparison to Pipelining
Background: Poor Network Utilization
Background: Pesky Round Trips
Transport or Application Layer?
How to Deploy? Process of Elimination
Deployment: Port 80
Deployment: Port 443
With multiplexing:
SYN stream 1 Priority 3
SYN stream 3 Priority 3
SYN stream 5 Priority 0
SYN reply 1
SYN reply 3
Data frame [stream 1]
SYN reply 5
Data frame [stream 5]
Data frame + fin [stream 5]
Data frame + fin[stream 1]
Data frame [stream 3]
Data frame + fin [stream 3]
Client
Server
Request Path
Does it work?
Initial Lab Results - Testing Methods
Initial Lab Results: Packet Loss
Initial Lab Results: Top 300 Content
Initial Lab Results: Page Load Time
Less is More - Conns, Bytes, Packets
HTTPS vs SPDY Overall (Production)
SPDY vs HTTP for Google Websearch
Deployment Status
New Bottlenecks
How Much Does A Handshake Cost?
Single Connection Throttles
Next Steps
Help the community
Document SPDY 'best practices'
Server Push vs Inlining
Research TCP-level improvements
Standardization
Areas for Research
Allow the server to authenticate for other hostnames
Allow the server to republish DNS information
Tunnel WebSocket and other protocols