6

Я знаю, как в основном работает IP, и знаю, что IP-адрес состоит из части идентификатора сети и части идентификатора хоста , но когда я набираю IP-адрес, скажем, 8.8.8.8 в веб-браузере, я не предоставлял маску подсети Информация.

Итак, как браузер узнает, где находится разделительная линия между идентификатором сети и идентификатором хоста? Поскольку 8.8.8.8 может означать 8.8.8.8/8 , 8.8.8.8/24 и т.д.

В двух словах, IP-адрес, который я указал, неоднозначен.

3 ответа3

6

В случае, когда другой конец находится за пределами вашей локальной сети, вашему ПК не нужно знать механизмы подсетей на другом конце, ему просто нужно знать достаточно для доставки пакетов к ближайшему маршрутизатору. Для этого он использует две части информации.

  • маска локальной подсети
    он использует это вместе со своим собственным IP-адресом, чтобы увидеть, является ли другой IP-адрес локальным или нет.
  • шлюз по умолчанию (или явные маршруты - см. netstat -nr)
    туда отправляется все что не местное

Маршрутизатор на другом конце (то есть с интерфейсом в другой локальной сети) знает о расположении подсети там. Больше ничего не нужно.

Если вы посмотрите на netstat -nr то увидите, что таблица маршрутизации вашего компьютера состоит из сети назначения, маски сети (другая сторона маски подсети) и шлюза (маршрутизатора). Обычно у ПК есть один шлюз по умолчанию плюс немного киббла для вещей, которые вы не используете часто (loopback, multicast и т.д.).

Вы можете думать о сетевых масках в таблицах маршрутизации как эквивалентных высокоуровневой сводке или совокупности миллионов целевых подсетей.

2

Маска подсети используется только для определения, является ли адрес локальным для определенной сети, и для маршрутизации.

Если адрес, с которым вы хотите связаться (8.8.8.8 в вашем примере), не находится ни в одной из ваших локальных сетей (скажем, 172.16.3.0/24 & 127.0.0.1/8 & 192.168.45.88/29), то Ваша машина не может связаться с ним напрямую. В этом случае он отправит трафик на шлюз (скажем, 192.16.3.1), если он настроен, и надеется, что он доберется до пункта назначения.

0

Это не браузер, который определяет маску, а TCP/IP на нижнем уровне. Это также зависит от реализации TCP/IP. В большинстве реализаций, когда IP-адрес настроен без указания маски подсети, будет использоваться маска по умолчанию для этого IP-класса. Скажем, когда IP-адрес класса C настроен без маски, по умолчанию можно использовать маску 255.25.255.0.

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