SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
qaware.de
Franz Wimmer
@zalintyre@chaos.social
Making the internet faster
HTTP/3 und QUIC
Franz Wimmer
Senior Software Engineer @ QAware GmbH
Seit 5 Jahren bei QAware
Studium Informatik an der TH Rosenheim
Vorlesung “Cloud Computing” @ TH Rosenheim
Entwicklung von Cloud Native Applications
DevOps Engineer
Public Speaking *
QAware | 2
* https://codefoundry.de/talks
Die Geschichte des WWW
Google IETF
3
Google IETF
2
Autor: Tim Berners-Lee IETF
Version 1
Die Geschichte des WWW
Zeitleiste
HTTP 0.9 HTTP 1.0 HTTP 1.1 SPDY HTTP/2 HTTP/3
1991 1996 1997 2012 2015 2013 2019
QUIC
HTTP/0.9: Erster Entwurf
■ Autor: Tim Berners-Lee, 1991
■ Request besteht nur aus einer einzigen Zeile
■ Der Server antwortet mit einem Dokument (HTML)
$ telnet google.com 80
Connected to 74.125.xxx.xxx
GET /about/
(hypertext response)
(connection closed)
■ Ein Response-Status wird eingeführt (200 / 404 / etc).
■ Request und Response können jetzt Header enthalten.
HTTP/1.0
$ telnet website.org 80
Connected to xxx.xxx.xxx.xxx
GET /rfc/rfc1945.txt HTTP/1.0
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Accept: */*
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 137582
Last-Modified: Wed, 1 May 1996 12:45:26 GMT
(plain-text response)
(connection closed)
■ Eine TCP-Verbindung kann für mehrere HTTP-Requests genutzt werden (Connection: Keep-Alive).
■ Die Requests erfolgen aber seriell.
■ Aushandlung von Content, Encoding, Sprache, etc.
HTTP/1.1
GET /index.html HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
HTTP/1.1 200 OK
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=0, no-cache
Transfer-Encoding: chunked
<!doctype html>
■ SPDY ist ein Tunnel um HTTP/HTTPS.
■ Requests werden modifiziert.
■ Keine Anpassung der Anwendung nötig.
■ Features:
– Kompression
– HTTP-Header werden nicht mehrfach gesendet
– SPDY erfordert die TLS-Extension“Next Protocol Negotiation” (NPN) im Server und im Browser.
– SPDY ist deprecated.
SPDY
■ Voll abwärtskompatibel zu HTTP/1.1.
■ Der Server kann ungefragt Resourcen zum Client pushen.
■ Der Standard umfasst HTTP und HTTPS.
■ Setzt die TLS-Extension “Application-Layer Protocol Negotiation” (ALPN) voraus.
■ Alle Browser unterstützen mit HTTP/2 nur noch mit TLS.
■ Kein Head of Line Blocking (HOL) mehr
■ Clients fragen immer mit HTTP/1.1 an. HTTP/2 wird deshalb ausgehandelt.
HTTP/2
■ Ich will HTTP/2 Server Push einsetzen, aber mein Appserver kann das nicht!?
■ Kein Problem! Nginx als Frontend-Webserver kann das.
■ Der Appserver muss nur einen Link-Header mitsenden:
Hilfe, meine Anwendung spricht kein HTTP/2!
HTTP/1.1 200 OK
content-type: text/html; charset=UTF-8
Link: </style.css>; as=style; rel=preload
<content>
GET / HTTP/1.1
Host: rosencrime24.de
HTTP/3 und QUIC
■ HTTP/2 löst nicht das Problem des “TCP Head
of Line Blocking”.
■ Über eine TCP-Verbindung werden viele
Dokumente übertragen.
■ Wenn auf dem Weg ein TCP-Paket verloren
geht, wird die ganze Verbindung angehalten.
■ “TCP Retransmission”
Probleme mit HTTP/2 und TCP
QUIC (Quick UDP Internet Connections)
■ 2012 bei Google entwickelt
■ Protokoll: UDP, Port 443
■ Übernimmt Funktionen von TCP und TLS
– Verbindung wird in Streams aufgeteilt
– Non-Blocking
– Es werden weiter korrekte Daten zugestellt, auch wenn ein Stream gerade repariert werden
muss
■ Jedes Paket ist einzeln verschlüsselt
■ Auf Anwendungsebene implementiert
– Nicht im Kernel, wie z.B. TCP
■ Ziel: Overhead beim initialen Handshake reduzieren
QUIC
Verbindungsaufbau im Vergleich
■ Load Balancing / Network Management mit TCP war einfach.
– Pakete einer TCP-Verbindung landen immer beim richtigen Server (sticky sessions).
■ Überwachung wird eingeschränkt (mandatory encryption).
■ Bei UDP gibt es keine Sequenznummer im Header.
– Die Infrastruktur muss jetzt die Connection ID im QUIC-Header beachten.
HTTP/3 – Was nicht mehr geht
Benchmarks
Bandbreite und Latenz
Handshake-Performance
Implementierungen
Browser (https://caniuse.com/http3):
■ Chrome (87), Firefox (88), Edge (87) und Opera (74) unterstützen HTTP/3.
■ Selbst testen: https://cloudflare-quic.com/ | https://http3.is
Webserver:
■ nginx (Preview):
https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/
■ Apache: Kein Kommentar zu HTTP/3
■ HAproxy (2.6)
Tools:
■ curl unterstützt HTTP/3 seit Version 7.66.0.
■ wget: Kein Kommentar zu HTTP/3
■ Support für go und Cloudflare
Implementierungen von HTTP/3
Q & A
Franz Wimmer
https://codefoundry.de
https://chaos.social/@zalintyre

Contenu connexe

Similaire à HTTP/3 und QUIC Making the internet faster

Einführung in HTTP/2
Einführung in HTTP/2 Einführung in HTTP/2
Einführung in HTTP/2 RankSider
 
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web RahmenwerkeWebtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerkeadoubleu
 
Internet Information Services (deutsch)
Internet Information Services (deutsch)Internet Information Services (deutsch)
Internet Information Services (deutsch)Joerg Krause
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveKlaus Bild
 
MK2014 FileMaker Server 13 by Thomas Hahn
MK2014 FileMaker Server 13 by Thomas HahnMK2014 FileMaker Server 13 by Thomas Hahn
MK2014 FileMaker Server 13 by Thomas HahnVerein FM Konferenz
 
Webservices auf Basis von HTTP/2 und Servlet4
Webservices auf Basis von HTTP/2 und Servlet4Webservices auf Basis von HTTP/2 und Servlet4
Webservices auf Basis von HTTP/2 und Servlet4JanWeinschenker
 
Php Tutorium
Php TutoriumPhp Tutorium
Php TutoriumAVGP
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Noël Bossart
 
Bidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenBidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenMarco Rico Gomez
 
Feedbox - ServerPush Implementierung
Feedbox - ServerPush ImplementierungFeedbox - ServerPush Implementierung
Feedbox - ServerPush ImplementierungMartin Wöginger
 
PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021SEARCH ONE
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...OPEN KNOWLEDGE GmbH
 
Skalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceSkalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceRobert Windisch
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformanceNico Steiner
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenAlex Kellner
 

Similaire à HTTP/3 und QUIC Making the internet faster (20)

Einführung in HTTP/2
Einführung in HTTP/2 Einführung in HTTP/2
Einführung in HTTP/2
 
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web RahmenwerkeWebtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
 
Internet Information Services (deutsch)
Internet Information Services (deutsch)Internet Information Services (deutsch)
Internet Information Services (deutsch)
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
MK2014 FileMaker Server 13 by Thomas Hahn
MK2014 FileMaker Server 13 by Thomas HahnMK2014 FileMaker Server 13 by Thomas Hahn
MK2014 FileMaker Server 13 by Thomas Hahn
 
Webservices auf Basis von HTTP/2 und Servlet4
Webservices auf Basis von HTTP/2 und Servlet4Webservices auf Basis von HTTP/2 und Servlet4
Webservices auf Basis von HTTP/2 und Servlet4
 
Php Tutorium
Php TutoriumPhp Tutorium
Php Tutorium
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
Bidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenBidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für Webanwendungen
 
SoSe 2013 | Basisinformationstechnologie II - 03_Rechnerkommunikation-II
SoSe 2013 | Basisinformationstechnologie II - 03_Rechnerkommunikation-IISoSe 2013 | Basisinformationstechnologie II - 03_Rechnerkommunikation-II
SoSe 2013 | Basisinformationstechnologie II - 03_Rechnerkommunikation-II
 
Interaktives Web
Interaktives WebInteraktives Web
Interaktives Web
 
Feedbox - ServerPush Implementierung
Feedbox - ServerPush ImplementierungFeedbox - ServerPush Implementierung
Feedbox - ServerPush Implementierung
 
RESTful WebServices
RESTful WebServicesRESTful WebServices
RESTful WebServices
 
PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021PageSpeed Extreme für das große Speed Update 2021
PageSpeed Extreme für das große Speed Update 2021
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
 
Skalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceSkalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerce
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Webinar - WeOS 4.33.0 und WeConfig 1.19.0.pdf
Webinar - WeOS 4.33.0 und WeConfig 1.19.0.pdfWebinar - WeOS 4.33.0 und WeConfig 1.19.0.pdf
Webinar - WeOS 4.33.0 und WeConfig 1.19.0.pdf
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-Performance
 
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-ProjektenTYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
TYPO3 Migration in komplexen Upgrade- und Relaunch-Projekten
 

Plus de QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 

Plus de QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

HTTP/3 und QUIC Making the internet faster

  • 2. Franz Wimmer Senior Software Engineer @ QAware GmbH Seit 5 Jahren bei QAware Studium Informatik an der TH Rosenheim Vorlesung “Cloud Computing” @ TH Rosenheim Entwicklung von Cloud Native Applications DevOps Engineer Public Speaking * QAware | 2 * https://codefoundry.de/talks
  • 4. Google IETF 3 Google IETF 2 Autor: Tim Berners-Lee IETF Version 1 Die Geschichte des WWW Zeitleiste HTTP 0.9 HTTP 1.0 HTTP 1.1 SPDY HTTP/2 HTTP/3 1991 1996 1997 2012 2015 2013 2019 QUIC
  • 5. HTTP/0.9: Erster Entwurf ■ Autor: Tim Berners-Lee, 1991 ■ Request besteht nur aus einer einzigen Zeile ■ Der Server antwortet mit einem Dokument (HTML) $ telnet google.com 80 Connected to 74.125.xxx.xxx GET /about/ (hypertext response) (connection closed)
  • 6. ■ Ein Response-Status wird eingeführt (200 / 404 / etc). ■ Request und Response können jetzt Header enthalten. HTTP/1.0 $ telnet website.org 80 Connected to xxx.xxx.xxx.xxx GET /rfc/rfc1945.txt HTTP/1.0 User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Accept: */* HTTP/1.0 200 OK Content-Type: text/plain Content-Length: 137582 Last-Modified: Wed, 1 May 1996 12:45:26 GMT (plain-text response) (connection closed)
  • 7. ■ Eine TCP-Verbindung kann für mehrere HTTP-Requests genutzt werden (Connection: Keep-Alive). ■ Die Requests erfolgen aber seriell. ■ Aushandlung von Content, Encoding, Sprache, etc. HTTP/1.1 GET /index.html HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 HTTP/1.1 200 OK Connection: keep-alive Content-Type: text/html; charset=utf-8 Cache-Control: max-age=0, no-cache Transfer-Encoding: chunked <!doctype html>
  • 8. ■ SPDY ist ein Tunnel um HTTP/HTTPS. ■ Requests werden modifiziert. ■ Keine Anpassung der Anwendung nötig. ■ Features: – Kompression – HTTP-Header werden nicht mehrfach gesendet – SPDY erfordert die TLS-Extension“Next Protocol Negotiation” (NPN) im Server und im Browser. – SPDY ist deprecated. SPDY
  • 9. ■ Voll abwärtskompatibel zu HTTP/1.1. ■ Der Server kann ungefragt Resourcen zum Client pushen. ■ Der Standard umfasst HTTP und HTTPS. ■ Setzt die TLS-Extension “Application-Layer Protocol Negotiation” (ALPN) voraus. ■ Alle Browser unterstützen mit HTTP/2 nur noch mit TLS. ■ Kein Head of Line Blocking (HOL) mehr ■ Clients fragen immer mit HTTP/1.1 an. HTTP/2 wird deshalb ausgehandelt. HTTP/2
  • 10. ■ Ich will HTTP/2 Server Push einsetzen, aber mein Appserver kann das nicht!? ■ Kein Problem! Nginx als Frontend-Webserver kann das. ■ Der Appserver muss nur einen Link-Header mitsenden: Hilfe, meine Anwendung spricht kein HTTP/2! HTTP/1.1 200 OK content-type: text/html; charset=UTF-8 Link: </style.css>; as=style; rel=preload <content> GET / HTTP/1.1 Host: rosencrime24.de
  • 12. ■ HTTP/2 löst nicht das Problem des “TCP Head of Line Blocking”. ■ Über eine TCP-Verbindung werden viele Dokumente übertragen. ■ Wenn auf dem Weg ein TCP-Paket verloren geht, wird die ganze Verbindung angehalten. ■ “TCP Retransmission” Probleme mit HTTP/2 und TCP
  • 13. QUIC (Quick UDP Internet Connections)
  • 14. ■ 2012 bei Google entwickelt ■ Protokoll: UDP, Port 443 ■ Übernimmt Funktionen von TCP und TLS – Verbindung wird in Streams aufgeteilt – Non-Blocking – Es werden weiter korrekte Daten zugestellt, auch wenn ein Stream gerade repariert werden muss ■ Jedes Paket ist einzeln verschlüsselt ■ Auf Anwendungsebene implementiert – Nicht im Kernel, wie z.B. TCP ■ Ziel: Overhead beim initialen Handshake reduzieren QUIC
  • 16. ■ Load Balancing / Network Management mit TCP war einfach. – Pakete einer TCP-Verbindung landen immer beim richtigen Server (sticky sessions). ■ Überwachung wird eingeschränkt (mandatory encryption). ■ Bei UDP gibt es keine Sequenznummer im Header. – Die Infrastruktur muss jetzt die Connection ID im QUIC-Header beachten. HTTP/3 – Was nicht mehr geht
  • 21. Browser (https://caniuse.com/http3): ■ Chrome (87), Firefox (88), Edge (87) und Opera (74) unterstützen HTTP/3. ■ Selbst testen: https://cloudflare-quic.com/ | https://http3.is Webserver: ■ nginx (Preview): https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ ■ Apache: Kein Kommentar zu HTTP/3 ■ HAproxy (2.6) Tools: ■ curl unterstützt HTTP/3 seit Version 7.66.0. ■ wget: Kein Kommentar zu HTTP/3 ■ Support für go und Cloudflare Implementierungen von HTTP/3
  • 22. Q & A Franz Wimmer https://codefoundry.de https://chaos.social/@zalintyre