Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajedničkom pogonu Q & A web stranica.
Pitanje
Čitač SuperUser N. Hinkle postavlja sljedeće pitanje o postupku provjere interneta i provjere autentičnosti sustava Windows:
In Windows 7, the notification area networking icon will show an error indicator if there is no internet access
How does Windows know whether or not it has a successful internet connection?
Presumably it is checking some online Microsoft service to see whether it has a successful connection, gets redirected to some other page, or doesn’t get any response at all, but I haven’t seen anywhere that this process or the services used are documented. Can anybody explain how this works?
Takve provjere jedna su od mnogobrojnih stvari koje se uzimaju zdravo za gotovo kada koristimo moderan operativni sustav, no čak i najzastupljeniji elementi korisničkog iskustva imaju temeljni mehanizam. Kako nam Windows kaže ako postoji internetska veza i hoćemo li se morati prijaviti na portal za provjeru autentičnosti za Wi-Fi?
Odgovor
Tobias Plutat, suradnik SuperUser-a, pruža uvid u proces:
After some digging (the sheer number of network and Internet related services in Windows is astonishing), I think I found it. Windows Vista and 7 have a variety of Network Awareness features, one of which is the Network Connectivity Status Indicator that performs connectivity tests that in turn are used by the network systray icon. The test for internet connectivity is simple:
- NCSI tries to load a specific page via HTTP (more precisely: a text document) and tests whether it can be retrieved.
- If that is not successful, Windows reports “No Internet access”.
The mechanism also checks whether the domain the document is hosted on resolves to the expected IP address. So, it might also assume proper internet access if this test is successful but the document can’t be retrieved.
The reason it reports “No Internet Access” when you haven’t authenticated on a Hotspot yet lies in the way a Hotspot works. It blocks all ports besides 80 and 443 (for HTTP and HTTPS, respectively), which get redirected to the Hotspot’s authentication server and might mess with DNS requests in one way or another. Thus, NCSI can neither resolve the domain its test file is hosted on, and even if it could it wouldn’t reach the actual file because HTTP traffic is redirected to the Authentication server.
Još jedan suradnik, Jeff Atwood, ističe neke ključne citate iz dokumenta Tobiasove reference:
Here are the details of the connection status determination process:
The following list describes how NCSI might communicate with a Web site to determine whether a network has Internet connectivity:
-
A request for DNS name resolution of
dns.msftncsi.com
- HTTP zahtjev za
https://www.msftncsi.com/ncsi.txt
vratiti 200 OK i tekst
Microsoft NCSI
To se može onemogućiti postavkom registra. Ako postavite:
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services NlaSvc Parametri Internet EnableActiveProbing
do
0
Windows više neće ispitivati vezu s internetom.
Apple čini nešto vrlo slično u iOS-u radi otkrivanja internetske veze i moguće hotelske "login" wifi stranice itd.
Iako je ovaj cijeli proces obično 100% transparentan krajnjim korisnicima, povremeno nakon provjere autentičnosti putem web stranice Wi-Fi hot-spotova, naći ćete da gledate u stvarni sadržaj NSCSI.txt. Kako ste završili s gledanjem neodgovarajućeg tekstualnog dokumenta umjesto web stranice koju pokušavate učitati, više nije zagonetka kada je povezano s prethodnim odgovorima na tu temu.
Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.