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
Productiever met de muis: zo werk je een stuk efficiënter
© tippapatt | stock.adobe.com
Huis

Productiever met de muis: zo werk je een stuk efficiënter

Efficiënt werken draait niet alleen om software. Soms zit de grootste winst in iets eenvoudigs, zoals hoe je de muis gebruikt. De Windows-muis zit vol slimme functies die de meeste gebruikers nooit opmerken: automatisch scrollen, vensters in lay-outs plaatsen, snel bestanden selecteren, acties aan muisknoppen koppelen…

 De middelste muisklik (scrollwieltje-klik) is een onderschatte snelkoppeling. Klik met het scrollwieltje op een app die vastgemaakt is aan de taakbalk en er wordt meteen een nieuw venster van die app geopend. Handig als bijvoorbeeld Word al actief is en je snel een tweede leeg document wilt openen. Ook in Windows Verkenner werkt dit trucje. Klik met het scrollwieltje op een map en hij opent in een nieuw tabblad. Een tabblad sluiten gaat al even eenvoudig. Klik met het scrollwieltje op het tabblad van Verkenner of de webbrowser en het verdwijnt meteen. Kortom, de scrollwieltje-klik is de snelste manier om tabbladen te openen en te sluiten.

Je kunt met rechtsklikken een map in een nieuw tabblad openen, maar nog sneller gaat het met de scrollwieltje-klik.

Automatisch scrollen

Wist je dat je helemaal niet hoeft te blijven draaien aan het scrollwieltje om door lange webpagina’s of documenten te gaan? Klik ergens op de pagina met het scrollwieltje (middelste muisknop). Er verschijnt een rond pictogram bij de cursor: automatisch scrollen is actief . Beweeg nu de muis lichtjes omhoog of omlaag. De pagina begint automatisch te scrollen. Hoe verder je de cursor van het pictogram af beweegt, hoe sneller de pagina scrollt. Breng je de cursor terug naar het midden, dan vertraagt het scrollen of stopt het helemaal. Ideaal voor lange artikelen, pdf’s of Word-documenten. Als je klaar bent, klik je nogmaals op het scrollwieltje om automatisch scrollen uit te schakelen.

De nieuwe cursor geeft aan dat je automatisch horizontaal en verticaal kunt scrollen.
Muisknoppen aanpassen met XMBC

Heb je jezelf een high-end muis cadeau gedaan, dan krijg je daar meestal bijbehorende software bij waarmee je knoppen en snelkoppelingen kunt configureren. Daarmee kun je de productiviteit van de muis enorm verhogen. Maar ook met een gewone muis kun je verrassend veel aanpassen dankzij X-Mouse Button Control (XMBC, www.kwikr.nl/xmbc). De freewaretool werkt met profielen per programma, zodat je de standaard muisbediening niet verandert. X-Mouse Button Control is een klein maar bijzonder krachtig Windows-programma waarmee je muisknoppen kunt herprogrammeren. Vooral handig voor wie veel aan de pc werkt, games speelt of specifieke software gebruikt met terugkerende handelingen. Enkele voorbeelden van wat je met XMBC kunt doen: een muisklik instellen om met één handeling tekst te kopiëren of plakken; extra muisknoppen simuleren (ideaal voor gamers die geen duimknoppen hebben); een schermafdruk maken via een muisknop; of meteen een screenshot-tool zoals het Knipprogramma starten. De tool is gratis en reclamevrij. Enig minpunt: de interface oogt wat technisch en kan beginners even afschrikken.

Met XMBC kun je toepassingen koppelen aan muisknoppen.

Snap Layouts

In Windows 11 kun je vensters moeiteloos in een vaste indeling op het scherm plaatsen dankzij Snap Layouts. De officiële Nederlandstalige term is Uitgelijnde vensters, maar vrijwel iedereen spreekt van Snap Layouts. In plaats van zelf vensters te verslepen en te schalen, kies je een voorgedefinieerde lay-out: twee vensters naast elkaar, drie of vier vensters in een raster, een asymmetrische verdeling, zoals 1/3 + 2/3 van het scherm. Open een venster dat je wilt plaatsen. Beweeg de muisaanwijzer boven de knop Maximaliseren. Er verschijnt een menu met verschillende lay-outs. Je kunt ook de toetscombinatie Windows-toets+Z gebruiken. Klik op een lay-outzone en het venster wordt daar automatisch in geplaatst. Windows toont vervolgens de andere open vensters. Klik om de resterende zones te vullen. Extra handig is ook de volgende methode. Sleep een venster langzaam naar het midden bovenaan het scherm. Hierdoor verschijnt een raster met alle beschikbare lay-outs. Laat los om het venster vast te klikken. Het is mogelijk om de instellingen aan te passen via Instellingen / Systeem / Multitasking en dan kies je Uitgelijnde vensters. Hier kun je onder andere bepalen of Windows suggesties toont voor het vullen van de andere zones.

