Successfully reported this slideshow.
Your SlideShare is downloading. ×

Making the internet faster HTTP/3 und QUIC

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 25 Ad

Making the internet faster HTTP/3 und QUIC

Download to read offline

Linux-Stammtisch, Making the internet faster HTTP/3 und QUIC, 27. Juli 2021, online: Vortrag von Franz Wimmer, (@zalintyre, Senior Software Engineer bei QAware)

== Bitte Folien herunterladen, falls sie unscharf sein sollten! =

Abstract:
Mit QUIC und HTTP/3 das Internet beschleunigen. Erfahre mehr über die Entwicklung des WWW, Benchmarks und die Implementierung von HTTP/3.

Linux-Stammtisch, Making the internet faster HTTP/3 und QUIC, 27. Juli 2021, online: Vortrag von Franz Wimmer, (@zalintyre, Senior Software Engineer bei QAware)

== Bitte Folien herunterladen, falls sie unscharf sein sollten! =

Abstract:
Mit QUIC und HTTP/3 das Internet beschleunigen. Erfahre mehr über die Entwicklung des WWW, Benchmarks und die Implementierung von HTTP/3.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Making the internet faster HTTP/3 und QUIC (20)

Advertisement

More from QAware GmbH (20)

Recently uploaded (20)

Advertisement

Making the internet faster HTTP/3 und QUIC

  1. 1. qaware.de Making the internet faster HTTP/3 und QUIC Franz Wimmer franz.wimmer@qaware.de @zalintyre
  2. 2. Quarkus Quickstart ■ Engineering Camp (internal), 2021 Pentests für Einsteiger – das Metasploit Framework und andere Tools ■ Linux-Stammtisch München, 2020 A deep dive into CockroachDB ■ Cloud Native Night Munich, 2020 Private meets Enterprise: Auswertung von Tinder-Daten mit Apache Ignite ■ MRMCD Darmstadt, 2018 Leveraging the power of SolrCloud and Spark with OpenShift ■ Munich Kubernetes/Cloud-Native Meetup 2018 Ransomware vs. Antivirus ■ MRMCD Darmstadt, 2017
  3. 3. Agenda 1. Die Geschichte des WWW 2. HTTP/3 und QUIC 3. Benchmarks 4. Implementierungen
  4. 4. Die Geschichte des WWW
  5. 5. Google IETF 3 Google IETF 2 Autor: Tim Berners-Lee IETF Version 1 Die Geschichte des WWW Zeitleiste 5 HTTP 0.9 HTTP 1.0 HTTP 1.1 SPDY HTTP/2 HTTP/3 1991 1996 1997 2012 2015 2013 2019 QUIC
  6. 6. HTTP/0.9: Erster Entwurf Autor: Tim Berners-Lee, 1991 Anfrage 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)
  7. 7. HTTP/1.0 Ein Response-Status wird eingeführt (200 / 404 / etc). Request und Response können jetzt Header enthalten. $> 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 Expires: Thu, 01 Dec 1997 16:00:00 GMT Last-Modified: Wed, 1 May 1996 12:45:26 GMT Server: Apache 0.84 (plain-text response) (connection closed)
  8. 8. HTTP/1.1 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. $> telnet website.org 80 Connected to xxx.xxx.xxx.xxx 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>
  9. 9. SPDY 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.
  10. 10. HTTP/2 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. * Im Application Layer
  11. 11. Hilfe, meine Anwendung spricht kein 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: GET / HTTP/1.1 Host: rosencrime24.de HTTP/1.1 200 OK content-type: text/html; charset=UTF-8 Link: </style.css>; as=style; rel=preload <content>
  12. 12. HTTP/3 und QUIC
  13. 13. Probleme mit HTTP/2 und TCP 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”
  14. 14. QUIC - Quick UDP Internet Connections
  15. 15. QUIC 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
  16. 16. Verbindungsaufbau im Vergleich
  17. 17. HTTP/3 – Was nicht mehr geht 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.
  18. 18. Benchmarks
  19. 19. Bandbreite und Latenz
  20. 20. Handshake-Performance
  21. 21. Benchmark ■ YU, Alexander; BENSON, Theophilus A. Dissecting Performance of Production QUIC. In: Proceedings of the Web Conference 2021. 2021. S. 1157-1168
  22. 22. Implementierungen
  23. 23. Implementierungen von HTTP/3 Browser: ■ Chrome (> 87), Firefox (> 88), Edge (> 87) und Opera (> 74) unterstützen HTTP/3 Webserver: ■ nginx: Entwickungsbranch mit QUIC vorhanden ■ Apache: Kein Kommentar zu HTTP/3 ■ HAproxy: Implementierung geplant (Mailingliste) Tools: ■ curl unterstützt HTTP/3 seit Version 7.66.0. ■ wget: Kein Kommentar zu HTTP/3
  24. 24. Quellen Grafiken: ■ https://ably.com/topic/http3 ■ https://kinsta.com/de/blog/http3/ ■ https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/129618/QUIC-authors- copy.pdf Paper: ■ YU, Alexander; BENSON, Theophilus A. Dissecting Performance of Production QUIC. In: Proceedings of the Web Conference 2021. 2021. S. 1157-1168. ■ https://cs.brown.edu/~tab/papers/QUIC_WWW21.pdf
  25. 25. qaware.de QAware GmbH Aschauer Straße 32 81549 München Tel. +49 89 232315-0 info@qaware.de twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware Q & A

×