Компьютерные сети. Адресация в Интернете.
Для выполнения заданий по данной теме полезно знать следующие общие термины и правила.
Адрес страницы (или файла) в интернете представляет из себя уникальную ссылку, записанную по правилам 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
Этот адрес состоит из:
- протокола – 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