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 Question & Answer-session 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äsaren N. Hinkle ställer följande fråga om Windows Internet Check och autentiseringsprocessen:
I Windows 7 visas ikonen för meddelande om nätverksnamn för meddelandefältet om det inte finns någon internetåtkomst , och felikonen går bort när det finns en lyckad anslutning till internet . Ibland, om WiFi-anslutningen kräver ett autentiseringssteg i webbläsaren, som på många gästnätverk på hotell eller universitet, visas följande popup-bubbla och säger så mycket:
Hur vet Windows om den har en framgångsrik internetanslutning eller ej??
Förmodligen kontrollerar det någon online-Microsoft-tjänst för att se om 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 använda tjänsterna dokumenteras . Kan någon förklara hur det här fungerar?
Sådana kontroller är en av de många saker som 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 huruvida vi behöver logga in på en Wi-Fi-autentiseringsportal eller inte?
Svaret
SuperUser-bidragsgivaren Tobias Plutat erbjuder viss inblick i processen:
Efter lite 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 anslutningstester som i sin tur används av nätverkssymbolen. Testet för internetanslutning är enkelt:
- NCSI försöker ladda en specifik sida via HTTP (mer exakt: ett textdokument) och testa om det kan hämtas.
- 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 varken lösa domänen som testfilen är värd för, och även om den kunde det inte skulle nå den aktuella 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:
- En begäran om DNS-namnupplösning av
dns.msftncsi.com
- En HTTP-begäran om
http://www.msftncsi.com/ncsi.txt
returnerar 200 OK och textenMicrosoft NCSI
Det här kan inaktiveras med en registerinställning. Om du ställer in:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NlaSvc \ Parametrar \ Internet \ EnableActiveProbing
till
0
, Windows testar inte längre för internetanslutning.Apple gör någonting mycket liknande i IOS för att upptäcka internetanslutning och möjliga hotell "inloggnings" wifi-sidor, etc..
Medan hela processen är vanligtvis 100% transparent för slutanvändare, ibland 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-beskrivet 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.