Woher weiß Windows, ob es über einen Internetzugang verfügt oder ob für eine Wi-Fi-Verbindung eine In-Browser-Authentifizierung erforderlich ist?

132

In Windows 7 zeigt das Netzwerksymbol des Benachrichtigungsbereichs eine Fehleranzeige an, wenn kein Internetzugang vorhanden ist WiFi-Fehler, und das Fehlersymbol wird ausgeblendet, sobald eine erfolgreiche Verbindung zum Internet besteht Vernetzung normal. Wenn für die WLAN-Verbindung ein Schritt zur Authentifizierung im Browser erforderlich ist (z. B. in vielen Gastnetzwerken von Hotels oder Universitäten), wird manchmal die folgende Popup-Blase angezeigt. Möglicherweise sind zusätzliche Anmeldeinformationen erforderlich. Klicken Sie auf, um Ihren Browser zu öffnen

Woher weiß Windows, ob eine Internetverbindung besteht oder nicht?
Vermutlich wird ein Microsoft-Onlinedienst überprüft, um festzustellen, ob eine Verbindung hergestellt wurde, ob eine Weiterleitung auf eine andere Seite erfolgt oder ob überhaupt keine Antwort erfolgt. Ich habe jedoch nirgends festgestellt, dass dieser Prozess oder die verwendeten Dienste dokumentiert sind . Kann jemand erklären, wie das funktioniert? Ich würde Antworten vorziehen, die sich auf Fakten beziehen, anstatt nur zu raten, aber wenn Sie eine wirklich gute Vermutung haben, dann versuchen Sie es.

Diese Frage war eine Super User Frage der Woche .
Lesen Sie den Blog-Eintrag vom 16. Mai 2011, um weitere Informationen zu erhalten, oder reichen Sie Ihre eigene Frage der Woche ein.

nhinkle
quelle
1
Wie würde ein Microsoft-Dienst nach dem Aktivierungsschritt im Browser überprüft werden? Oder verstehe ich dich falsch? (+1 übrigens, interessante Frage)
Slhck
@slhck: Das ist der Punkt , der es überprüft: Wenn es den Dienst nicht richtig zugreifen können, aber sein Versuch wird eine Antwort, geht davon aus , dass es möglicherweise ein In-Browser - Schritt sein. Wenn es überhaupt keine Antwort ist alles , nimmt es gibt nur den lokalen Zugriff. Ich bin mir nur nicht sicher, wie genau dieser Prozess funktioniert. Ich habe meine Frage aktualisiert, um sie (hoffentlich) etwas klarer zu gestalten.
nhinkle
@nhinkle Ich habe keinen Windows-PC, aber vielleicht kann jemand Wireshark starten, um zu sehen, was die Maschine in einem solchen Fall tatsächlich macht.
Slhck
Wenn die Fehleranzeige anzeigt, dass kein Internetzugang vorhanden ist, öffnen Sie die Netzwerk-Problembehandlung. Während die Problembehandlung ausgeführt wird, sehen Sie deutlich einen Schritt "Versuchen, eine Verbindung zu Microsoft.com herzustellen". Ich vermute also, dass es einen Dienst verwendet.
Mayank

Antworten:

91

Nach einigem Graben (die bloße Anzahl der Netzwerk- und Internetdienste in Windows ist erstaunlich), denke ich, dass ich es gefunden habe. Windows Vista und 7 verfügen über eine Reihe von Funktionen zur Netzwerkerkennung. Eine davon ist die Netzwerkkonnektivitätsstatusanzeige, mit der Konnektivitätstests durchgeführt werden, die wiederum vom Netzwerksystray-Symbol verwendet werden. Der Test für die Internetverbindung ist einfach:

  1. NCSI versucht, eine bestimmte Seite über HTTP (genauer: ein Textdokument) zu laden und prüft, ob sie abgerufen werden kann.
  2. Wenn dies nicht erfolgreich ist, meldet Windows "Kein Internetzugang".

Der Mechanismus überprüft auch, ob die Domäne, in der sich das Dokument befindet, in die erwartete IP-Adresse aufgelöst wird. Daher wird möglicherweise auch ein ordnungsgemäßer Internetzugang vorausgesetzt, wenn dieser Test erfolgreich ist, das Dokument jedoch nicht abgerufen werden kann.

Der Grund, warum "Kein Internetzugang" gemeldet wird, wenn Sie sich noch nicht an einem Hotspot authentifiziert haben, liegt in der Funktionsweise eines Hotspots. Es blockiert alle Ports außer 80 und 443 (für HTTP bzw. HTTPS), die zum Authentifizierungsserver des Hotspots umgeleitet werden und möglicherweise auf die eine oder andere Weise mit DNS-Anforderungen in Konflikt geraten. Daher kann NCSI weder die Domäne auflösen, in der sich die Testdatei befindet, noch kann NCSI die eigentliche Datei erreichen, da der HTTP-Verkehr zum Authentifizierungsserver umgeleitet wird.

Quelle: http://technet.microsoft.com/en-us/library/cc766017%28WS.10%29.aspx

Tobias Plutat
quelle
13
Ein Hotspot muss DNS zulassen, andernfalls schlägt der Versuch, über den Hostnamen (und nicht über die IP-Adresse) auf einen Server zuzugreifen, mit dem Fehler "Adresse kann nicht aufgelöst werden" fehl. Abhängig von der Einrichtung des Hotspots werden möglicherweise alle Namen in die Adresse seines Authentifizierungsservers aufgelöst oder die Namen werden korrekt aufgelöst, und es wird ausschließlich auf die Umleitung von http (s) -Verbindungen zum Authentifizierungsserver zurückgegriffen. Der DNS-Teil der in dem empfohlenen Dokument beschriebenen Überprüfungen besteht darin, zu überprüfen, ob dns.msftncsi.com in die richtige Adresse aufgelöst wird, und nicht, ob es überhaupt aufgelöst wird.
Dave Sherohman
1
Das ist in der Tat richtig. Ich habe die Antwort entsprechend aktualisiert.
Tobias Plutat
Super Fund und gute Beschreibung, wie es funktioniert! Wenn keine besseren Antworten angezeigt werden, wird es bald ein Kopfgeld geben.
nhinkle
Es sagt auch, No Internet accesswenn Sie hinter einem Proxy sind;)
Oscar Mederos
1
Ich bezweifle nicht, dass dies größtenteils richtig ist, aber es scheint unvollständig zu sein. Manchmal haben Sie ein Problem mit DNS und das Konnektivitätssymbol zeigt ein Popup an, das darauf hinweist, dass Sie über einen Internetzugang verfügen, DNS jedoch fehlschlägt. Ich denke, dass es einen Schritt vor Schritt 1 (oder möglicherweise nach Schritt 1) ​​geben muss, der ist, dass es versucht, das DNS aufzulösen. Wenn dies erfolgreich ist (aber die Seite nicht geladen wird), erhalten Sie stattdessen die DNS-Fehlermeldung.
Krowe2
69

Hier sind die Details des Verbindungsstatus Bestimmungsprozess :

In der folgenden Liste wird beschrieben, wie NCSI möglicherweise mit einer Website kommuniziert, um festzustellen, ob ein Netzwerk über eine Internetverbindung verfügt:

  1. Eine Anfrage zur DNS-Namensauflösung von dns.msftncsi.com

  2. Eine HTTP-Anforderung zur http://www.msftncsi.com/ncsi.txtRückgabe von 200 OK und des TextsMicrosoft NCSI

Dies kann mit einer Registrierungseinstellung deaktiviert werden. Wenn Sie festlegen

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

zu 0, Windows wird für Internet - Konnektivität Sonde nicht mehr.

Apple macht unter iOS etwas sehr Ähnliches, um die Internetverbindung und mögliche "Login" -Wifi-Seiten des Hotels usw. zu erkennen.

Jeff Atwood
quelle
1
Neuere (ich denke, Gingerbread und neuere ...) Versionen von Android tun dies ebenfalls ... sie zeigen das WLAN-Symbol in Weiß an, wenn sie eine Verbindung zum Netzwerk herstellen können, und es wird grün, wenn es einige von Google gehostete Versionen betrifft Seite. Die Idee dahinter ist die gleiche.
TM.
Irgendwie macht das auch das Kindle. Als ich eine Verbindung mit dem WLAN herstellte, wurde ich darauf hingewiesen, dass ich meinen Browser öffnen und die Nutzungsbedingungen akzeptieren musste. Ich habe mich gefragt, wie es dazu kam.
Kortuk
3
Wenn msftncsi.com ausfällt , kann also kein Windows 7-Computer ein Onlinesignal anzeigen ? Das ist Genie!
Liamzebedee
8

Um eine Internetverbindung zu erkennen, wird Windows wie folgt vorgehen:

  1. DNS-Anfrage an Server
  2. HTTP-Anforderung für bekannten Inhalt

Zusätzlich zu Jeffs Antwort vermute ich:

3 . Wenn die HTTP-Anforderung an ein externes Unternehmen von Microsoft weitergeleitet wird (oder nicht den erwarteten Inhalt zurückgibt), zeigen Sie die Nachricht in Ihrem Screenshot an.

Macke
quelle
3

Bei einer Verbindung, für die zusätzliche Anmeldeinformationen erforderlich sind, werden diese mit größerer Wahrscheinlichkeit durch den von Jeff erwähnten DNS-Auflösungsschritt ermittelt. Dabei treten die folgenden drei Szenarien auf:

  • Wenn das System die richtige Adresse auflöst, ist die Verbindung unterbrochen. (Internetverbindung)
  • Wenn das System eine DNS-Anfrage auflöst, die Adresse jedoch nicht korrekt ist, erfolgt eine Umleitung (möglicherweise zusätzliche Anmeldeinformationen erforderlich).
  • Wenn das System eine DNS-Anfrage nicht löst, liegt ein Problem mit der Internetverbindung vor (Verbindung zum Netzwerk / Zugangspunkt, aber keine Internetverbindung).

Ich gehe davon aus, dass die Bitte um:

http://www.msftncsi.com/ncsi.txt

ist eine schnelle Methode, um zu testen, ob die Verbindung zum Internet klar ist. Danach werden die DNS-Anforderungen ausgeführt, um den vollständigen Status der Verbindung zu ermitteln.

James Mertz
quelle