Sous Windows 7, l’icône réseau de la zone de notification affiche un indicateur d’erreur si aucun accès Internet n’est disponible. , et l'icône d'erreur disparaît une fois la connexion Internet établie . Parfois, si la connexion Wi-Fi nécessite une étape d'authentification dans le navigateur, comme sur de nombreux réseaux invités dans les hôtels ou les universités, la bulle contextuelle suivante apparaît, indiquant le même résultat:
Comment Windows sait-il s'il dispose ou non d'une connexion Internet réussie?
Vraisemblablement, il vérifie un service en ligne de Microsoft pour voir s’il a une connexion établie, est redirigé vers une autre page ou n’obtient aucune réponse, mais je n’ai jamais vu ce processus ou ce processus les services utilisés sont documentés. Quelqu'un peut-il expliquer comment cela fonctionne? Je préférerais des réponses qui se réfèrent à des faits plutôt que de simplement deviner, mais si vous avez un vraiment bon deviner, alors allez-y.
Cette question était uneQuestion de la semaine concernant le super utilisateur.
Lisez l’entrée du blog du 16 mai 2011pour plus de détails ousoumettez la vôtreQuestion de la semaine.
Après quelques recherches (le nombre impressionnant de services liés au réseau et à Internet dans Windows est étonnant), je pense l'avoir trouvé. Windows Vista et 7 intègrent diverses fonctionnalités de Network Awareness, notamment l'indicateur d'état de la connectivité réseau, qui effectue des tests de connectivité qui sont utilisés par l'icône de la barre des tâches réseau. Le test de la connectivité Internet est simple:
Le mécanisme vérifie également si le domaine sur lequel le document est hébergé est résolu en adresse IP attendue. Donc, il peut aussi supposer un accès Internet adéquat si le test est réussi mais que le document ne peut pas être récupéré.
La raison pour laquelle il signale "Pas d'accès Internet" lorsque vous ne vous êtes pas authentifié sur un Hotspot réside dans le fonctionnement d'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 point d'accès sans fil et peuvent perturber les requêtes DNS d'une manière ou d'une autre. Ainsi, 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 lui-même car le trafic HTTP est redirigé sur le serveur d’authentification.
Source: http://technet.Microsoft.com/en-us/library/cc766017%28WS.10%29.aspx
Voici les détails de la détermination de l'état de la connexion processus :
La liste suivante décrit comment NCSI peut communiquer avec un site Web pour déterminer si un réseau dispose d'une connectivité Internet:
Une demande de résolution de nom DNS de
dns.msftncsi.com
Une requête HTTP pour
http://www.msftncsi.com/ncsi.txt
renvoyant 200 OK et le texteMicrosoft NCSI
Cela peut être désactivé avec un paramètre de registre. Si vous définissez
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
NlaSvc\Parameters\Internet\EnableActiveProbing
à 0
, Windows ne recherchera plus la connectivité Internet.
Dans iOS, Apple fait quelque chose de très similaire pour détecter la connectivité Internet et les pages Wi-Fi de connexion des hôtels, etc.
Comme Jeff l'a dit, pour détecter une connexion Internet, Windows fera:
- Requête DNS au serveur
- Requête HTTP pour 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 externe (ou ne renvoie pas le contenu attendu), affichez le message sur votre capture d'écran.
Pour une connexion nécessitant des informations de connexion supplémentaires, il est plus probable que les informations soient déterminées via l'étape de résolution DNS mentionnée par Jeff, dans les trois cas suivants:
Je suppose que la demande de:
est un moyen rapide de vérifier si la connexion à Internet est claire. Après cela, les requêtes DNS sont exécutées pour déterminer le statut complet de la connexion.