3

Сегодня я работал над прошивкой роутера, и мне нужно было перезагрузить его, чтобы завершить обновление. Затем я заметил, что мой интернет был отключен на минуту, и компьютер вернулся в рабочее состояние после завершения загрузки. Как он узнал, что это онлайн так точно?
Он запускает непрерывные тесты ping для ваших шлюзов, а затем куда-нибудь в интернет? Если это так, может ли это в любом случае вызвать смертельный удар на каком-либо сервере в мире?

3 ответа3

6

Он запускает непрерывные тесты ping для ваших шлюзов, а затем куда-нибудь в интернет?

Нет.

Вам не нужно подключение к Интернету, чтобы компьютер мог определить, подключен ли он к самой сети. Попробуйте отключить кабель между вашим маршрутизатором (или широкополосным модемом) и большим миром; вы заметите, что компьютер не замечает каких-либо отключений, потому что вы все еще подключены к сети. То, что сеть не позволит вам получить доступ к одной конкретной сети (Интернет), это совсем другое дело. (Вы можете использовать точно такие же технологии и точно такое же оборудование, которое используется в Интернете, для построения совершенно отдельной сети. Это был бы не Интернет, но для компьютера, если только вы не исследуете конкретный известный хост с определенными известными свойствами, он будет совершенно неотличим от Интернета.)

Или возьмите любой случайный сетевой коммутатор и подключите сетевой кабель между ним и вашим компьютером, но не более того; По словам компьютера, есть ссылка, но она ни к чему вас не приведет.

То , что компьютер не определяет , является потерей электрической связи на сетевом порту. Технически он обнаруживает потерю физического или, возможно, канала канального уровня. Этот факт (упрощенное объяснение здесь) сообщается аппаратным обеспечением операционной системе, которая затем может сообщить об этом пользователю любым удобным для него способом, в том числе и вовсе.

Например, обычный Linux просто выдает в систему нечто похожее на kernel: networkdriver 0000:02:00.0: eth0: link down (где 0000:02:00.0 - системный идентификатор оборудования для сетевой карты, а eth0 - логический идентификатор). журнал. Приложения пользовательского пространства, такие как, например, NetworkManager, могут взять ту же информацию и сообщить о ней в более удобной для пользователя форме. Windows, если пользователь вошел в систему, примет в основном ту же информацию, но отобразит ее во всплывающем сообщении, в котором говорится что-то вроде "обнаружено отключение сети".

4

Вы можете быть «отключены» несколькими различными способами, поэтому способ определения того, что вы отключены, может отличаться:

  • Физически отключенный кабель

    Если ваше проводное соединение становится физически отключенным, то, очевидно, сетевой адаптер будет знать, что цепь была разорвана. Это похоже на выключение света, потому что он отключается.

  • Логически отключенный кабель

    Если ваше проводное соединение становится логически отключенным (кабель все еще подключен, но модем или маршрутизатор выключен), тогда сетевой адаптер все еще знает, потому что цепь все еще технически обрезана. Это похоже на то, как свет все еще включается, но питание гаснет. Вы также заметите, что индикатор состояния канала на сетевой карте (рисунок 1) и на маршрутизаторе (рисунок 2) погасли.

  • Логически отключенный беспроводной

    Это немного сложнее с беспроводной связью. Если беспроводной модем или маршрутизатор отключается, беспроводной адаптер может обнаружить потерянное соединение, потому что, даже если физическое соединение отсутствует, радиоволны все еще ведут себя как прямое физическое соединение, а схема радиомодуля NIC предназначена для быть в состоянии обнаружить беспроводной сигнал или его отсутствие. (Конечно, специфика выходит за рамки этого сайта и лучше подходит для электротехники.)

  • Отключен от интернета

    Другой способ, которым вы можете испытать отключение, - это Интернет в целом. Это похоже на логическое отключение, поскольку сетевой адаптер все еще подключен. Отличие состоит в том, что в этом случае даже модем или маршрутизатор все еще включен и активен, и вы даже можете получить доступ к локальной сети, если таковая существует. Это действительно определяется пингом, но не шлюзом, а сервером вне сети; то есть что-то в интернете.

    В Windows, начиная с Vista, независимо от того, подключены вы к Интернету или нет, выполняется регулярный пинг с сервера Microsoft. Это сделано NCSI, не путать с телешоу с аналогичной аббревиатурой. Индикатор состояния сетевого подключения - это функция Windows, которая выбирает фиктивный файл с одного из двух URL-адресов Microsoft (в зависимости от того, используете ли вы IPv4 или IPv6). Если он может получить файл, он ничего не делает, но если он терпит неудачу, то это указывает на отсутствие подключения к Интернету (рисунок 3).

    Предполагается, что это можно делать только время от времени, но не непрерывно (см. Раздел « Триггеры » на странице NCSI), однако некоторые люди обнаружили, что это происходит не раз (хотя это, вероятно, связано с нестабильным соединением, которое продолжает повторное включение, поэтому Windows продолжает повторную проверку). Тем не менее, вы можете изменить его на свой собственный сервер или отключить его напрямую.


