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
Waar voor je geld: 5 robotstofzuigers voor een extra schone vloer
© ID.nl
Huis

Waar voor je geld: 5 robotstofzuigers voor een extra schone vloer

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt of die zijn voorzien van bijzondere eigenschappen. Met een robotstofzuiger wordt de vloer schoongehouden, terwijl je er niet bij hoeft te zijn. En stofzuigen is dan wel het minste dat ze kunnen, want ook dweilen is voor veel modellen geen proleem. We vonden vijf geavanceerde exemplaren.

Philips HomeRun 7000 Series XU7100/01

De Philips HomeRun 7000 Series XU7100/01 is ontworpen om grote ruimtes aan te kunnen. Het apparaat heeft een stofzak van 3 liter en een werktijd tot 180 minuten in de laagste stand. In tegenstelling tot veel kleinere robots is deze HomeRun uitgerust met een stille motor; de opgave van 66 dB maakt hem relatief stil.

Er zit een dweilfunctie in zodat je de robot na het stofzuigen ook direct kunt laten dweilen. Via de app kies je voor een van de modi of plan je een schoonmaakprogramma in. De robot kan zichzelf navigeren, obstakels omzeilen en keert na gebruik terug naar het laadstation. Omdat de opvangbak groot is hoef je niet vaak te legen en dankzij de Li‑ion‑accu is hij geschikt voor grotere woningen. Het apparaat is van recente datum en daarom nog volop verkrijgbaar.

Dreame L10s Pro Ultra Heat

Deze robot combineert een groot stofreservoir van 3,2 liter met een lange werktijd van ongeveer 220 minuten. Dankzij de geïntegreerde dweilfunctie verwijdert hij niet alleen stof maar kan hij ook nat reinigen. De L10s Pro Ultra Heat gebruikt een zak in het basisstation, waardoor je het reservoir minder vaak hoeft te legen.

De Dreame is voorzien van een Li‑ion‑batterij aanwezig en de robot keert automatisch terug naar het station voor opladen en legen. De sensortechnologie helpt bij het vermijden van obstakels en het nauwkeurig schoonmaken van zowel harde vloeren als tapijt. Dankzij de meegeleverde app stuur je de schoonmaak aan, stel je no‑go‑zones in of plan je een dweilrondje.

Philips HomeRun 3000 Series Aqua XU3100/01

Deze Philips‑robot is bedoeld voor wie minder vaak handmatig wil schoonmaken. Hij beschikt over een gecombineerde stofzuig‑ en dweilfunctie en kan zichzelf legen via het automatische station. Met een gebruiksduur tot 200 minuten in de laagste stand en een geluidsniveau van 66 dB kan hij urenlang zijn werk doen zonder al te veel herrie. De stofcontainer van 35 cl is kleiner dan bij de HomeRun 7000, maar door het automatische leegmechanisme is dat geen probleem.

Je bedient het apparaat via de app en kunt daar zowel een schema programmeren als zones instellen. De Aqua XU3100/01 is een model uit de recente 3000‑serie en doordat hij een mop‑pad heeft kan hij zowel droog als nat reinigen, wat handig is voor harde vloeren zoals tegels en laminaat.

iRobot Roomba Combo j9+

De Roomba Combo j9+ is een model dat je vloeren zowel kan stofzuigen als dweilen. De Combo j9 beschikt over een opvangbak van 31 cl en hij kan zelf zijn inhoud legen in het automatische basisstation dat bij de set hoort. De Li‑ion‑accu zorgt voor een lange gebruiksduur en de robot maakt een routeplanning zodat elke ruimte efficiënt wordt schoongemaakt.

Via de app kun je zones instellen waar de robot niet mag komen en het dweilelement in‑ of uitschakelen. In de basis maakt de Combo j9+ zelfstandig een kaart van je woning en keert terug naar het station wanneer de accu moet opladen of de stofcontainer vol is. De robot is bedoeld voor huishoudens die gemak belangrijk vinden en biedt naast stofzuigen ook een dweilfunctie voor hardere vloeren.

MOVA Tech P50 Ultra

De MOVA Tech P50 Ultra is een forse robotstofzuiger met een basisstation. Het apparaat heeft een stofreservoir van 30 cl en wordt geleverd met een basisstation waarin je het stof eenvoudig kunt verwijderen. De robot produceert een geluidsniveau van 74 dB, iets hoger dan de Philips‑modellen, en weegt inclusief station ruim 13 kg.

Hij kan uiteraard ook automatisch terugkeren naar het station om op te laden of te legen. In de specificaties staat dat de MOVA is voorzien van een Li‑ion‑batterij en dat hij zowel kan stofzuigen als dweilen. De meegeleverde app maakt het mogelijk om routes in te stellen en zones te blokkeren. Met een vermogen van 700 W is hij krachtig genoeg voor tapijten en harde vloeren. Het is geschikt voor mensen die een uitgebreid station met automatische functies willen.

