130

В Windows 7 значок сети области уведомлений будет отображать индикатор ошибки, если нет доступа в Интернет WiFi-эээ и значок ошибки исчезает при успешном подключении к Интернету сеть нормальная, Иногда, если для подключения WiFi требуется этап проверки подлинности в браузере, как во многих гостевых сетях в отелях или университетах, появляется следующее всплывающее сообщение: может потребоваться дополнительная информация для входа в систему, нажмите, чтобы открыть браузер

Как Windows узнает, есть ли у нее успешное подключение к Интернету?
Предположительно, он проверяет какую-то онлайн-службу Microsoft, чтобы выяснить, имеет ли она успешное соединение, перенаправляется ли на какую-то другую страницу или вообще не получает ответа, но я нигде не видел, чтобы этот процесс или используемые службы были задокументированы. , Кто-нибудь может объяснить, как это работает? Я предпочел бы ответы, которые относятся к фактам, а не просто догадываться, но если у вас есть действительно правильное предположение, то сделайте это.

Этот вопрос был Супер Вопросом Пользователя Недели.
Прочитайте запись в блоге 16 мая 2011 года для получения более подробной информации или отправьте свой собственный Вопрос недели.

4 ответа4

90

После некоторого раскопок (огромное количество сетевых и интернет-сервисов в Windows поражает), я думаю, что нашел его. Windows Vista и 7 имеют множество функций Network Awareness, одной из которых является индикатор состояния сетевого подключения, который выполняет тесты подключения, которые, в свою очередь, используются значком сетевого системного сообщения. Тест на интернет-соединение прост:

  1. NCSI пытается загрузить определенную страницу через HTTP (точнее: текстовый документ) и проверяет, можно ли ее получить.
  2. Если это не удается, Windows сообщает "Нет доступа в Интернет".

Механизм также проверяет, соответствует ли домен, в котором размещен документ, ожидаемому IP-адресу. Таким образом, он может также предполагать надлежащий доступ в Интернет, если этот тест пройден успешно, но документ не может быть получен

Причина, по которой он сообщает "Нет доступа к Интернету", когда вы еще не прошли проверку подлинности в Hotspot, заключается в том, как работает Hotspot. Он блокирует все порты, кроме 80 и 443 (для HTTP и HTTPS, соответственно), которые перенаправляются на сервер аутентификации Hotspot и могут так или иначе связываться с DNS-запросами. Таким образом, NCSI не может ни разрешить домен, в котором находится тестовый файл, и даже если бы он мог, он не достиг бы реального файла, потому что трафик HTTP перенаправлен на сервер аутентификации.

Источник: http://technet.microsoft.com/en-us/library/cc766017%28WS.10%29.aspx

69

Вот подробности процесса определения статуса соединения:

В следующем списке описывается, как NCSI может взаимодействовать с веб-сайтом, чтобы определить, имеет ли сеть подключение к Интернету:

  1. Запрос на разрешение имен DNS на dns.msftncsi.com

  2. HTTP-запрос для http://www.msftncsi.com/ncsi.txt возвращающий 200 OK и текст Microsoft NCSI

Это можно отключить с помощью параметра реестра. Если вы установите

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

до 0 , Windows больше не будет проверять подключение к Интернету.

Apple делает что-то очень похожее в iOS, чтобы обнаружить подключение к интернету и возможные страницы входа в сеть отеля и т.д.

8

Как сказал Джефф, для обнаружения интернет-соединения Windows сделает:

  1. DNS-запрос к серверу
  2. HTTP-запрос для известного контента

В дополнение к ответу Джеффа я подозреваю:

3 Если HTTP-запрос перенаправлен во внешнюю Microsoft (или не возвращает ожидаемый контент), покажите сообщение на скриншоте.

3

Для соединения, для которого требуется дополнительная информация о входе в систему, скорее всего, определяется шаг разрешения DNS, упомянутый Джеффом, в следующих трех случаях:

  • Если система распознает правильный адрес, соединение все ясно. (Подключение к интернету)
  • Если система разрешает запрос DNS, но не является правильным адресом, то происходит перенаправление (возможно, необходимо добавить информацию в журнал)
  • Если система не разрешает запрос DNS, возникают проблемы с подключением к Интернету (подключение к сети / точке доступа установлено, но подключение к Интернету отсутствует)

Я предполагаю, что запрос на:

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

быстрый способ проверить, все ли в порядке с подключением к Интернету. После этого запускаются DNS-запросы, чтобы определить полный статус соединения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .