SlideShare a Scribd company logo
@thisNatasha
Solving HTTP Problems
With Code and Protocols
NATASHA ROONEY
@thisNatasha
7. Application Data HTTP /
IMAP
6. Data Presentation,
Encryption
SSL / TLS
5. Session and connection
management
-
4. Transport of packets and
streams
TCP / UDP
3. Routing and delivery of
datagrams on the Network
IP / IPSec
2. Local Data Connection Ethernet
1. Physical data connection
(cables)
CAT5
HTTP
TLS
TCP
IP
Web
@thisNatasha
Some fundamental
limitations
@thisNatasha
300,000,000 m/s
@thisNatasha
300,000,000 m/s
Speed of Light
@thisNatasha
300km, 1ms
@thisNatasha
10ms
@thisNatasha
10ms
5G
@thisNatasha
Only one way!
And as the crow flies...
@thisNatasha@thisNatasha
Hops
@thisNatasha
Not good enough!
@thisNatasha
CDNs, Edge
@thisNatasha
Mobile Network (not wifi) The Internet
@thisNatasha
Amount of data
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha@thisNatasha
Speed & Distance
Capped by Speed of Light
Amount of Data
>100 objects per site
800k to 2.5mb data
>50 resources on same domain
@thisNatasha
RTs are Evil
Mostly because of physics. Not much you can do about that.
@thisNatasha
HTTP/1
@thisNatasha
HTTP/1
TLS
TCP
IP
HTTP/1
TLS
TCP
Request
@thisNatasha
HTTP/1
TLS
TCP
IP
HTTP/1
TLS
TCP
Request
Response
@thisNatasha
HTTP/1
TLS
TCP
IP
HTTP/1
TLS
TCP
Request
Response
Request
@thisNatasha
@thisNatasha
@thisNatasha
Urgh...
@thisNatasha@thisNatasha
Spriting
@thisNatasha@thisNatasha
Inlining
@thisNatasha
@thisNatasha
Image source: @jungkees
@thisNatasha
Pipelining
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
HTTP/1
TLS
TCP
IP
HTTP/1
TLS
TCP
TCP Setup
TLS Setup
HTTP Request/Response
@thisNatasha
HTTP/2
@thisNatasha
SPDY
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
Home
Roads
Supermarket
@thisNatasha@thisNatasha
SPDY
A Protocol by Google
2009
Header Compression
Parallel Connections
Multiplexing
Priority Marking
Server Push
TLS (to work)
@thisNatasha@thisNatasha
SPDY
A Protocol by Google
Header Compression
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha
HTTP/2
@thisNatasha
“Idea was to maintain HTTP
semantics but change how it
is transported.”
Daniel Stenberg
https://daniel.haxx.se/blog/
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
HTTP/1
TLS
TCP
IP
HTTP/1
TLS
TCP
Request
Response
Request
Request
@thisNatasha@thisNatasha
HTTP2
A Protocol by IETF
(SDPY base)
Binary
Header Compression
Multiplexing
Server Push
TLS...
@thisNatasha@thisNatasha
HTTP2
A Protocol by IETF
(SDPY base)
@thisNatasha
@thisNatasha@thisNatasha
Stats
Gimme gimme
35% Requests
70% HTTPS Connections
13% Top 1,000,000 Sites
29% Top 1000 Sites
“90% your site”
@thisNatasha
2% packet loss
HTTP1 is better.
@thisNatasha
Head of line blocking
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
Home
Roads
Supermarket
@thisNatasha
Home
Roads
Supermarket
Not good enough!
@thisNatasha
Home
Roads
Supermarket
Not good enough!
@thisNatasha
TCP issue
(Can happen on any protocol with in-order delivery)
@thisNatasha
QUIC
@thisNatasha
“Idea was to maintain HTTP
semantics but change how it
is transported.”
Daniel Stenberg
https://daniel.haxx.se/blog/
@thisNatasha
Home
Roads
Supermarket
TCP
@thisNatasha@thisNatasha
TCP
Suffers from
Head of Line Blocking
UDP
Can work...with help.
Transport Layer
@thisNatasha
“We want QUIC to work on
today’s internet”
Jana Iyengar
QUIC Editor, Google
@thisNatasha
Ossification
@thisNatasha
Why TCP or UDP only?
@thisNatasha
Image source: http://itpro.nikkeibp.co.jp/
@thisNatasha
HTTP/2
TLS 1.2+
TCP
IP
Application
QUIC
UDP
Google CryptoCongestion
Control
@thisNatasha
HTTP/2
TLS 1.2+
TCP
IP
Application
QUIC
UDP
Google CryptoCongestion
Control
@thisNatasha@thisNatasha
QUIC
A Protocol by Google
Goo
@thisNatasha
HTTP/2
TLS 1.2+
TCP
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
@thisNatasha
“A "stream" is an independent,
bidirectional sequence of frames
exchanged between the client and server
within an HTTP/2 connection…
A single HTTP/2 connection can contain
multiple concurrently open streams…”
Hypertext Transfer Protocol Version 2 (HTTP/2), RFC7540
@thisNatasha
Image source: High Performance Browser Networking https://hpbn.co/http2/
@thisNatasha
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
HTTP over QUIC
QUIC
UDP
TLS 1.3
@thisNatasha
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
HTTP over QUIC
QUIC
UDP
TLS 1.3
@thisNatasha
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
HTTP over QUIC
QUIC
UDP
TLS 1.3
@thisNatasha
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
HTTP over QUIC
QUIC
UDP
TLS 1.3
Head
of
Line
Blocking!
@thisNatasha
RTs are Evil
Mostly because of physics. Not much you can do about that.
@thisNatasha
IP
HTTP over QUIC
QUIC
UDP
TLS 1.3
HTTP over QUIC
QUIC
UDP
TLS 1.3
0RTT: Setup + Data
2RTT: If QUIC version
negotiation needed
1RTT: New Crypto Keys
@thisNatasha
Reduce the RTs!
@thisNatasha
@thisNatasha
@thisNatasha
7% Internet Traffic
35% Google Egress Traffic
@thisNatasha
How does this affect me?
@thisNatasha
Abstraction
Is a computer scientist’s friend / fiend
@thisNatasha
Layer Violation
@thisNatasha
7. Application Data HTTP /
IMAP
6. Data Presentation,
Encryption
SSL / TLS
5. Session and connection
management
-
4. Transport of packets and
streams
TCP / UDP
3. Routing and delivery of
datagrams on the Network
IP / IPSec
2. Local Data Connection Ethernet
1. Physical data connection
(cables)
CAT5
HTTP
TLS
TCP
IP
Web
@thisNatasha@thisNatasha
Some things
If you have to do
something...
Manage your resources
logically
Detect on upgrade header
and adapt
Measure
Remember Physics!
@thisNatasha@thisNatasha
Recap
We made it!
RTTs, Physics, Data
SPDY, HTTP2, QUIC
Header compression
Multiplexing & Streams
Head of Line Blocking
Make protocols for
today’s internet
@thisNatasha
3
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha
Thank-you
People: Martin Thomson, Mark Nottingham, Jana Iyengar,
Mike Bishop, Eric Rescola, Ian Swett
@thisNatasha
@thisNatasha
@thisNatasha
@thisNatasha
7. Application Data HTTP /
IMAP
6. Data Presentation,
Encryption
SSL / TLS
5. Session and connection
management
-
4. Transport of packets and
streams
TCP / UDP
3. Routing and delivery of
datagrams on the Network
IP / IPSec
2. Local Data Connection Ethernet
1. Physical data connection
(cables)
CAT5
OSI Model
@thisNatasha
Handshake Flow
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Key Exchange
Authentication Algorithm Strength Mode
Cipher MAC or PRF
TLS/HandshakeCheatSheet Key Exchange Method: creates the pre master secret.
Premaster secret is combined with PRF to create master
secret
RSA, DHE_RSA,
ECDHE_RSA,
ECDHE_ECDSA
Authentication Method: Uses public key crypto and
certificates public key together. Once certificate is
validated the client can used public key.
RSA or ECDSA
Certs: X.509, ASN.1
DER encoding.
Server
Hello,
Certificate
- Server selects cipher & compression
method
- Server send certificate
- Client authenticates
Key Exchange Pre-master secret exchanged between
client & server, client validates certificate
Master
Secret
Client & Server can compute Master Secret.
MAC Server verifies MAC, returns to client to
verify also.
Finished Handshake complete.
Client Hello Client sends TLS Version, Ciphersuites,
Compression methods
Ciphers, Standards and Terms
Encryption
3DES, AES, ARIA,
CAMELLIA, RC4, and
SEED
[1] Steam: adds MAC [2]
Block: adds IV and
padding after encryption
[3] Encryption (AEAD):
encryption and integrity
validation, using nonce,
no padding, no IV.
Master Secret
Pre-master secret:
combines params to
help client and server
create master secret.
Master Secret: both
server and client create
this from pre-master
secret to symmetrically
encrypt
Integrity Validation
PRF: Pseudorandom
Function. Takes a
secret, a seed, and a
unique label. TLS1.2
suites use PRF based
on HMAC and SHA256
MAC: used for integrity
validation in handshake
and record.
@thisNatasha
[1] Client Hello
Cli-ant Ser-ver
Server Hello [2]
Certificate [3]
Server Key Exchange [4]
Server Hello Done [5]
[6] Client Key Exchange
[7] (Change Cipher Spec)
[8] Finished
(Change Cipher Spec) [9]
Finished [10]
TLS Handshake
@thisNatasha
Cli-ant Ser-ver
TCP and TLS with Session Tickets
TCP Fast Open Handshake
[1] Client Hello
Server Hello [2]
(Change Cipher Spec) [3]
Finished [4]
[5] (Change Cipher Spec)
[6] Finished
@thisNatasha
@thisNatasha
Transport Overhead
@thisNatasha@thisNatasha
Min