▼ Volgende artikel
Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)
© DC Studio
Huis

Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)

Je hebt net een klein fortuin uitgegeven aan een gloednieuwe 4K- of zelfs 8K-televisie. Je installeert hem, start je favoriete filmklassieker en zakt onderuit op de bank. Maar in plaats van een bioscoopervaring bekruipt je het gevoel dat je naar een goedkope soapserie of een homevideo zit te kijken. De acteurs bewegen vreemd soepel, de actiescènes lijken versneld en de magie is ver te zoeken. Geen zorgen, je televisie is niet stuk. Hij doet eigenlijk iets te goed zijn best.

Dit fenomeen is zo wijdverspreid dat er een officiële term voor is: het 'soap opera effect'. In technische kringen wordt dit ook wel bewegingsinterpolatie of 'motion smoothing' genoemd. Hoewel fabrikanten deze functie met de beste bedoelingen in hun televisies bouwen, is het voor filmfanaten vaak een doorn in het oog. Gelukkig is het eenvoudig op te lossen... als je tenminste weet waar je moet zoeken.

Nooit meer te veel betalen? Check
Kieskeurig.nl/prijsdalers!

Wat is het 'soap opera effect' precies?

Om te begrijpen wat er misgaat, moeten we kijken naar hoe films worden gemaakt. De meeste bioscoopfilms en veel dramaseries worden opgenomen met 24 beelden per seconde. Die snelheid geeft films hun karakteristieke, dromerige uitstraling. Een beetje bewegingsonscherpte hoort daarbij; dat is wat onze hersenen associëren met 'cinema'. Moderne televisies verversen hun beeld echter veel vaker: meestal 60 of zelfs 120 keer per seconde.

Om dat verschil te overbruggen, verzint je slimme televisie er zelf beelden bij. De software kijkt naar beeld A en beeld B, en berekent vervolgens hoe een tussenliggend beeld eruit zou moeten zien. Dit voegt de tv toe aan de stroom. Het resultaat is een supervloeiend beeld waarin elke hapering is gladgestreken.

Voor een voetbalwedstrijd of een live-uitzending is dat geweldig, omdat je de bal en spelers scherper kunt volgen. Maar bij een film zorgt die kunstmatige soepelheid ervoor dat het lijkt alsof je naar een achter de schermen-video zit te kijken, of dus naar een soapserie zoals Goede Tijden, Slechte Tijden, die traditioneel met een hogere beeldsnelheid werd opgenomen. De filmische illusie wordt hierdoor verbroken.

©ER | ID.nl

De winkelmodus is ook een boosdoener

Naast beweging is er nog een reden waarom het beeld er thuis soms onnatuurlijk uitziet: de beeldinstellingen staan nog op standje zonnebank. Veel televisies staan standaard in een modus die 'Levendig' of 'Dynamisch' heet. Deze stand is ontworpen om in een felverlichte winkel de aandacht te trekken met knallende, bijna neon-achtige kleuren en een extreem hoge helderheid. Bovendien is de kleurtemperatuur vaak nogal koel en blauw, omdat dat witter en frisser oogt onder tl-licht. In je sfeervol verlichte woonkamer zorgt dat echter voor een onrustig beeld waarbij huidtinten er onnatuurlijk uitzien en details in felle vlakken verloren gaan.

Hoe krijg je de magie terug?

Het goede nieuws is dat je deze 'verbeteringen' gewoon kunt uitzetten. De snelste manier om van het soap opera effect en de neonkleuren af te komen, is door in het menu van je televisie de beeldmodus te wijzigen. Zoek naar een instelling die Film, Movie, Cinema of Bioscoop heet. In deze modus worden de meeste kunstmatige bewerkingen, zoals bewegingsinterpolatie en overdreven kleurversterking, direct uitgeschakeld of geminimaliseerd. Het beeld wordt misschien iets donkerder en warmer van kleur, maar dat is veel dichter bij wat de regisseur voor ogen had.

Sinds kort hebben veel moderne televisies ook de zogeheten Filmmaker-modus. Dat is de heilige graal voor puristen. Als je deze modus activeert, zet de tv met één druk op de knop alle onnodige nabewerkingen uit en respecteert hij de originele beeldsnelheid, kleuren en beeldverhouding van de film.

Wil je de beeldmodus niet volledig veranderen, maar alleen dat vreemde, soepele effect kwijt? Dan moet je in de geavanceerde instellingen duiken. Elke fabrikant geeft het beestje een andere naam. Bij Samsung zoek je naar Auto Motion Plus of Picture Clarity, bij LG-televisies ga je naar TruMotion, bij Sony naar Motionflow en bij Philips naar Perfect Natural Motion. Door deze functies uit te schakelen of op de laagste stand te zetten, verdwijnt het goedkope video-effect en krijgt je film zijn bioscoopwaardige uitstraling weer terug.