Компьютерные сети. Адресация в Интернете.

Для выполнения заданий по данной теме полезно знать следующие общие термины и правила.

Адрес страницы (или файла) в интернете представляет из себя уникальную ссылку, записанную по правилам URL-адресов. В сокращенном варианте общий вид адреса можно записать так:

<протокол>://<доменное имя (или IP-адрес)>/<URL‐путь>/<Имя файла>

В качестве протокола чаще всего встречается http (для Web-страниц) или ftp (для файловых архивов).

Доменное имя или IP-адрес, например, google.ru или 172.217.22.67 (кстати, если вставить этот IP адрес в адресную строку браузера, то вы перейдете как раз на google.ru), то есть попросту адрес сайта. Обратите внимание, что протокол отделяется от доменного именем знаками ://

После доменного имени через знак / перечисляются имена папок на сервере. В конце может идти имя файла, к которому получаем доступ.

Пример полного адреса документа в сети (кстати, по этому адресу можно скачать исходники языка программирования Go):

https://github.com/golang/go/archive/master.zip

Этот адрес состоит из:

У каждого компьютера, подключенного к сети интернет, есть свой уникальный сетевой адрес – IP адрес. В версии протокола IPv4 IP-адрес представляет собой 32-битное число, для удобства его обычно записывают в виде четырёх десятичных чисел значением от 0 до 255, разделённых точками, например, 37.235.151.108 (кстати, этот адрес тоже рабочий – можете вставить его в адресную строку своего браузера).

IP-адрес состоит из двух частей: адреса сети и адреса узла в этой сети, причём деление адреса на части определяется маской – 32-битным числом, в двоичной записи которого сначала стоят единицы, а потом – нули. Для удобства это 32 битное число тоже можно представить в виде четырех чисел, разделенных точкой. Например, маска может быть такой:

11111111.11111111.11111000.00000000 = 255.255.248.0

Маска позволяет определить, какая часть IP-адреса относится к адресу сети, а какая – к адресу узла.

Та часть IP-адреса, которая соответствует единичным битам маски, относится к адресу сети, а часть, соответствующая нулевым битам маски – это числовой адрес узла. Если два узла относятся к одной сети, то адрес сети у них одинаковый.

Рассмотрим примеры задач на эту тему.

 

 

Пример 1.

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

По заданным IP-адресу узла и маске определите адрес сети.

IP-адрес узла: 218.137.218.137

Маска: 255.255.248.0

При записи ответа выберите из приведённых в таблице чисел четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без использования точек.

При записи ответа выберите из приведенных в таблице чисел 4 фрагмента четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без точек.

A B C D E F G H
255 249 218 216 137 32 8 0

Пример. Пусть искомый адрес сети 192.168.128.0 и дана таблица

A B C D E F G H
128 168 255 8 127 0 17 192

В этом случае правильный ответ будет HBAF.

Решение.

Для нахождения адреса сети нужно применить поразрядную конъюнкцию к IP-адресу узла и маске. Для этого их нужно перевести в двоичную систему счисления. Если мы бы не были ленивыми, то мы бы перевели адреса полностью и получили бы следующее:

IP-адрес узла: 218.137.218.137 = 11011010.10001001.11011010.10001001

Маска: 255.255.248.0 = 11111111.11111111.11111000.00000000

И теперь нужно применить поразрядную конъюнкцию (умножить каждую цифру IP-адреса узла на соответствующую цифру маски):

IP-адрес узла 11011010.10001001.11011010.10001001
Маска 11111111.11111111.11111000.00000000
Адрес сети 11011010.10001001.11011000.00000000

Теперь для получения ответа переведем получившееся двоичное число обратно в десятичную систему.

Адрес сети: 11011010.10001001.11011000.00000000 = 218.137.216.0. Если записать этот закодированный с помощью букв из таблицы (см. выше условие задачи), то получим:

218.137.216.0 = CEDH.

Обратим внимание вот на что: так как первые два числа в маске в нашем примере равны 255, то при поразрядном умножении первые два числа маски не изменятся (218 и 137), поэтому переводить в двоичную систему можно было только последние два числа IP-адреса узла и маски.

Ответ: CEDH

Пример 2.

Доступ к файлу ftp.net , находящемуся на сервере txt.org, осуществляется по протоколу http. В таблице фрагменты адреса файла закодированы буквами от А до Ж. Запишите последовательность этих букв, кодирующую адрес указанного файла в сети Интернет.

A .net
Б ftp
В ://
Г http
Д /
Е .org
Ж txt

Решение.

Вспомним общий вид адреса файла в интернете:

<протокол>://<доменное имя (или IP-адрес)>/<URL‐путь>/<Имя файла>

У нас протокол http, доменное имя (другими словами – сервер) txt.org, имя файла ftp.net. Соберем из них полный адрес:

http://txt.org/ftp.net

Важно не забыть, что протокол и сервер разделены знаками «://», а между сервером и названия файла ставится «/».

Теперь по таблице аккуратно выпишем буквы фрагментов ардеса, получим

ГВЖЕДБА.

Ответ: ГВЖЕДБА

Пример 3.

Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-адресе компьютера для адреса компьютера в подсети, имеют значение 0.

Если маска подсети 255.255.255.192 и IP-адрес компьютера в сети 10.18.134.220, то номер компьютера в сети равен_____

Решение.

Заметьте, что в этой задаче требуется найти не адрес сети, а номер компьютера в сети. Нужно помнить, что в маске сети в двоичной записи сначала стоят единицы, а потом – нули. Та часть IP-адреса, которая соответствует единичным битам маски, относится к адресу сети, а часть, соответствующая нулевым битам маски – это числовой адрес узла (тот самый номер компьютера в сети, который нам нужен).

Видим, что первые 3 числа в маске равны 255, т.е. в двоичном представлении это восемь единиц. Значит, первые три числа из IP-адреса компьютера точно не относятся к номеру компьютера в сети.

Переведем последнее, четвертое, число из IP-адреса компьютера и маски.

IP-адрес компьютера
(последний байт)
11011100
Маска (последний байт) 11000000

Выше голубым цветом выделены нулевые биты маски и соответствующие им биты IP-адреса, определяющие номер компьютера в сети: 011100 = 28.

Ответ: 28

Пример 4.

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданным IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 119.83.208.27 адрес сети равен 119.83.192.0. Каково наибольшее возможное количество единиц в разрядах маски?

Решение.

Заметим что первые два байта (119 и 83) адресов совпадают, значит, в маске в этих двух байтах все единицы (это 8 + 8 = 16 единиц).

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

208 = 11010000,

192 = 11000000.

Помним, что после применения маски (поразрядную конъюнкцию) к адресу узла мы должны получить адрес сети.

IP-адрес узла 11010000
Маска 11?00000
Адрес сети 11000000

Очевидно, что первые два бита должны после поразрядной конъюнкции остаться единицами, поэтому в маске на этом месте смело пишем единицы. В 4 слева бите видим, что единица в IP-адресе узла превратилась в 0 в адресе сети, значит, в маске на этом место должен стоять ноль. Так как в маске всегда сначала идут только единицы, а потом только нули, то и все биты после четвертого обязательно будут нулями. Остался третий бит, сейчас на его месте мы написали «?». Здесь может быть как 0, так и 1. Но по условию нас просят найти такую маску, в которой наибольшее возможное количество единиц, поэтому на этом месте напишем 1, получим такой байт: 11100000. Это третий бит маски, до него все единицы, после него – все нули. Получаем такую маску:

11111111.11111111.11100000.00000000

Количество единиц равно 8 + 8 + 3 = 19.

Ответ: 19