More Related Content

PDF
Evolving HTTP and making things QUIC
PDF
So that was HTTP/2, what's next?
PPTX
Cumulus Networks: Automating Network Configuration
PDF
Introduction to OverTheBox
PDF
Technical Overview of QUIC
PDF
HTTP2:新的机遇与挑战
PDF
Promise of Push (HTTP/2 Web Performance)
PDF
Webinar NETGEAR Prosafe Switch, la sicurezza della LAN
Evolving HTTP and making things QUIC
So that was HTTP/2, what's next?
Cumulus Networks: Automating Network Configuration
Introduction to OverTheBox
Technical Overview of QUIC
HTTP2:新的机遇与挑战
Promise of Push (HTTP/2 Web Performance)
Webinar NETGEAR Prosafe Switch, la sicurezza della LAN

What's hot (20)

PPTX
HTTP/2 for Developers
PDF
HTTP/2: What no one is telling you
PPTX
F5 tcpdump
PDF
Http2 right now
PDF
Primer to Browser Netwroking
PDF
HTTP/2 Update - FOSDEM 2016
PDF
PDF
Implementing BGP Flowspec at IP transit network
PDF
Introduction to QUIC
PDF
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
PDF
HTTP/3 an early overview
PDF
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
PDF
IETF 100: Surviving IPv6 fragmentation
PPTX
F5 Monitoring System (On Premise & Cloud Solution)
PPTX
Webinar: Network Automation [Tips & Tricks]
PPTX
Are we really ready to turn off IPv4?
PDF
Introduction of dmvpn
PDF
Remote VPN
PPTX
HTTP/2 Introduction
PDF
HTTP/2 What's inside and Why
HTTP/2 for Developers
HTTP/2: What no one is telling you
F5 tcpdump
Http2 right now
Primer to Browser Netwroking
HTTP/2 Update - FOSDEM 2016
Implementing BGP Flowspec at IP transit network
Introduction to QUIC
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/3 an early overview
SPDY & HTTP2.0 & QUIC - #bpstudy 2013-08-28
IETF 100: Surviving IPv6 fragmentation
F5 Monitoring System (On Premise & Cloud Solution)
Webinar: Network Automation [Tips & Tricks]
Are we really ready to turn off IPv4?
Introduction of dmvpn
Remote VPN
HTTP/2 Introduction
HTTP/2 What's inside and Why
Ad

