Веду на сто
Конспект

IP-адресация и маски подсети

Маски IPv4, адрес сети, длина префикса и количество адресов.

На экзамене

Задание 10. Нужно связать IP-адрес, маску, адрес сети и число адресов с заданным свойством.

Формулы и факты

  • IPv4: 32 бита, четыре октета по 8 бит, каждый от 0 до 255.
  • Веса битов октета: 128, 64, 32, 16, 8, 4, 2, 1.
  • Маска: сначала только единицы, затем только нули. Префикс /p: число единиц маски.
  • Адрес сети: IP AND mask. В его узловой части все биты равны 0.
  • Широковещательный адрес: в узловой части все биты равны 1.
  • Узловых бит: h = 32 - p. Всего адресов: N = 2^{32-p}.
Единиц в октете маски012345678
Значение0128192224240248252254255

Для неполного октета размер блока: 256 - значение маски. Начала сетей идут с этим шагом.

Алгоритм

Найти адрес сети

  1. Раздели IP и маску на октеты.
  2. Под маской 255 перепиши октет IP, под маской 0 запиши 0.
  3. Неполный октет переведи в 8 бит и выполни AND.
  4. Переведи результат в десятичную запись.

Найти маску или число адресов

  1. Перебирай только префиксы вида "единицы, затем нули".
  2. Для каждого кандидата проверь равенство IP AND mask = адрес сети.
  3. Вычисли h = 32 - p и число комбинаций узловых бит.
  4. Дополнительное условие переведи в ограничение на свободные биты.
  5. Исключай адрес сети и широковещательный адрес только по требованию условия.

Ловушки

  • Путают: двоичную запись октета без ведущих нулей. Сверь: в октете ровно 8 бит.
  • Путают: любое число 0-255 и допустимый октет маски. Сверь: используй только значения из таблицы.
  • Путают: AND и обычное умножение. Сверь: выполняй операцию побитово.
  • Путают: 2^p и 2^{32-p}. Сверь: степень равна числу узловых бит.
  • Путают: все адреса и адреса узлов. Сверь: не вычитай 2 автоматически.