140 votes

Comment Windows sait-il s'il dispose d'un accès à l'internet ou si une connexion Wi-Fi nécessite une authentification dans le navigateur ?

Dans Windows 7, l'icône de mise en réseau de la zone de notification affiche un indicateur d'erreur s'il n'y a pas d'accès à Internet. wifi-err L'icône d'erreur disparaît dès que la connexion à l'Internet est établie. networking normal . Parfois, si la connexion WiFi nécessite une étape d'authentification dans le navigateur, comme c'est le cas sur de nombreux réseaux invités dans les hôtels ou les universités, la bulle pop-up suivante apparaît, qui l'indique : additional log on information may be required, click to open your browser

Comment Windows sait-il si sa connexion Internet est réussie ou non ?
On peut supposer qu'il vérifie un service Microsoft en ligne pour voir si la connexion est réussie, s'il est redirigé vers une autre page ou s'il n'obtient aucune réponse, mais je n'ai vu nulle part que ce processus ou les services utilisés sont documentés. Quelqu'un peut-il m'expliquer comment cela fonctionne ? Je préférerais des réponses qui font référence à des faits, plutôt que de simples suppositions, mais si vous avez un vraiment bien devinez, alors allez-y.

Cette question était un Question de la semaine pour les super utilisateurs .
Lire l'article du 16 mai 2011 entrée de blog pour plus de détails ou soumettez votre propre La question de la semaine.

95voto

Tobias Plutat Points 5435

Après quelques recherches (le nombre de services liés au réseau et à l'Internet dans Windows est étonnant), je pense avoir trouvé la solution. Windows Vista et 7 ont une variété de fonctions de sensibilisation au réseau, dont l'une est l'indicateur d'état de la connectivité réseau qui effectue des tests de connectivité qui, à leur tour, sont utilisés par l'icône réseau de la barre d'état système. Le test de connectivité à Internet est simple :

  1. NCSI essaie de charger une page spécifique via HTTP (plus précisément : un document texte) et teste si elle peut être récupérée.
  2. Si cela n'aboutit pas, Windows signale "Pas d'accès à Internet".

Le mécanisme vérifie également si le domaine sur lequel le document est hébergé se résout à l'adresse IP attendue. Il peut donc supposer que l'accès à l'internet est correct si ce test est réussi mais que le document ne peut être récupéré.

La raison pour laquelle il signale "Pas d'accès à Internet" lorsque vous ne vous êtes pas encore authentifié sur un Hotspot réside dans la façon dont fonctionne un Hotspot. Il bloque tous les ports autres que 80 et 443 (pour HTTP et HTTPS, respectivement), qui sont redirigés vers le serveur d'authentification du Hotspot et peuvent perturber les requêtes DNS d'une manière ou d'une autre. Ainsi, le NCSI ne peut ni résoudre le domaine sur lequel son fichier de test est hébergé, et même s'il le pouvait, il n'atteindrait pas le fichier réel car le trafic HTTP est redirigé vers le serveur d'authentification.

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

76voto

Jeff Atwood Points 31111

Voici les détails de la détermination de l'état de la connexion processus :

La liste suivante décrit comment l'ICNE peut communiquer avec un site Web pour déterminer si un réseau dispose d'une connectivité Internet :

  1. Une demande de résolution de nom DNS de dns.msftncsi.com

  2. Une requête HTTP pour http://www.msftncsi.com/ncsi.txt renvoyant 200 OK et le texte Microsoft NCSI

Cela peut être désactivé par un paramètre du registre. Si vous définissez

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

a 0 Windows ne vérifiera plus la connectivité Internet.

Apple fait quelque chose de très similaire dans iOS pour détecter la connectivité internet et les éventuelles pages wifi "de connexion" des hôtels, etc.

8voto

technomalogical Points 1859

Comme Jeff l'a dit, pour détecter une connexion Internet, Windows fera l'affaire :

  1. Demande DNS au serveur
  2. Demande HTTP pour un contenu connu

En plus de la réponse de Jeff, je soupçonne :

3 . Si la requête HTTP est redirigée vers un Microsoft extérieur (ou ne retourne pas le contenu attendu), montrez le message dans votre capture d'écran.

5voto

Daniel Points 918

Pour une connexion qui nécessite des informations de connexion supplémentaires, il est plus probable qu'elle soit déterminée par l'étape de résolution DNS mentionnée par Jeff, les trois scénarios suivants se produisant :

  • Si le système résout l'adresse correcte, la connexion est claire. (Connectivité Internet)
  • Si le système résout une requête DNS mais qu'il ne s'agit pas de la bonne adresse, il y a un re-direct (ajout possible d'informations de connexion nécessaires)
  • Si le système ne résout pas une requête DNS, il y a un problème de connectivité Internet (la connexion est établie au réseau/point d'accès mais il n'y a pas de connexion Internet).

Je suppose que la demande de :

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

est un moyen rapide de tester si la connexion à l'Internet est claire. Ensuite, les requêtes DNS sont exécutées pour déterminer l'état complet de la connexion.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X