Назад | Перейти на главную страницу

Зачем операционной системе знать маску подсети?

Если я правильно понимаю, операционная система получает маску подсети вместе с IP и другими вещами с DHCP-сервера. И эта маска подсети кажется важной для маршрутизатора, потому что он знает, идет ли пакет из / в LAN, или должен быть отправлен куда-то еще, или он получен из Интернета. Но зачем нужна маска подсети для операционной системы? Что делает операционная система со знанием маски подсети?

На основе комбинации IP-адреса и маски подсети ОС может определить, находится ли IP-адрес назначения, с которым приложение пользовательского пространства хочет связаться, в ее локальной сети или должен быть отправлен через какой-либо маршрутизатор. Если его необходимо отправить через маршрутизатор, он выполняет поиск в таблице маршрутизации, чтобы определить, какой маршрутизатор использовать.

Конфигурация сети включает 3 основных компонента:

  • Айпи адрес
  • Сетевая маска
  • Шлюз по умолчанию

Операционная система должна знать маску сети, чтобы определить, куда данные должны перемещаться. Ваш IP-адрес в сочетании с сетевой маской сообщает ОС, существует ли целевой IP-адрес в локальной подсети или за пределами вашей подсети. Некоторые компьютеры имеют несколько сетевых подключений, физических (несколько сетевых адаптеров) или логических (например, VPN). Без маски подсети для каждой сети ОС не сможет определить, какой трафик должен покинуть какой интерфейс.

Если цель существует в вашей подсети:

  • Ваша ОС определяет аппаратный адрес пункта назначения, ссылаясь на свою таблицу ARP. Если для этого адреса нет записи в таблице ARP, система отправляет аппаратную широковещательную рассылку, которая лавинно рассылается всем устройствам в сети уровня 2. Система, которой принадлежит IP-адрес, затем ответит на широковещательную рассылку своим аппаратным адресом (MAC-адресом). Затем ОС будет отправлять данные вместе, никогда не покидая локальной сети.

Если цель НЕ существует в вашей подсети:

  • Ваша ОС определяет, куда отправить пакет, на основе своей таблицы маршрутизации. Чаще всего пакет будет адресован шлюзу по умолчанию. Этот шлюз обычно представляет собой маршрутизатор, который будет использовать свои собственные таблицы маршрутизации для отправки пакета по пути к его конечному пункту назначения. Процесс отправки на шлюз по умолчанию такой же, как на другой хост в подсети. Если MAC-адрес шлюза отсутствует в таблице ARP, он отправит широковещательную рассылку, чтобы определить аппаратный адрес шлюза, а затем перенаправит кадр.

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

См. Ответ Мауро, но, кроме того, маска подсети позволяет хосту определять Широковещательный IP-адрес. Я думаю, что это менее важно в наши дни разрешения имен на основе DNS, но в старые времена до Active Directory поиск имени NETBIOS мог завершиться ошибкой, если маска подсети была неправильной, потому что широковещательный адрес был бы неправильным.