Selecteer hoe je de vensters wilt uitlijnen.

Horizontaal scrollen

Werk je in een grote spreadsheet, bewerk je een brede afbeelding of wil je in een video-editor door de tijdlijn bewegen? Dan hoef je niet te mikken op de kleine schuifbalk onderaan het scherm, je kunt ook horizontaal scrollen met het scrollwieltje. Om horizontaal te scrollen met een muis en het scrollwieltje, houd de Shift-toets ingedrukt en scrol daarna omhoog of omlaag met het scrollwieltje. In sommige programma’s, zoals Microsoft Excel, is de sneltoets Ctrl+Shift in combinatie met het scrollwieltje. Scrol je naar beneden, dan verschuift de inhoud van links naar rechts. Scrol je naar boven, dan gaat de inhoud van rechts naar links. Laat je de Shift-toets los, dan werkt het scrollwieltje weer gewoon verticaal.

Met Ctrl+Shift kun je in Excel horizontaal scrollen met het muiswieltje.

Slepen met de rechtermuisknop

We slepen bestanden en mappen bijna altijd met de linkermuisknop om ze te verplaatsen. Maar probeer het eens met de rechtermuisknop, dat geeft je veel meer controle. Klik met de rechtermuisknop op een bestand of map en sleep het naar de gewenste locatie. Wanneer je de muisknop loslaat, verschijnt een snelmenu waarin je kunt kiezen: Hierheen kopiëren, Hierheen verplaatsen, Hier snelkoppelingen maken. Heb je een compressietool geïnstalleerd, zoals 7-Zip of WinRAR, dan verschijnen die opties ook in het menu. Je kunt bovendien meerdere items selecteren en die tegelijk met de rechtermuisknop slepen. Ideaal om in één keer snelkoppelingen op het bureaublad te plaatsen.

Door met rechts te slepen, opent een snelmenu.

Meteen het volledige contextmenu

In Windows 11 is het contextmenu (het menu dat verschijnt bij een rechtermuisklik) vereenvoudigd. Pictogrammen voor Knippen, Kopiëren, Plakken, Naam wijzigen en Verwijderen staan bovenaan en het menu zelf is korter. Dat oogt overzichtelijker, maar soms heb je juist het klassieke volledige contextmenu nodig. Je kunt onderaan op Meer opties weergeven klikken, maar dat kost telkens een extra handeling. Ben je het beu om telkens die extra klik te moeten maken? Houd dan gewoon de Shift-toets ingedrukt en klik met de rechtermuisknop op de map of het bestand. Hierdoor opent direct het volledige klassieke contextmenu waar je toegang hebt tot alle rechtermuisknopopties van Windows.

Links het gewone contextuele menu van Windows 11, rechts het volledige menu.

Vensters maximaliseren en verkleinen

Dubbelklik op de titelbalk bovenaan een venster om een venster te maximaliseren. Staat het venster al gemaximaliseerd? Dubbelklik opnieuw op de titelbalk en het venster keert terug naar zijn vorige formaat. Dit werkt een stuk sneller dan mikken op de kleine maximaliseer-/herstelknop. Je kunt ook dubbelklikken op het pictogram van het venster in de linkerbovenhoek om dat venster meteen te sluiten. Bij sommige moderne Windows 11-apps staat er géén pictogram in de titelbalk en werkt deze truc dus niet. Voorbeelden waarbij het wel werkt: Kladblok, Taakbeheer, register-editor en veel traditionele desktopsoftware. 

Sneller zoomen

