Информатика: Новый полный справочник для подготовки к ЕГЭ - 2018 год
Основные принципы функционирования сети Интернет. Протокол TCP/IP - Архитектура компьютеров и компьютерных сетей
Конспект
IР-адрес — уникальный (не повторяющийся) цифровой индивидуальный номер компьютера в сети. IP-адрес может быть закреплён за данным компьютером постоянно (выделенный IP-адрес) или выдаваться компьютеру временно из некоторого имеющегося набора только на время данного сеанса работы в сети.
В стандарте IP v.4 (рассматриваемом в задачах ЕГЭ) IP-адрес представляет собой запись из четырёх разделённых точками чисел, каждое из которых соответствует одному байту и имеет значение от 0 до 255. Пример:
168.154.0.177
Некоторые IP-адреса являются служебными и используются для специальных целей:
• адрес сети, в котором один или несколько крайних справа байтов равны нулю (примеры: 168.154.15.0, 168.154.0.0);
• широковещательный адрес, в котором один или несколько крайних справа байтов равны 255 (примеры: 168.154.15.255, 168.154.255.255).
Адрес сети, адрес компьютера в сети, маска IP-адреса
Если компьютер находится в составе локальной сети, которая, в свою очередь, подключена к сети Интернет, то возникает задача — определить IP-адрес всей локальной сети в целом (например, чтобы разослать пакет информации на все компьютеры данной локальной сети) и адрес конкретного компьютера внутри этой локальной сети.
Адрес сети и адрес компьютера в этой сети — это две условно выделяемые части единого IP-адреса данного компьютера, под которым он числится в Интернете:
Для разделения единого IP-адреса на адрес локальной сети и адрес компьютера в этой сети используется маска IP-адреса. Она имеет такой же вид, как IP-адрес (четыре числа-байта, записанных через точку) и выполняет функцию фильтра.
1. Определение адреса сети по полному IP-адресy и маске:
• исходный IP-адрес записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);
• маска также записывается в двоичной форме;
• двоичная запись маски записывается под двоичной записью IP-адреса;
• для определения адреса сети нужно выполнить логическую операцию И для каждой отдельной пары битов: если в маске в данном разряде стоит 1, то в качестве результата в данном разряде переписывается значение (0 или 1) из одноимённого разряда исходного IP-адреса; если в маске в данном разряде стоит 0, то в качестве результата в данном разряде тоже записывается 0;
• полученная двоичная запись преобразуется в десятичную форму (каждое двоичное число — отдельно).
Пример:
При переводе десятичных значений чисел — составляющих IP-адреса в двоичный формат нужно помнить: получаемые двоичные числа обязательно должны быть восьмиразрядными! При необходимости надо дополнять полученное двоичное число до 8 разрядов, дописывая к нему слева незначащие нули.
2. Определение адреса компьютера в сети (номера компьютера) по полному IP-адресу и маске:
• исходный IP-адрес записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);
• маска также записывается в двоичной форме;
• маска инвертируется (единичные биты заменяются на нулевые и наоборот);
• двоичная запись инвертированной маски записывается под двоичной записью IP-адреса;
• для определения адреса сети нужно выполнить логическую операцию И для каждой отдельной пары битов: если в маске в данном разряде стоит 1, то в качестве результата в данном разряде переписывается значение (0 или 1) из одноимённого разряда исходного IP-адреса; если в маске в данном разряде стоит 0, то в качестве результата в данном разряде тоже записывается 0;
• полученная двоичная запись преобразуется в десятичную форму (каждое двоичное число — отдельно).
Пример:
3. Определение количества компьютеров (количества адресов) в сети по маске:
• маска записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);
• маска инвертируется (единичные биты заменяются на нулевые и наоборот);
• разделяющие точки отбрасываются (т.е. инвертированная маска рассматривается как единое 32-битовое двоичное число);
• в этом числе отбрасываются незначащие нули слева;
• полученное двоичное число переводится в десятичную систему счисления;
• полученное число увеличивается на 1 (чтобы учесть, что нумерация адресов начинается с нулей).
В задаче может спрашиваться: какое количество адресов компьютеров в сети допускается теоретически. Тогда полученное вышеописанным способом значение — и есть ответ.
Если в задаче спрашивается: какое в сети возможно количество различных реальных (допустимых) адресов компьютеров, то необходимо учесть, что два адреса компьютера (состоящий из всех нулевых битов и состоящий из всех единичных битов) являются специальными, поэтому количество допустимых адресов компьютеров на 2 меньше рассчитанного выше.
Пример:
Структура словесного адреса интернет-ресурса (URL)
Разбор типовых задач
Задача 1. По заданному IP-адресу и маске определить адрес сети.
IР-адрес: 17.240.120.15
Маска: 255.255.128.0
Решение
Маской IP-адреса называют число (так же, как и IP-адрес, состоящее из четырёх записанных через точку байтовых значений от 0 до 255 каждое), которое определяет, какую часть IP-адреса составляет адрес сети. Для этого нужно представить и исходный IP-адрес, и маску как набор двоичных чисел, а затем поразрядно выполнить их конъюнкцию: если в каком-либо разряде маски записана “1”, то значение соответствующего разряда исходного IP-адреса переписывается без изменения, а если в маске записан “0”, то соответствующий разряд IP-адреса обнуляется (можно сказать, что “0” в маске “гасит” до 0 соответствующий разряд исходного IР-адреса). Полученная в результате запись и будет указывать IP-адрес сети (каждое из её двоичных чисел можно вновь перевести в десятичную систему счисления).
Ответ: 17.240.0.0
Задача 2. В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес подсети равен
231.32.240.0.
Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.64.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.
Решение
Здесь нам нужно искать не адрес сети, а наоборот, маску по заданным IP-адресу и адресу сети. Причём поскольку для байтов, которые в указанных адресах совпадают, байт маски очевидно равен 255, а там, где в адресе сети нулевой байт, байт маски так же очевидно тоже равен нулю, экзаменаторов интересует именно “ключевой” байт маски — третий слева. Так что задача для нас даже немного упростилась.
1) Преобразуем заданные третьи слева байты исходного IP-адреса и адреса сети в двоичные числа:
• 11210= 11100002;
• 6410 = 10000002.
2) Для получения из исходного IP-адреса заданного адреса сети требовалась поразрядная конъюнкция (для каждого бита) IP-адреса и маски, т.е.:
Биты маски нам не известны. Но их очень легко определить:
• там, где значения битов IP-адреса и адреса сети оба равны 1, бит маски должен быть тоже равен 1;
• там, где бит IP-адреса равен 1, а бит адреса сети равен 0, бит маски должен быть равен 0.
Единственная неоднозначность — там, где биты IP-адреса и адреса сети оба равны нулю: тут бит маски может быть равен как 0, так и 1. Но устранить эту неоднозначность нетрудно, зная, что в маске при ее просмотре слева направо может быть только один переход от единичных битов к нулевым, т.е., например, маска 11000110 недопустима. А мы видим, что уже со второго слева бита в маске должны начаться нули. Значит, и во всех “спорных” битах маски правее этого места тоже должны быть только нули.
3) Теперь нетрудно восстановить вышеприведенный “ребус” с конъюнкцией двоичных чисел:
4) Остаётся перевести найденную двоичную маску в десятичное число.
Для этого даже не понадобится никаких вычислений — полученная маска полностью совпала с двоичной записью байта адреса сети (6410), значит, и искомый байт маски тоже равен 64.
Ответ: 64.
Задача 3. В сетях TCP/IP маска сети — это двоичное число, меньшее 232; в маске сначала (в старших разрядах) записаны единицы, а затем с некоторого бита — нули.
Маска определяет, какая часть IP-адреса относится к адресу подсети, а какая — к адресу конкретного компьютера (узла) в этой сети. Маска записывается по тем же правилам, что и IР-адрес, — в виде четырёх десятичных чисел, каждое из которых соответствует одному байту и отделяется от других точкой. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Для узла с IP-адресом 167.57.252.220 адрес сети равен 167.48.0.0. Чему равен второй по счёту слева байт маски? Ответ нужно записать в виде десятичного числа.
Решение
Заметим: первый байт адреса сети совпадает с первым байтом IP-адреса, — значит, первый байт маски равен 111111112; третий и четвёртый же байты адреса сети нулевые, значит, им соответствуют и нулевые байты маски. Второй же по счёту байт маски — самый “интересный”, он должен содержать как единицы, так и нули. Именно поэтому в задаче требуется определить не всю маску, а только этот “ключевой” второй байт.
1) Переводим оба “ключевых” числа в двоичную систему счисления:
• 5710 = 1110012,
• 4810 = 1100002.
2) Записываем поразрядную конъюнкцию, в которой второй операнд неизвестен:
3) Сопоставляем первый операнд и результат:
• первый бит в обоих случаях равен 1, значит, соответствующий бит маски тоже равен 1;
• со вторым битом ситуация та же, значит, второй бит маски тоже равен 1;
• а вот третий бит в IP-адресе равен 1, а в адресе сети уже равен нулю, следовательно, соответствующий третий бит маски должен быть нулевым.
Четвёртый бит IP-адреса, как и четвёртый бит адреса сети, равен нулю. Тогда бит в маске может быть равен как 1, так и 0, — в обоих случаях конъюнкция с нулём даёт нуль.
Вспоминаем, что в маске сначала до какого-то разряда идут только единицы, а начиная с этого разряда — только нули. Поэтому если третий бит маски (как мы однозначно определили) равен нулю, то все последующие биты правее этого нуля тоже должны быть только нулями!
Поэтому маска получится такой:
1100002 или 4810.
Но этот ответ — неправильный!
Обязательно нужно вспомнить, что каждое из четырёх чисел, записанных в маске через точку, должно соответствовать одному байту, т.е. 8 битам. А у нас при переводе десятичных чисел 57 и 48 получились 6-битовые двоичные числа. Следовательно, их оба нужно дополнить до 8-битовых двумя незначащими нулями слева!
Это — распространенная ошибка, когда учащиеся забывают, что каждое значение в маске должно представлять собой целый байт. Для получения правильного ответа нужно не забывать дописывать незначащие нули слева!
Тогда запись поразрядной конъюнкции должна иметь вид:
Теперь рассуждения о значениях битов маски тоже нужно начать с точно определяемых значений 3-го и 4-го слева битов: если соответствующие биты IP-адреса и адреса сети оба равны 1, то и соответствующие биты маски тоже равны 1.
Далее для 5-го слева бита значение бита маски тоже определяется однозначно: оно должно быть равно 0.
Вспомнив свойство маски, что в ней сначала до некоторого разряда записаны только единицы, а после этого разряда — только нули, определяем, что до найденных нами единичных битов тоже должны быть единицы, а после найденного нами нуля — нули. То есть маска будет такой: 111100002 = 24010. Это и есть правильный ответ.
Ответ: 240.