11Aug

Hur bekräftar Windows Wi-Fi-åtkomst och om hot spot-autentisering är nödvändig?

Windows är ganska skicklig att berätta om du har en fungerande Internetanslutning, men hur exakt gör det så?Att gräva in hur Windows hanterar problemet ger insikt i Windows-anslutningsmeddelanden.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-drive-gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare N. Hinkle ställer följande fråga om Windows-internetkontroll och autentiseringsprocessen:

I Windows 7 visar ikonen för meddelandefältet en felindikator om det inte finns någon internetåtkomst och felikonen går bortEn gång finns det en framgångsrik anslutning till internet. Ibland, om WiFi-anslutningen kräver ett autentiseringssteg i webbläsaren, som på många gästnät i hotell eller universitet, visas följande popup-bubbla och säger så mycket:

Hur vet Windows om den har ett framgångsrikt internetförbindelse?

Förmodligen kontrollerar det någon online Microsoft-tjänst för att se huruvida den har en lyckad anslutning, omdirigeras till någon annan sida eller får inget svar alls, men jag har inte sett någonstans att denna process eller de tjänster som används ärdokumenteras. Kan någon förklara hur det fungerar?

Sådana kontroller är en av de många saker vi tar för givet när vi använder ett modernt operativsystem, men även de mest använda för givna delarna av användarupplevelsen har en underliggande mekanism. Hur berättar Windows om det finns en internetanslutning och om vi behöver logga in på en Wi-Fi-autentiseringsportal eller ej?

Svaret

SuperUser-bidragsgivaren Tobias Plutat ger en viss inblick i processen:

Efter en del grävning( det stora antalet nätverks- och internetrelaterade tjänster i Windows är förvånande) tror jag att jag hittade den. Windows Vista och 7 har en mängd olika nätverksmedvetenhetsfunktioner, varav en är nätverksanslutningsstatusindikatorn som utför anslutningstest som i sin tur används av nätverkssymbolen. Testet för internetanslutning är enkelt:

  1. NCSI försöker ladda en specifik sida via HTTP( mer exakt: ett textdokument) och testa om det kan hämtas.
  2. Om det inte lyckas, rapporterar Windows "Ingen Internetåtkomst".

Mekanismen kontrollerar också om domänen som dokumentet är värd för löses till den förväntade IP-adressen. Så det kan också utgå från korrekt internetåtkomst om det här testet är framgångsrikt men dokumentet kan inte hämtas.

Anledningen till att den rapporterar "No Internet Access" när du inte har autentiserat på en Hotspot ligger ändå i hur Hotspot fungerar. Det blockerar alla portar förutom 80 och 443( för HTTP respektive HTTPS), som omdirigeras till Hotspots autentiseringsserver och kan störa DNS-förfrågningar på ett eller annat sätt. Således kan NCSI inte lösa domänen som testfilen är värd för, och även om den skulle kunna det, skulle den inte nå den faktiska filen eftersom HTTP-trafiken omdirigeras till autentiseringsservern.

En annan bidragsgivare, Jeff Atwood, lyfter fram några viktiga citat från dokumentet Tobias referenser:

Här är detaljerna i anslutningsstatusbestämningsprocessen:

Följande lista beskriver hur NCSI kan kommunicera med en webbplats för att avgöra om ett nätverk har internetanslutning:

  1. En begäran om DNS-namnupplösning av dns.msftncsi.com
  2. En HTTP-begäran om http: //www.msftncsi.com/ ncsi.txt returnerar 200 OK och texten Microsoft NCSI

Det här kan inaktiveras med en registerinställning. Om du ställer in:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NlaSvc \ Parameters \ Internet \ EnableActiveProbing

till 0, kommer Windows inte längre att sondra för internetanslutning.

Apple gör något som är väldigt lika i iOS för att upptäcka internetanslutning och möjliga hotell "inloggnings" wifi-sidor etc.

Även om hela processen är vanligtvis 100% transparent för slutanvändare, så småningom efter autentisering via en Wi-Fi hotspots webbportal, kommer du att hitta dig själv och titta på det faktiska innehållet i NSCSI.txt. Hur du slutade titta på ett icke-beskrivande textdokument i stället för den webbsida du försökte ladda är inte längre ett mysterium när du kombinerat med tidigare svar på ämnet.

Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.