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}.
| Единиц в октете маски | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| Значение | 0 | 128 | 192 | 224 | 240 | 248 | 252 | 254 | 255 |
Для неполного октета размер блока: 256 - значение маски. Начала сетей идут с этим шагом.
Алгоритм
Найти адрес сети
- Раздели IP и маску на октеты.
- Под маской 255 перепиши октет IP, под маской 0 запиши 0.
- Неполный октет переведи в 8 бит и выполни AND.
- Переведи результат в десятичную запись.
Найти маску или число адресов
- Перебирай только префиксы вида "единицы, затем нули".
- Для каждого кандидата проверь равенство
IP AND mask = адрес сети. - Вычисли
h = 32 - pи число комбинаций узловых бит. - Дополнительное условие переведи в ограничение на свободные биты.
- Исключай адрес сети и широковещательный адрес только по требованию условия.
Ловушки
- Путают: двоичную запись октета без ведущих нулей. Сверь: в октете ровно 8 бит.
- Путают: любое число 0-255 и допустимый октет маски. Сверь: используй только значения из таблицы.
- Путают: AND и обычное умножение. Сверь: выполняй операцию побитово.
- Путают: 2^p и 2^{32-p}. Сверь: степень равна числу узловых бит.
- Путают: все адреса и адреса узлов. Сверь: не вычитай 2 автоматически.