Wij maken sites quicker met het QUIC protocol

Wij maken sites quicker met het QUIC protocol

Geschreven op 20-05-2019 door Sander Cruiming
Wij maken sites quicker met het QUIC protocol

Als een van de eerste Nederlandse hosters ondersteunen wij al een tijdje het QUIC protocol. Dit protocol is uitgevonden door Google, en heeft als doel om de communicatie tussen browsers en servers efficienter en sneller te maken. In deze blogpost leg ik uit wat het QUIC protocol is, en wat de voordelen voor jou als klant zijn.

Hoe praten browsers en websites met elkaar?
Voordat ik het verbeterde QUIC protocol ga bespreken, moeten we eerst begrijpen hoe browsers en servers normaal gesproken met elkaar communiceren. Dat gebeurt via het TCP protocol. TCP staat voor Transmission Control Protocol, en is een heel betrouwbaar en stabiel protocol. Er zijn namelijk allerlei checks ingebouwd om te controleren of de datastroom in de juiste volgorde en compleet is. Een gesprek tussen een browser en een server ziet er als volgt uit:

Browser: "Hi server, ben je klaar om data van de website naar mij te versturen?"
Server: "Hi browser, ja, ik ben klaar om data van de website naar je te versturen."
Browser: "Ok server, mooi zo. Voordat je de data van de website gaat versturen, wil ik eerst een beveiligde SSL verbinding met je opzetten."
Server: "Ok browser, hier heb je het SSL certificaat voor de website."
Browser: "Dank server, het SSL certificaat heb ik gecontroleerd en is in orde, laten we nu versleuteld met elkaar gaan praten."
Server: "Ok browser, we gaan nu versleuteld met elkaar praten."
Browser: "Server, mag ik de data van de website ontvangen?"
Server: "Ok browser, alsjeblieft, hier is de data van de website."
Browser: "Dank, ik laat de website nu in de browser zien."

In een schemaatje ziet dat er zo uit:

TCP datastroom tussen browser en server

Zoals je ziet gaan er flink wat datapakketjes heen en weer tussen de browser en de server. Ondanks dat dit voor een stukje extra betrouwbaarheid zorgt, is het wel inefficient.

Het efficientere QUIC protocol
Om wat te doen aan de inefficiëntie en traagheid van TCP, heeft Google het QUIC protocol uitgevonden. Dit protocol gebruikt UDP op de achtergrond. UDP staat voor User Diagram Protocol, en anders dan bij TCP - heeft UDP geen ingebouwde checks om te controleren of alle data wel compleet en in de juiste volgorde aankomt. Dit heeft als voordeel dat er veel minder datapakketjes heen en weer worden verzonden, en het dus een stuk sneller is.

Het nadeel is dat de betrouwbaarheid lager is, en daarom heeft Google QUIC als toevoeging op UDP gemaakt met de volgende features:

  • Elk datapakketje bevat ook gedeeltelijke gegevens van andere datapakketjes. Mocht er per ongeluk een datapakketje verloren gaan, dan kan het missende datapakketje met deze gegevens alsnog worden hersteld.
  • QUIC is als een beveiligd protocol ontworpen, en zet direct aan het begin van een datastroom een beveiligde SSL verbinding op. QUIC werkt ook alleen als de website een SSL certificaat heeft.

Dit resulteert een veel efficientere datastroom tussen de browser en server, en een gesprek tussen een browser en server gaat dan zo:

Browser: "Hi server, kun je de data van de website via een beveiligde SSL verbinding doorsturen?"
Server: "Hi browser, ja natuurlijk, hier is de data van de website via een beveiligde SSL verbinding."

En het bijbehorende schemaatje ziet er als volgt uit:

QUIC datastroom tussen browser en server

Wat merkt de bezoeker van een QUIC website hiervan?
Elk datapakketje heeft tijd nodig om van de server naar de browser te reizen. Omdat TCP 4 datapakketjes nodig heeft en QUIC maar 1 pakketje, is de wachttijd om een connectie op te zetten dus 4x zo kort.

Google gebruikt QUIC al jaren voor een aantal van hun eigen diensten, en ze zien bijvoorbeeld dat:

  • Het inladen een zoekresultaten-pagina een seconde sneller is met QUIC.
  • Gebruikers van YouTube 30% minder "rebuffering" hebben als video's via QUIC worden ingeladen.

De onderstaande video laat goed het verschil zien tussen 2 telefoons die een Google zoekopdracht uitvoeren, waarbij 1 wel via QUIC loopt en de ander niet:


Je kunt QUIC nu gebruiken
Om van QUIC te kunnen profiteren, moet zowel de server als de browser het ondersteunen. Momenteel hebben de Chrome en Opera browsers ondersteunen voor QUIC. Deze twee browsers hebben samen een wereldwijd marktaandeel van 63%.

Als je website bij XXL wordt gehost, dan is QUIC nu actief - en je hoeft daar verder als klant niets voor te doen. Het enige wat wel belangrijk is, is dat SSL is ingeschakeld. Met deze plugin voor de Chrome browser kun je checken of een website QUIC ondersteunt.