Основные принципы функционирования сети Интернет. Протокол TCP/IP - Архитектура компьютеров и компьютерных сетей

Информатика: Новый полный справочник для подготовки к ЕГЭ - 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-адреса данного компьютера, под которым он числится в Интернете:

image121

Для разделения единого IP-адреса на адрес локальной сети и адрес компьютера в этой сети используется маска IP-адреса. Она имеет такой же вид, как IP-адрес (четыре числа-байта, записанных через точку) и выполняет функцию фильтра.

1. Определение адреса сети по полному IP-адресy и маске:

• исходный IP-адрес записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);

• маска также записывается в двоичной форме;

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

• для определения адреса сети нужно выполнить логическую операцию И для каждой отдельной пары битов: если в маске в данном разряде стоит 1, то в качестве результата в данном разряде переписывается значение (0 или 1) из одноимённого разряда исходного IP-адреса; если в маске в данном разряде стоит 0, то в качестве результата в данном разряде тоже записывается 0;

• полученная двоичная запись преобразуется в десятичную форму (каждое двоичное число — отдельно).

Пример:

image122

При переводе десятичных значений чисел — составляющих IP-адреса в двоичный формат нужно помнить: получаемые двоичные числа обязательно должны быть восьмиразрядными! При необходимости надо дополнять полученное двоичное число до 8 разрядов, дописывая к нему слева незначащие нули.

2. Определение адреса компьютера в сети (номера компьютера) по полному IP-адресу и маске:

• исходный IP-адрес записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);

• маска также записывается в двоичной форме;

• маска инвертируется (единичные биты заменяются на нулевые и наоборот);

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

• для определения адреса сети нужно выполнить логическую операцию И для каждой отдельной пары битов: если в маске в данном разряде стоит 1, то в качестве результата в данном разряде переписывается значение (0 или 1) из одноимённого разряда исходного IP-адреса; если в маске в данном разряде стоит 0, то в качестве результата в данном разряде тоже записывается 0;

• полученная двоичная запись преобразуется в десятичную форму (каждое двоичное число — отдельно).

Пример:

3. Определение количества компьютеров (количества адресов) в сети по маске:

• маска записывается в двоичной форме (каждое число — байт переводится в восьмиразрядное двоичное число отдельно и по-прежнему записывается через точку);

• маска инвертируется (единичные биты заменяются на нулевые и наоборот);

• разделяющие точки отбрасываются (т.е. инвертированная маска рассматривается как единое 32-битовое двоичное число);

• в этом числе отбрасываются незначащие нули слева;

• полученное двоичное число переводится в десятичную систему счисления;

• полученное число увеличивается на 1 (чтобы учесть, что нумерация адресов начинается с нулей).

В задаче может спрашиваться: какое количество адресов компьютеров в сети допускается теоретически. Тогда полученное вышеописанным способом значение — и есть ответ.

Если в задаче спрашивается: какое в сети возможно количество различных реальных (допустимых) адресов компьютеров, то необходимо учесть, что два адреса компьютера (состоящий из всех нулевых битов и состоящий из всех единичных битов) являются специальными, поэтому количество допустимых адресов компьютеров на 2 меньше рассчитанного выше.

Пример:

Структура словесного адреса интернет-ресурса (URL)

image124

Разбор типовых задач

Задача 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.