ID.nl logo
Huis

Hoe Google het web sneller en veiliger maakt met QUIC

Google heeft een netwerkprotocol ontwikkeld om verbindingen tussen browsers en webservers te versnellen: QUIC. Dat doet het protocol onder andere door het onderliggende protocol tcp te vervangen door udp. PCM legt uit hoe dat precies zit.

Het hele web is gebaseerd op http (hypertext transfer protocol), het applicatieprotocol dat afspreekt hoe een browser en webserver met elkaar communiceren. Maar dit is maar één protocol in een hele laag. Onder http werkt traditioneel het transportprotocol tcp (transmission control protocol). Dit is bekend om zijn betrouwbaarheid: het protocol garandeert dat gegevens aankomen. 

Bij het opzetten van een tcp-verbinding gebeurt er al een ‘3-way-handshake’: de zender stuurt een pakket naar de ontvanger, die stuurt een bevestiging terug, en daarna stuurt de zender daarop een bevestiging. En als de zender een pakketje stuurt en geen bevestiging terugkrijgt, stuurt hij het opnieuw.

Al die pakketjes die over en weer gaan, voegen extra vertraging aan elke verbinding toe. Bovendien voegt tls (transport layer security), de opvolger van ssl (secure sockets layer), ook nog eens een uitgebreide handshake toe om sessiesleutels en certificaten uit te wisselen. Zeker als je een versleutelde verbinding opzet, zit je dus talloze pakketjes over en weer te sturen nog voor je maar iets nuttigs kunt doen.

Verschil tcp en udp

Naast tcp is er nog een ander transportprotocol: udp (user datagram protocol). In tegenstelling tot tcp garandeert dat niet dat gegevens daadwerkelijk aankomen. Dit ‘onbetrouwbare’ protocol wordt veel ingezet in toepassingen waar het belangrijker is dat gegevens zo snel mogelijk overgedragen worden en het niet zo erg is dat een deel van de gegevens verloren gaat.

We merken lang niet altijd dat pakketjes verloren gaan

Denk daarbij aan videoconferencing of voip: we merken het waarschijnlijk niet eens als er wat pakketjes verloren gaan. Bij gebruik van tcp zou een verloren pakketje daarentegen opnieuw verstuurd worden en zou het beeld of geluid eventjes haperen door die vertraging.

Als een applicatieprotocol van udp gebruikmaakt en toch wil dat gegevens gegarandeerd aankomen, moet dat protocol zelf een methode daarvoor implementeren. In feite herimplementeert het zo een deel van de functionaliteit van tcp.

Zo werkt QUIC

Wat als je nu op het web tcp inruilt voor udp? Dan zouden de verbindingen al heel wat sneller opgezet worden. En dat is wat Google heeft gedaan: met het protocol QUIC (Quick Udp Internet Connections) neemt het opstarten van een verbinding én het afspreken van tls-parameters samen slechts één of twee pakketjes in. Het resultaat? Je kunt veel sneller een webpagina downloaden.

QUIC draait in de internetprotocolsuite dus boven udp, maar vervangt ook tls. Bovendien vervangt het nieuwe protocol een deel van http/2. Het hele verbindingsbeheer implementeert QUIC immers, en een stuk efficiënter dan het klassieke http. Wat overblijft van http/2 wordt in een http/2-api gestoken, die gebruikmaakt van QUIC.

©PXimport

Waarom udp?

Recentelijk zijn er allerlei inspanningen geleverd om het web te versnellen. In http/2 (zie kader) gebeurt dat bijvoorbeeld met multiplexing: als je een webpagina bezoekt, verlopen alle verbindingen tussen je browser en de webserver over één tcp-verbinding. Dus je browser hoeft niet meer voor elke afbeelding, css-bestand of javascript-bestand een nieuwe tcp-verbinding op te zetten met de bijbehorende vertraging.

Als alles goed gaat, werkt http/2 sneller dan zijn voorganger http/1.1. Maar omdat elk bezoek aan een webserver nu over één tcp-verbinding verloopt, vormt die verbinding een bottleneck. Tcp verwerkt immers alle pakketjes in dezelfde volgorde als ze verzonden zijn. Als de verzending van een pakketje mislukt, verstuurt de zender het pakketje opnieuw.

Udp is een 'onbetrouwbaar' protocol

