WireGuard får en inbyggd port till Windows-kärnan

Om du kör Windows kommer du att bli glad att höra att nästa generations VPN-tunnlingsprotokoll, WireGuard, får en inbyggd Windows-kärnport.

Om du ofta använder VPN (virtuella privata nätverk) kommer du att bli glada över att höra om ett nytt projekt som heter WireGuardNT. För de som inte känner till är WireGuard ett relativt nytt VPN-tunnlingsprotokoll som använder moderna kryptografistandarder, har en säker kodbas och har bra prestanda. Den är integrerad i Linux-kärna med version 5.6, men hittills har det bara någonsin funnits en implementering av användarutrymme på Windows. Det är där WireGuardNT kommer in: Det är en inbyggd port av WireGuard till Windows-kärnan, och den lovar att göra saker mycket snabbare.

WireGuard på Windows använder för närvarande en delad Go-kodbas med en TUN-drivrutin som kallas Wintun. Det fungerar i användarutrymmet och som meddelande uttrycker det, det "herdar paket till och från Wintun-gränssnittet". Med WireGuardNT implementeras hela protokollet direkt i Windows nätverksstack, precis som på Linux.

Medan prestandan för WireGuard på Windows redan är ganska bra, är planen att den ska bli bättre med WireGuardNT. Detta projekt är dock fortfarande i ett tidigt skede, men även innan ytterligare justeringar och optimeringar görs, är det fortfarande snabbare genom att vara inbyggt i kärnan. Detta kan delvis tillskrivas den minskade omkostnaden och latensen från alla kontextväxlar som sker med den gamla wireguard-go/Wintun-implementeringen.

Men hur mycket snabbare är den nya WireGuardNT-implementeringen jämfört med den gamla versionen av användarutrymmet? Över en trådbunden anslutning ser utvecklarna hastigheter så snabba som 7,5 Gbps; Utvecklarna har också märkt betydande prestandaförbättringar över Wi-Fi. Till exempel fick en testare med ett Intel AC9560 WiFi-kort ~600 Mbps utan WireGuard, ~95 Mbps med den gamla versionen av användarutrymmet över WiFi och ~600 Mbps med WireGuardNT-implementeringen över WiFi. I grund och botten har den trådlösa prestandaträffen från den gamla versionen av användarutrymmet eliminerats tack vare den nya inbyggda kärnporten, och den trådbundna prestandan har uppgraderats väsentligt.

Projektet är som sagt fortfarande i ett tidigt skede. För att göra det klart för release finns det tre faser i projektet i version 0.4.z av WireGuard för Windows-klienten. Det första steget, som vi befinner oss i just nu, ser WireGuardNT gömt bakom registerratten 'ExperimentalKernelDriver', så om du inte slår på den kommer den inte att aktiveras. Den andra fasen kommer att se den inbyggda kärnimplementeringen aktiverad som standard. Den tredje och sista fasen kommer att ta bort den gamla implementeringen av wireguard-go/Wintun userspace från Windows-klienten, även om den fortfarande kommer att underhållas för att stödja andra appar och användningar.

Precis som fallet är med experimentella utgåvor som denna, hoppas utvecklaren Jason Donenfeld att folk ska prova det för att hitta buggar och lämna feedback. WireGuardNT är en del av WireGuard-klienten för Windows nu, och den finns i version 0.4. Du kan ladda ner den här, eller så kan du läsa mer om projektet här.

En tidigare version av den här artikeln angav att nätverksprestandavinsterna endast var betydande över en trådlös anslutning.