Een van de meest onderbenutte functies van de muis is de mogelijkheid om in en uit te zoomen met behulp van het scrollwieltje. Houd de Ctrl-toets ingedrukt en rol met het wieltje omhoog om in te zoomen, rol omlaag om uit te zoomen. Dit werkt bijna overal: op webpagina’s, Word-documenten, Excel-sheets, pdf-bestanden, fototoepassingen en grafische software, Windows Verkenner … Het voordeel is dat je hand op het toetsenbord én op de muis blijft, zonder de workflow te onderbreken. In sommige browsers kun je met Ctrl+0 (nul) altijd terugkeren naar 100 procent zoom. In Microsoft Word werkt Ctrl+muiswieltje zelfs terwijl je een selectie maakt in de statusbalk onderaan, waardoor je extra controle krijgt over de weergave.

Via Ctrl+muiswieltje kun je traploos inzoomen.

Slimmer selecteren

Meerdere bestanden selecteren hoeft geen gedoe te zijn. Windows biedt twee handige methoden. De eerste manier (Shift+klik) gebruik je om een aaneengesloten reeks items te selecteren. Klik op het eerste bestand in de reeks, houd de Shift-toets ingedrukt en klik op het laatste bestand. Alles daartussen wordt automatisch geselecteerd. De tweede manier (Ctrl+klik) dient om meerdere niet-aansluitende bestanden te selecteren. Houd de Ctrl-toets ingedrukt en klik op elk bestand dat je wilt toevoegen. Als je per ongeluk het verkeerde bestand hebt geselecteerd, klik je er nogmaals op terwijl je de Ctrl-toets nog steeds ingedrukt houdt. Vaak is het handig om deze twee methoden te combineren. Veronderstel dat je eerst met Shift-klik een aansluitende reeks bestanden hebt geselecteerd vanaf nummer 7 tot en met 63, maar je wilt bestand 52, 57 en 60 niet in de selectie. Dan kun je met Ctrl-klik deze drie items uit de selectie verwijderen.

Met Shift-klik selecteer je een aaneengesloten reeks bestanden.
▼ Volgende artikel
Pokémon FireRed en LeafGreen komen op 27 februari naar Switch eShop
Huis

Pokémon FireRed en LeafGreen komen op 27 februari naar Switch eShop

Er gingen onlangs al geruchten over, maar nu is het zeker: vanaf 27 februari zijn Pokémon FireRed Version en Pokémon LeafGreen Version speelbaar op Nintendo Switch en Nintendo Switch 2 via de eShop.

Na eerdere geruchten zijn beide games nu inmiddels op de Nintendo eShop verschenen: hier en hier. Daarbij kost elk spel 20 euro.

De ports zijn nu officieel aangekondigd door Nintendo en The Pokémon Company op sociale media, met een trailer die hieronder ook te bekijken is. Op 27 februari is het Pokémon Day, een jaarlijkse viering van alles rondom Pokémon. Het is dan ook logisch dat de Switch-versies van de games op die dag worden uitgebracht.

Watch on YouTube

Volgens de beschrijving op de eShop wordt lokale draadloze multiplayer ondersteund, en zal Pokémon Home op een later moment ook worden ondersteund. Overigens zullen diverse regio's unieke taalversies ontvangen, net als bij het origineel. Dat betekent bijvoorbeeld dat mensen die het spel in de Verenigde Staten kopen, alleen een Engelse taal kunnen selecteren in de games.

Er gingen eerder al geruchten dat de Pokémon-games opnieuw uitgebracht zouden worden om de franchise te vieren. De Pokémon-reeks bestaat dit jaar namelijk dertig jaar.

View post on Instagram
 

Over Pokémon FireRed en LeafGreen

Pokémon Red en Pokémon Blue waren de eerste Pokémon-games die in 1996 verschenen, terwijl FireRed Version en LeafGreen Version uit 2004 afkomstige Game Boy Advance-remakes zijn van de spellen.

In deze Pokémon-games verkennen spelers de originele Kanto-regio, waar men wilde pokémon tegenkomt die men kan vangen, om ze vervolgens in te zetten in gevechten tegen andere pokémon. Spelers nemen het namelijk op tegen ervaren Gym Leaders en proberen de beste pokémontrainer ooit te worden. De FireRed- en LeafGreen-versies van de game voegen ook de nieuwe regio Sevii Islands toe.