Betere overdracht
Windows: hoe Microsoft het IP-verkeer sneller maakt
Microsoft heeft met de Anniversary Update voor Windows 10 en Windows Server 2016 zonder veel tamtam meteen vijf nieuwe features in de netwerkstack geïmplementeerd. Ze dienen allemaal om nog net iets meer uit je internetverbinding te persen.
Microsofts updates voor de jongste besturingssystemen Windows 10 en Windows Server 2016 voegen allerlei verfijningen toe waarover de community zijn zegje al uitgebreid gedaan heeft. Minder bekend is dat de updates ook gevolgen hebben voor de netwerkperformance.
Het betreft vijf nieuwe functies voor de TCP-stack (Transmission Control Protocol): TCP Fast Open, Initial Congestion Windows 10, TCP Recent ACKnowledgment, Tail Loss Probe und TCP LEDBAT.
Alle vijf verbeteren ze het gedrag bij het opvragen van internetdata door de latentie te verkorten – oftewel de tijd tussen het activeren van een proces tot het uitvoeren van het gewenste effect. Interessant is dat het bij drie functies om goedgekeurde RFC-specificaties gaat, maar dat TCPRecent ACKnowledgement en Tail Loss Probe (TLP) nog experimentele concepten zijn.
Kortere latency
Browsers moeten voor het laden van een website veel TCP-verbindingen opbouwen. Voor elke afzonderlijke verbinding is een driewegs-handshake nodig (zie de afbeelding rechtsboven op de volgende pagina). Bij normale TCP-stacks worden de nuttige gegevens pas na de handshake verstuurd. Bij één afzonderlijke TCP-overdracht vormt dat niet zo'n probleem. Je hebt dan nog steeds het gevoel dat de overdracht vrijwel direct van start gaat. Bij veel websites stapelen de vele afzonderlijke latency's zich echter op, zodat je het effect wel gaat merken: de pagina wordt langzamer opgebouwd.
De latentie bedraagt voor elke traditionele TCP-verbinding 1,5 RTT's (Round Trip Time). RTT is een relatieve waarde die afhankelijk is van de afstand tussen de client en de server waarop het benodigde page-element staat. Je kunt die waarde bijvoorbeeld meten met het ping-commando – daarmee wordt aangegeven hoeveel tijd er zit tussen het moment dat de ping wordt verzonden en het antwoord dat van de gepingde server afkomt. Met een breedbandaansluiting moet je een nabijgelegen server in 40 à 50 ms kunnen bereiken, met een glasvezelaansluiting in zo'n 20 ms. Servers op grotere afstand antwoorden binnen 100 (VS) tot 300 ms (Azië).
Met TCP Fast Open kun je driewegshandshakes voorkomen die herhaaldelijk naar dezelfde server worden gestuurd. Daarvoor moet een server na de eerste keer verbinding te hebben gemaakt een cryptografisch veilige (d.w.z. zo min mogelijk voorspelbare) cookie naar de client sturen (TCP Fast Open Cookie). Die dient voor clients als sleutel om latere TCP-initialisaties met dezelfde server te versnellen: ze moeten het dan met het SYN-pakket meesturen. Een server die een geldige cookie krijgt, wacht dus niet eerst de SYN-ACK-afhandeling af, maar maakt gebruik van de reeds opgebouwde TCPverbinding. Op die manier kunnen nuttige data meteen worden verzonden, hetgeen 1 RTT bespaart. Cookies worden periodiek om de zoveel seconden of minuten opnieuw gemaakt. De oudere worden dan ongeldig, waardoor replay-aanvallen door middel van onderschepte cookies moeilijker worden.
Extra gebruikersdata zoals cookies worden in principe in SYN-, SYN-ACK- en ACK-pakketten verstuurd. Een typisch