Олимпиадный тренинг

Задача . Подсети


Задача

Темы:
Маска сети для IPv4 адресации – это 4-х байтное число, которое делит IP адрес на адрес сети (первая часть) и адрес узла (вторая часть). У всех адресов одной IP-сети совпадают первые части и отличаются вторые. Для части IP-адреса, соответствующей адресу сети, в маске сети содержатся двоичные единицы, а для части IP-адреса, соответствующей адресу узла, в маске сети содержатся двоичные нули. Для записи масок сетей часто используется нотация, когда после IP-адреса через «/» указывается число бит, отводимых в маске под адрес сети. Например, для адреса 11.12.0.8 и маски 255.0.0.0 запись будет иметь следующий вид 11.12.0.8/8. Такое число, которое указывается после «/», называется префиксом сети.
Помощнику сетевого администратора корпоративной сети поставлена задача: разделить сеть нового филиала компании на подсети в соответствии с определенным подходом. На филиал выделяется общее адресное пространство. Необходимо обеспечить каждому отделу филиала требуемое ему количество IP-адресов для клиентских устройств в отделе, возможно с некоторым запасом.
Подход к разделению сетей выглядит следующим образом. Подсеть разбивается на более мелкие подсети увеличением префикса подсети. Поскольку префикс задаёт количество бит в части IP-адреса, соответствующей адресу сети, такая операция всегда делит общее количество адресов подсети, на число, кратное степени двойки.
Исходную сеть и её подсети можно представить в виде графа, вершиной которого будет исходная сеть, а каждый дочерний узел получается в результате разбиения сети на две подсети, например:


и т.д. Таким образом, процесс разбиения исходной сети на нужное количество подсетей сводится к дихотомическому делению исходной сети до тех пор, пока для каждого отдела не будет найдена подсеть минимально необходимого размера. Следует отметить, что в каждой подсети есть два адреса, которые не могут быть назначены клиентским устройствам отдела, но входят в выделяемый для подсети диапазон адресов – это адрес сети и широковещательный адрес. При этом отделу с большим количеством IP-адресов будет выделяться подсеть с меньшим адресом сети, а при соблюдении этого требования каждому отделу будет выделяться подсеть с минимально возможным адресом сети.
Например, пусть требуется разделить исходное адресное пространство так, чтобы выделить подсети трем отделам с указанным количеством компьютеров в каждом отделе:
 
Адресное пространство (блок адресов) Количество клиентских устройств в отделах
A B C
192.168.1.0 /24 28 7 46

Тогда будут выделены адреса сетей: С – 192.168.1.0/26, А – 192.168.1.64/27, В – 192.168.1.96/28. Широковещательный адрес – последний адрес в диапазоне подсети: для С - 192.168.1.63/26, А - 192.168.1.95/27, В - 192.168.1.111/28.
Задача:
Применить указанный подход и указать в ответе широковещательный адрес подсети A, если известно:
 
Адресное пространство (блок адресов) Количество клиентских устройств в отделах
A B C
36.121.96.0 /24 8 51 17

Пример записи ответа: 192.168.1.63/26

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя