Как компьютер узнает, когда он подключен к сети, а когда нет?

Как компьютер узнает, когда он подключен к сети, а когда нет?

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

решение1

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

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

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

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

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

  • Логически отключенная беспроводная связь

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

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

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

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

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


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

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

фигура 2: Светодиоды подключения на маршрутизаторе

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

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

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

решение2

Выполняет ли он непрерывные пинг-тесты на ваши шлюзы, а затем куда-то в Интернет?

Нет.

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

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

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

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

решение3

Не требуется постоянного пингования

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

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

Ответ в том, что программа ping работает науровень сетевого слоя, но ваш компьютер (как система, использующая свои различные части, интегрированные программным обеспечением) «знает» обо всех слоях. Так что если самый базовый слой нарушается при отключении провода - это происходит на уровне физического уровня (на проводе - чаще всего Ethernet). Сетевой адаптер постоянно получает сигналы отправки на физическом уровне. Вы можете сравнить это с носителем в аналоговой телефонной сети. Если вы снимаете трубку стационарного телефона, вы можете услышать тон носителя. Если вы его не слышите, вы знаете, что телефонная линия не работает. Аналогично компьютер «знает», что провод Ethernet отключен на обоих концах, потому что нет «носителя» (если использовать это сравнение). Поэтому нет необходимости постоянно использовать 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 suite - не единственные сетевые протоколы. Несколько лет назад протоколы Netware IPX/SPX были более устоявшимися в офисных сетевых настройках, а TCP/IP был своего рода новичком. Кабель тогда часто был коаксиальным, а не витой парой Ethernet.

Связанный контент