De ontvanger wacht met het verwerken van de andere pakketjes tot het verloren pakketje arriveert. En hoe meer bestanden je over één tcp-verbinding downloadt, hoe groter de kans dat er ergens wel eens een pakketje verloren raakt en de verbinding dus tijdelijk blokkeert. Kortom: in goede omstandigheden is http/2 sneller dan http/1.1, maar in slechte omstandigheden trager.

Udp heeft dat probleem niet, omdat het een ‘onbetrouwbaar’ protocol is: het garandeert niet dat alle pakketjes aankomen. Als je QUIC boven udp gebruikt, legt een verloren pakketje dus niet de hele verbinding lam, maar heeft het alleen impact op het bestand waartoe het pakketje behoort.

Betrouwbaarheid QUIC

QUIC heeft dus de voordelen van http/2 zonder de bottleneck die tcp bij multiplexing introduceert. Maar geven we door het gebruik van udp nu niet te veel op? Je bent immers niet zeker of je gegevens correct worden overgedragen.

Dat klopt, en daarom implementeert QUIC zelf zijn eigen methode om te garanderen dat gegevens aankomen: forward error correction. Het is te vergelijken met raid5 voor opslag, maar dan voor netwerkpakketjes. Elk verzonden pakketje krijgt dus wat gegevens van andere pakketjes mee. Raakt er een pakketje verloren, dan kan QUIC de inhoud reconstrueren op basis van de andere pakketjes die wel zijn gearriveerd. Zo hoeft het pakketje niet opnieuw verzonden te worden.

De overhead van forward error correction is ongeveer 10 procent. Dat betekent dat QUIC voor elke 10 pakketjes die het verzendt, voldoende informatie meezendt om één verloren pakketje te reconstrueren. Dat lijkt inefficiënt, want je moet 10 procent extra pakketjes verzenden, wat ook extra tijd vraagt. Maar toch is dat nog altijd veel sneller dan verloren pakketjes opnieuw moeten sturen en wachten tot alle pakketjes binnen zijn.

QUIC is versleuteld

Een ander interessant aspect van QUIC is dat de verbinding altijd is versleuteld. QUIC herimplementeert immers de functionaliteit van tls. Zo implementeert het perfect forward secrecy (pfs). Dankzij die eigenschap is je eerdere communicatie nog altijd veilig als er een sessiesleutel uit een QUIC-verbinding wordt gecompromitteerd. Dat wil zeggen: uit een sessiesleutel kun je nooit de voorgaande sleutels afleiden.

QUIC beschermt ook tegen ip-spoofing

QUIC beschermt ook tegen ip spoofing, het vervalsen van het ip-adres van de zender. Daarvoor reikt de server aan de client een ‘source address token’ uit. De server versleutelt het ip-adres van de client en een timestamp van de server en bezorgt de client dat token. De server zendt dat token alleen aan het ip-adres dat in dat token zit. De server gaat ervan uit dat wie het token ontvangt, eigenaar is van het bijbehorende ip-adres. Op elk moment kan de server aan de client vragen om het token te sturen om te bewijzen dat het ip-adres van hem is.

De cryptografie in QUIC is overigens slechts een tussenoplossing. De ontwikkelaars hadden functionaliteit nodig die momenteel niet in tls aanwezig is. Op termijn zal de cryptografie worden vervangen door tls 1.3, waarin de benodigde zaken worden geïmplementeerd.

Goed, zo werkt QUIC dus. Het leuke is dat je er zelf al van kunt profiteren, althans als je de Chrome-browser gebruikt. Lees verder: QUIC inschakelen in Chrome om sneller te browsen. Ook nadelen komen aan bod.

▼ Volgende artikel
Helldivers-film arriveert eind 2027, Jason Momoa heeft rol
Huis

Helldivers-film arriveert eind 2027, Jason Momoa heeft rol

De film gebaseerd op de Helldivers-gamefranchise zal op 10 november 2027 in première gaan. Daarbij heeft acteur Jason Momoa een hoofdrol te pakken.

Dat meldt Deadline. Veel details over de film zijn er verder nog niet, behalve dus dat Momoa - bekend van Aquaman en Game of Thrones - er in speelt, en dat Fast and Furious-regisseur Justin Lin de regie op zich neemt.

