Добавить в корзинуПозвонить
Найти в Дзене
Иван Кулавский

Решение задания № 13 руками (на листочке)(простые №1 - маски)

Задачи с сайта СДАМ ГИА: РЕШУ ЕГЭ № 7669 Для некого понимания задачи стоит сказать, что есть хороший пример, правда он немного не настоящий), но под задачи подходит. Допустим, что у вас дома стоит wi-fi роутер и у него IP-адрес 192.168.0.1 (не взламывайте соседей.. они давно логин и пароль админа меняют) это будет адрес сети У вас в семье много устройств, которые могут подключаться к сети интернет, и вы их, естественно, подключаете к своему wi-fi. Для каждого устройства назначается IP-адрес, например у вас 5 устройств: 192.168.0.10 192.168.0.11 192.168.0.12 192.168.0.13 192.168.0.14 это, так называемые узлы надеюсь, будет проще понимать задачу возникает вопрос, а как же назначаются эти адреса всем устройствам? опять же, для упрощения будем говорить, что маска сети за это несет ответственность Разберем пример из задачи: IP-⁠адрес узла равен 231.32.255.131 маска равна 255.255.240.0 переводим в двоичную систему счисления десятичные значения байтов (при помощи python) напоминаю про нули!!!

Задачи с сайта СДАМ ГИА: РЕШУ ЕГЭ

№ 7669

Для некого понимания задачи стоит сказать, что есть хороший пример, правда он немного не настоящий), но под задачи подходит.

Допустим, что у вас дома стоит wi-fi роутер и у него IP-адрес 192.168.0.1 (не взламывайте соседей.. они давно логин и пароль админа меняют)

это будет адрес сети

У вас в семье много устройств, которые могут подключаться к сети интернет, и вы их, естественно, подключаете к своему wi-fi.

Для каждого устройства назначается IP-адрес, например у вас 5 устройств:

192.168.0.10

192.168.0.11

192.168.0.12

192.168.0.13

192.168.0.14

это, так называемые узлы

надеюсь, будет проще понимать задачу

возникает вопрос, а как же назначаются эти адреса всем устройствам?

опять же, для упрощения будем говорить, что маска сети за это несет ответственность

Разберем пример из задачи:

IP-⁠адрес узла равен 231.32.255.131

маска равна 255.255.240.0

переводим в двоичную систему счисления десятичные значения байтов (при помощи python)

-2

напоминаю про нули!!!!! слева добиваем до 8 цифр в байте (второй, третий и четвертый байт)

IP-⁠адрес узла равен 11100111.00100000.11111111.10000011

далее маска:

-3

маска равна 11111111.11111111.11110000.00000000

выведу результаты отдельно друг под другом для удобства

IP-⁠адрес узла равен 11100111.00100000.11111111.10000011

маска равна               11111111.11111111.11110000.00000000

Если в маске стоят единицы, это означает, что значения битов не меняются

значит первые два байта IP-адреса остаются неизменными

последний байт будет равен 00000000, так как последний байт маски 00000000

анализируем третий байт

в маске первые четыре бита равны 1, значит первые четыре бита IP-адреса будут неизменяемыми

остальное меняется

значит адрес будет таким: 11100111.00100000.11110000.00000000

переводим в десятичную систему:

-4

231.32.240.0

Чтобы не заниматься ерундой, и постоянно переводить из двоичной в десятичную и обратно, запомните одну важную вещь:

поразрядная конъюнкция (&) - амперсанд (на клавиатуре, где цифра 7)

она позволит нам, в большинстве случаев, просто находить результат побитовой конъюнкции чисел в десятичной системе и получать ответ

-5

В нашей задаче вопрос звучит так:

Для узла с IP-⁠адресом 224.128.112.142 адрес сети равен 224.128.64.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Для решения этой задачи нужно понимать главную особенность:

мы теперь ищем маску, а значит все правила нам помогают

условно, можно представить искомый байт маски за X (некое неизвестное)

И спросите себя - на что нужно умножить (конъюнкция - это условное умножение) какое-то число, если получается это же число?

Правильно! На 255

Так как 255 - это 11111111

А по базовым правилам алгебры логики, что не умножай на 1 - все равно будет исходное

X ∗ 1 = X

В нашем случае X & 1 = X

Помня выше написанное, смело можем сказать, что 224 & X = 224, и, естественно, X = 255

128 & X = 128, и, естественно, X = 255

Первые два байта маски нашли: 255.255.X.X

со временем вы будете эти байты очень быстро отсекать из контекста задачи, и сразу приступать к поиску основного вопроса

Рассмотрим третьи байты адресов сети и узла:

112 и 64

-6

Напоминаю про нули слева!!!! до 8 битов!

01110000

01000000

И тут самое главное в понимании задачи!

мы вспоминаем тот факт, что маска это запись формата (111...11000...00)

то есть сначала единицы, потом нули и никак иначе!

Постарайтесь осознать и запомнить!

01110000

01000000

анализируем отдельно каждые биты записи

0 & X = 0 , тут толком не понять вообще, так как X может быть и 0 и 1

а вот второй бит!

1 & X = 1

Тут 100%, что X = 1

Далее 1 & X = 0, это важнейший момент понимания границы, где маска переходит в нули

Здесь X - 100% равен 0

Из всего выше следует, что первый бит может быть любым. Второй бит точно 1. Третий бит точно 0.

Значит маска имеет вид 11000000

а это

-7