Similar to Solving HTTP Problems With Code and Protocols (20)

PDF
Solving HTTP Problems with Code and Protocols
PDF
Lec 6(Application Layer)
PPTX
Http Vs Https .
PPTX
F5 EMEA Webinar Oct'15: http2 how to ease the transition
PPT
PDF
Computer network (10)
PPT
presentation on Internet and its protocol
PPTX
Network protocols
PPTX
Part 7 : HTTP/2, UDP and TCP
PPTX
Unit 6 : Application Layer
PDF
Application layer
PPTX
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
PPT
CCNA Exam by quangkien@gmail.com - for CCNA test
PDF
The Road to End-to-End Encryption in Jitsi Meet
PPTX
An Introduction to HTTP
PDF
Computer Network notes Application Layer.pdf
PPTX
Introduction to OSI and QUIC
PPT
Transportsec
PPTX
HTTP hyper text transfer protocol all .pptx
PPTX
HTTP/2 : why upgrading the web? - apidays Paris
Solving HTTP Problems with Code and Protocols
Lec 6(Application Layer)
Http Vs Https .
F5 EMEA Webinar Oct'15: http2 how to ease the transition
Computer network (10)
presentation on Internet and its protocol
Network protocols
Part 7 : HTTP/2, UDP and TCP
Unit 6 : Application Layer
Application layer
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
CCNA Exam by quangkien@gmail.com - for CCNA test
The Road to End-to-End Encryption in Jitsi Meet
An Introduction to HTTP
Computer Network notes Application Layer.pdf
Introduction to OSI and QUIC
Transportsec
HTTP hyper text transfer protocol all .pptx
HTTP/2 : why upgrading the web? - apidays Paris
Ad

More from Natasha Rooney (12)

PDF
MARNEW at IETF 94
PDF
Web Authentication: a Future Without Passwords?
PDF
WebAppSec Updates from W3C
PDF
JQuery UK Service Workers Talk
PDF
STV Voting System Explained
PDF
TCP and Mobile Networks Turbulent Relationship
PDF
TLS Perf: from three to zero in one spec
PDF
JQuery UK February 2015: Service Workers On Vacay
PDF
GSMA in W3C
PDF
Making it Work Offline: Current & Future Offline APIs for Web Apps
PDF
FirefoxOS Meetup - Updates on Offline in HTML5 Web Apps
PDF
Updates on Offline: “My AppCache won’t come back” and “ServiceWorker Tricks ...
MARNEW at IETF 94
Web Authentication: a Future Without Passwords?
WebAppSec Updates from W3C
JQuery UK Service Workers Talk
STV Voting System Explained
TCP and Mobile Networks Turbulent Relationship
TLS Perf: from three to zero in one spec
JQuery UK February 2015: Service Workers On Vacay
GSMA in W3C
Making it Work Offline: Current & Future Offline APIs for Web Apps
FirefoxOS Meetup - Updates on Offline in HTML5 Web Apps
Updates on Offline: “My AppCache won’t come back” and “ServiceWorker Tricks ...

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Review of recent advances in non-invasive hemoglobin estimation
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
NewMind AI Weekly Chronicles - August'25 Week I
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Review of recent advances in non-invasive hemoglobin estimation
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
NewMind AI Weekly Chronicles - August'25 Week I

Solving HTTP Problems With Code and Protocols