De verfilming van Helldivers werd vorig jaar aangekondigd, maar sindsdien is het vrij stil rondom de film. Wel maakte Lin eerder al duidelijk dat hij de Helldivers-film wil gebruiken als excuus om bekende acteurs op het witte doek op gewelddadige wijze aan hun einde te laten komen.

View post on X

Over Helldivers

Helldivers is een multiplayershooterfranchise waarin spelers in teamverband buitenaardse wezens doden om Super Earth te beschermen. Men krijgt in het ruimteschip allerlei missies voorgeschoteld, zoals het vernietigen van een nest aan buitenaardse wezens of het vergaren van data, en reist vervolgens af naar planeten om die missies te klaren.

Vooral het in 2024 verschenen Helldivers 2 is een blijvend succes en wordt nog altijd met nieuwe content ondersteund. De game kwam eerst op PlayStation 5 en pc uit, maar is inmiddels ook speelbaar op Xbox Series-consoles.

PlayStation-verfilmingen

Steeds meer PlayStation-franchises worden de laatste jaren verfilmd, en er staan er nog veel meer op de planning. Zo zijn er films gebaseerd op Uncharted en Gran Turismo gemaakt, en series rondom The Last of Us en Twisted Metal. Ook is er een film rondom de Horizon-franchise in de maak en komt er een serie rondom God of War.

▼ Volgende artikel
Verwacht geen nieuwe Wolverine-beelden in de State of Play vanavond
Huis

Verwacht geen nieuwe Wolverine-beelden in de State of Play vanavond

In de State of Play-presentatie die vanavond wordt uitgezonden zullen zeer waarschijnlijk geen nieuwe beelden zitten van het langverwachte spel Marvel's Wolverine.

Ontwikkelaar Insomniac Games gaf vorig jaar al aan dat het pas aankomend voorjaar meer uit de doeken zou doen over Wolverine. Toen eerder deze week de nieuwe State of Play werd aangekondigd, hoopten veel fans echter dat de ontwikkelaar zijn plannen gewijzigd had en toch wat meer van de nieuwe Marvel-game zou tonen.

Dat lijkt echter zeer onwaarschijnlijk. Een fan vroeg deze week op social media aan Insomniac Games wanneer er meer info over de game zal verschijnen, waarop Insomniac wederom antwoordde met "lente 2026". Dat maakt het dus zo goed als bevestigd dat de game vanavond tijdens de State of Play niet getoond gaat worden.

View post on X

Over Marvel's Wolverine

Insomniac Games, de ontwikkelaar van de moderne Spider-Man-spellen, werkt al een aantal jaar aan Wolverine, een game rondom de Marvel-anti-held. Hoewel vroege beelden van de game al geruime tijd op internet stonden, werd afgelopen najaar de eerste volledige trailer van het spel getoond. Die is hieronder nog eens te zien.

Wolverine - oftewel Logan - zal gespeeld worden door Liam McIntyre, die eerder onder andere in Spartacus speelde. De game doet diverse exotische locaties aan, waaronder Japan en Canada, en uit de eerste beelden blijkt dat er veel geweld en bloed in de game zit. Wolverine maakt daarbij logischerwijs gebruik van de iconische messen die uit zijn handen komen.

Watch on YouTube

De aankomende State of Play

Zoals gezegd werd eerder deze week de nieuwe State of Play aangekondigd, die vanavond om 23:00 uur wordt uitgezonden. De livestream kan dan hier bekeken worden.

Op PlayStation Blog schrijft Sony dat de presentatie meer dan zestig minuten beslaat en "nieuws, gameplay-updates en aankondigingen van gamestudio's verspreid over de wereld" bevat voor aankomende PlayStation 5-games. Daarbij zullen er zowel games van PlayStation Studios zelf als andere bedrijven de revue passeren.

Sony brengt dit jaar in ieder geval Saros, Marathon en Marvel's Wolverine uit. Van die laatste game weten we nu dus dat hij waarschijnlijk niet getoond gaat worden. Verder werd vorige week een nieuwe Horizon-game met een focus op multiplayergameplay aangekondigd, genaamd Horizon Hunters Gathering. We weten ook dat The Last of Us-ontwikkelaar Naughty Dog aan hun nieuwe game Intergalactic: The Heretic Prophet werkt, en volgens geruchten wordt er bij PlayStation Studios ook een nieuwe God of War-game ontwikkeld met metroidvania-elementen.