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
AOC brengt 260 Hz en G-SYNC-compatibiliteit naar betaalbare 24- en 27-inch schermen
© AGON by AOC
Huis

AOC brengt 260 Hz en G-SYNC-compatibiliteit naar betaalbare 24- en 27-inch schermen

AGON by AOC breidt zijn G4-serie uit met twee snelle instapmonitors voor competitieve games: de AOC GAMING 24G4ZR (23,8 inch) en 27G4ZR (27 inch). Beide modellen combineren een Fast IPS-paneel met een verversingssnelheid tot 260 Hz (240 Hz standaard) en een lage bewegingsonscherpte.

De nieuwe G4ZR-modellen richten zich op gamers die vooral snelheid zoeken, maar tegelijkertijd op hun budget willen (of moeten) letten. AOC zet de monitors standaard op 240 Hz en laat je optioneel naar 260 Hz overklokken via het OSD-menu of de G-Menu-software. De responstijden worden opgegeven als 1 ms GtG en 0,3 ms MPRT, waarbij die laatste waarde vooral iets zegt over bewegingsscherpte met backlight-strobing ingeschakeld.

Voor vloeiend beeld ondersteunen de 24G4ZR en 27G4ZR Adaptive-Sync en zijn ze volgens AOC NVIDIA G-SYNC-compatibel. Ook is er MBR Sync, waarmee variabele verversingssnelheid en backlight-strobing tegelijk gebruikt kunnen worden. Dat moet tearing en haperingen tegengaan, terwijl snelle bewegingen scherper blijven.

©AGON by AOC

Beeldkwaliteit, standaard en aansluitingen

Qua beeldkwaliteit kiest AOC voor Fast IPS, wat doorgaans snellere pixelovergangen combineert met IPS-eigenschappen zoals brede kijkhoeken. De 27-inch variant haalt volgens AOC 121,5% sRGB en 92,3% DCI-P3; de 23,8-inch versie 111,7% sRGB en 87,7% DCI-P3. De helderheid is 300 cd/m² en de kijkhoeken zijn 178 graden, zodat kleuren ook bij een schuine kijkpositie redelijk consistent blijven.

De ZR-modellen krijgen een volledig verstelbare standaard met 130 mm hoogteverstelling, plus kantelen, draaien en pivot. Handig als je je schermhoogte en -hoek precies wilt afstellen voor lange sessies. Daarnaast zijn de monitoren VESA 100x100-compatibel voor een arm- of wandmontage. Aansluiten kan via 2x HDMI 2.0 en 1x DisplayPort 1.4. Verder noemt AOC flicker-free en een hardwarematige low blue light-stand om vermoeide ogen te beperken.

©AGON by AOC

Naast de twee nieuwe modellen komen later ook varianten met een eenvoudiger voet die alleen kan kantelen: de 24G4ZRE en 27G4ZRE. Die gebruiken volgens AOC hetzelfde paneel en dezelfde snelheidsspecificaties, maar zijn bedoeld voor wie geen uitgebreide ergonomie nodig heeft.

Beschikbaarheid en prijzen

De AOC GAMING 24G4ZR, 27G4ZR, 24G4ZRE en 27G4ZRE hebben de volgende adviesprijzen: de 24G4ZR kost 149 euro en de 27G4ZR 169 euro. De tilt-only varianten zijn goedkoper: 129 euro voor de 24G4ZRE en 149 euro voor de 27G4ZRE.

Wat betekent MPRT?

MPRT staat voor 'Moving Picture Response Time' en gaat over bewegingsscherpte: hoe scherp een object blijft als het snel over het scherm beweegt. Fabrikanten halen lage MPRT-waardes vaak met backlight-strobing (de achtergrondverlichting knippert heel kort), wat bewegingen scherper kan maken. In ruil daarvoor kan het beeld wat donkerder worden en werkt het niet altijd even prettig voor iedereen.

▼ Volgende artikel
Gerucht: Nexon werkt aan Starcraft-shooter voor Blizzard
Huis

Gerucht: Nexon werkt aan Starcraft-shooter voor Blizzard

Het Zuid-Koreaanse zou een shooter gebaseerd op Starcraft in ontwikkeling hebben voor IP-eigenaar Blizzard.

Dat claimt The Korean Economic Daily. Een team binnen Nexon dat gespecialiseerd is in shooters zou zich op dit moment volledig richten op de nog onaangekondigde game. De ontwikkeling zou nog niet lang geleden zijn gestart, en dus zou de shooter nog lang op zich laten wachten.

Verdere details zijn er nog niet, behalve dat Choi Jun-ho ook bij het project betrokken zou zijn. Hij maakte eerder de populaire Shinppu-mapmod voor Starcraft.

Starcraft

Er gaan al langer geruchten over een shooter gebaseerd op Starcraft. Vorig jaar meldde Bloomberg-journalist Jason Schreier al in zijn boek 'Play Nice: The Rise, Fall and Future of Blizzard Entertainment' dat Blizzard aan een shooter zou werken. Volgens Schreier is de shooter van Nexon echter niet gerelateerd aan de shooter van Blizzard - het zouden om twee afzonderlijke projecten gaan.

De Starcraft-reeks bestaat uit real-time strategygames. De eerste verscheen in 1998, en een vervolg kwam in 2010 uit. Blizzard heeft al vaker geprobeerd shooters gebaseerd op de Starcraft-franchise te maken, maar die werden vooralsnog altijd geannuleerd.

Mogelijke onthulling op Blizzcon

Voor het eerst in enkele jaren organiseert Blizzard op 12 en 13 december de Amerikaanse beurs Blizzcon, waar alles rondom de uitgever wordt gevierd. Het is mogelijk dat één van de hierboven genoemde shooters daar wordt onthuld.