Рисунок 1: Индикатор соединения на порту Ethernet

Фотография светодиодного индикатора подключения к порту Ethernet

Рисунок 2: Индикаторы подключения на маршрутизаторе

Фотография светодиода подключения роутера

Рисунок 3: Служба Microsoft NCSI сообщает об отсутствии подключения к Интернету

Скриншот Windows, подключенной, но не к Интернету

1

Не требуется постоянный пинг

Ваш компьютер впервые обнаружил потерю соединения уровня Ethernet - это означает, что электрический ток больше не присутствовал в его порту Ethernet (физический разъем, к которому подключен кабель). Вы также заметите, что зеленый индикатор Ethernet-порта погас - это происходит, когда кабель Ethernet вытянут с любого из двух концов. Позже, когда ваш роутер снова включился, сначала было обнаружено электричество, и индикатор загорелся зеленым. Вскоре после этого значок на панели задач вашего ПК показал, что сетевое соединение работает. На этом этапе можно сказать, что уровень IP работает, и компьютер знает, что может отправлять и получать IP-пакеты, поскольку он знает, что он может подключаться к маршрутизатору.

Взгляните на модель сетевого уровня OSI. http://en.wikipedia.org/wiki/OSI_model

Ответ заключается в том, что программа ping работает на уровне сетевого уровня, но ваш компьютер (как система, использующая различные его части, интегрированные в программное обеспечение) "знает" обо всех уровнях. Таким образом, если при отключении провода нарушается самый базовый уровень - это происходит на уровне физического уровня (на проводе - чаще всего Ethernet). Сетевой адаптер постоянно принимает отправляющие сигналы на физическом уровне. Вы можете сравнить его с оператором по аналоговой телефонной сети. Если вы берете трубку стационарного телефона, вы можете услышать тональный сигнал оператора. Если вы не слышите это, вы знаете, что телефонная линия не работает. Точно так же компьютер "знает", что провод Ethernet отключен на любом конце, потому что нет "носителя" (если мы используем это сравнение). Таким образом, нет необходимости постоянно использовать ping для компьютера, чтобы знать, что он подключен к физической сети.

Также помните, когда мы говорим о ping, мы говорим только о стеке протоколов TCP/IP (особенно его протокол ICMP). Чтобы проиллюстрировать, как интернет-соединения работают для веб-браузеров, рассмотрим это. Обычно, когда ваш браузер Firefox хочет получить страницу с URL-адреса (например, http://tinyurl.com), он сначала спрашивает компьютер, какой IP-адрес tinyurl.com. Система, использующая свою библиотеку распознавателя, затем запрашивает DNS-сервер, который дает ответ, например 195.66.135.249. Затем Firefox просит ваш компьютер получить веб-страницу по умолчанию от tinyurl.com. Ваш компьютер устанавливает TCP-соединение с компьютером с IP 195.666.135.249 и доставляет сообщение протокола http с запросом на веб-страницу по умолчанию. Затем tinyurl.com отправляет обратно страницу по умолчанию через протокол http, который перемещается по виртуальному "конвейеру", созданному протоколом TCP. Возможно, это дает вам представление о том, как взаимодействуют различные части протоколов TCP/IP, и показывает, что существует множество способов, которыми компьютер может "узнать", подключен ли он к физической сети, локальной сети и Интернету.

Чтобы лучше понять слои, вам, возможно, стоит взглянуть на некоторые диаграммы и больше теории на http://www.hardwaresecrets.com/article/The-OSI-Reference-Model-for-Network-Protocols/431/1. Основная идея заключается в том, что протоколы на каждом уровне могут "притворяться", что общаются с протоколом того же уровня на удаленном компьютере, и на самом деле не нужно много знать о других протоколах, только о том, как получать / передавать сообщения на верхний / нижний уровень протоколы. Я уверен, что вы найдете аналогию с буквами, вставленными друг в друга, весьма кстати.

В модели OSI вы увидите, что набор TCP/IP - не единственные сетевые протоколы. Несколько лет назад протоколы Netware IPX/SPX были лучше установлены в настройках офисной сети, и TCP/IP был своего рода новичком. Кабель тогда часто был коаксиальной, а не витой парой Ethernet.

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