2.3 Основы адресации в ip-сетях
Одной из главных проблем, которую нужно разрешить при объединении компьютеров в сеть, является проблема их адресации. К адресу узла сети и схеме его назначения можно предъявить несколько требований [19]:
1. Адрес должен уникально идентифицировать компьютер в сети любого масштаба.
2. Адрес должен иметь иерархическую структуру, удобную для построения больших сетей. Эту проблему хорошо иллюстрируют международные почтовые адреса, которые позволяют почтовой службе, организующей доставку писем между странами, пользоваться только названием страны адресата и не учитывать название его города, а тем более улицы. В больших сетях, состоящих из многих тысяч узлов, отсутствие иерархии адреса может привести к крупным издержкам: конечным узлам и коммуникационному оборудованию придется оперировать с таблицами адресов, состоящими из тысяч записей.
3. Адрес должен быть удобен для пользователей сети, а это значит, что он должен иметь символьное представление и, по возможности, смысловую нагрузку.
4. Адрес должен иметь по возможности компактное представление, чтобы не перегружать память коммуникационной аппаратуры – сетевых адаптеров, коммутаторов, маршрутизаторов и т. п.
Нетрудно заметить, что эти требования противоречивы: например, адрес, имеющий иерархическую структуру, скорее всего, будет менее компактным, чем неиерархический (такой адрес часто называют «плоским», то есть не имеющим структуры). Символьный же адрес, вероятно, потребует больше памяти, чем адрес-число.
Так как все перечисленные требования трудно совместить в рамках какой-либо одной схемы адресации, то на практике обычно используется сразу несколько схем, так что компьютер одновременно имеет несколько адресов, каждый из которых работает в соответствующей ситуации, а чтобы не возникало путаницы и компьютер всегда однозначно определялся своим адресом, используются специальные вспомогательные протоколы, которые по адресу одного типа могут определить адреса других типов.
В настоящее время известны следующие системы адресации:
1) составные числовые адреса;
В данном параграфе мы подробно разберем достоинства первой системы адресации (остальные системы будут рассмотрены в следующем параграфе).
Составные числовые адреса предназначены для однозначной адресации компьютера в сети любого масштаба, состоящей из подсетей. В адресах такого типа поддерживается двухуровневая иерархия, адрес делится на старшую часть – номер сети – и младшую – номер узла. Такое деление позволяет передавать сообщения между сетями только на основании номера сети, а номер узла используется только после доставки сообщения в нужную сеть; точно так же, как название улицы рассматривается почтальоном только после того, как письмо доставлено в нужный город. Типичные представители адресов этого типа – IP-адреса. Аналогично протоколам существуют адреса IPv4 и IPv6.
2.3.1 Адресация iPv4
Адреса IPv4 при выражении в десятичной системе используют точечное десятичное представление и принимают форму n.n.n.n, в которой n для каждого значения неизменно находится в диапазоне от 0 до 255. Так, IP-адрес крупнейшего российского почтового сервера в сети Интернет www.mail.ru имеет вид 194.67.57.26. Существуют некоторые ограничения на использование чисел: первое число в IP-адресе должно находиться в диапазоне от 1 до 223, а последнее – от 1 до 254, два числа в середине IP-адреса могут находиться в диапазоне от 0 до 255. Каждое из четырех чисел состоит из 8 бит и в стандартной терминологии IP-адресов называется октетом (octet). Следовательно, каждый из октетов представляет собой восьмизначное двоичное число, а IP-адрес целиком – тридцатидвухбитовую комбинацию нулей и единиц. Например, IP-адрес 128.10.2.30 имеет представление в двоичном формате: 10000000.00001010.00000010.00011110.
Запись адреса не предусматривает специального разграничительного знака между номером сети и номером узла. Вместе с тем при передаче пакета по сети часто возникает необходимость разделить адрес на эти две части. Так, маршрутизация, как правило, осуществляется на основании номера сети, поэтому каждый маршрутизатор, получая пакет, должен прочитать в соответствующем поле заголовок адрес назначения и выделить из него номер сети. Существует несколько подходов для определения, какая часть из 32 бит, отведенных под IP-адрес, относится к номеру сети (сетевая часть адреса), а какая – к номеру узла (хостовая часть адреса). Мы рассмотрим два основных подхода для адресации с помощью IPv4 [31]:
Для того чтобы проанализировать названные выше подходы адресации, необходимо определить понятие Маска подсети, которое обозначает число, применяемое в паре с IP-адресом, причем двоичная запись маски содержит непрерывную последовательность единиц в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Граница между последовательностями единиц и нулей в маске соответствует границе между номером сети и номером узла в IP-адресе.
При упрощенном подходе используется двухуровневая адресация, так как выделяется фиксированная граница для разделения адреса на сетевую и хостовую часть, то есть адрес компьютера состоит только из двух частей: сетевой и хостовой. Все 32-х-битовое поле адреса заранее делится на две части не обязательно равной, но фиксированной длины, в одной из которых всегда будет размещаться номер сети, а в другой – номер узла. Маска подсети принимает только 2 значения: либо 0, либо 255, которые устанавливаются в следующем порядке: 255 устанавливается под октетами, описывающими адрес сети (постоянная часть), а 0 устанавливается под октетами, описывающими адрес узла (переменная часть). Приведем пример двухуровневой архитектуры. Например, IP-адреса 128.10.2.30 и 128.10.3.30 имеют следующее представление в двоичном формате:
Так как у указанных IP-адресов изменяются последние два октета, то маска подсети будет выглядеть так: 255.255.0.0, а в двоичном виде выглядит – 11111111.11111111.00000000.00000000. Сопоставление адресов и маски подсети представлено в табл. 2.4.
Таблица 2.4 – Деление IP-адреса в соответствии с двухуровневой архитектурой
2. Адресация компьютеров в сети
Интернет представляет собой всемирную сеть, информация в которой хранится на серверах. Серверы имеют свои адреса и управляются специализированными программами. Доступ отдельных пользователей к информационным ресурсам Интернет обычно осуществляется по телефонной сети через провайдера (организация, имеющая модемный пул для соединения с клиентами и выхода в Интернет) или корпоративную сеть (корпоративные сети, построенные по принципам Интернет, называют Интранет).
Ресурсами Internet считаются серверы, сайты, страницы, каталоги, файлы.
Основными типами адресов являются следующие:
- адрес Ethernet;
- IP-адрес (основной адрес в Internet);
- доменные адреса;
- почтовые адреса;
- номера портов;
- универсальный локатор (идентификатор) сетевого ресурса (URL).
Адрес Ethernet. Internet поддерживает разные физические среды, из которых наиболее распространенным средством организации локальных сетей является технология Ethernet.
В локальной сети обмен осуществляется кадрами Ethernet, каждый из которых содержит адрес назначения, адрес источника, поле типа и данные. Каждый сетевой адаптер (интерфейс, карта Ethernet — физическое устройство, подключающее компьютер к сети) имеет свой сетевой адрес, размер которого составляет 6 байт.
Адаптер «слушает» сеть, принимает адресованные ему кадры и широковещательные кадры и отправляет кадры в сеть, причем в каждый момент времени в сегменте узла сети находится только один кадр.
Собственно Ethernet-адрес соответствует не компьютеру, а его сетевому интерфейсу. Таким образом, если компьютер имеет несколько интерфейсов, то это означает, что каждому интерфейс будет назначен свой Ethernet-адрес. Каждой карте Ethernet соответствуют Ethernet-адрес и IP-адрес, которые уникальны в рамках Internet.
IP-адрес представляет собой 4-байтовую последовательность, каждый байт записывается в виде десятичного числа. Адрес состоит из двух частей: адреса сети и номера хоста. Обычно под хостом понимают компьютер, подключенный к Internet, однако это может быть и принтер с сетевой картой, или вообще любое устройство, которое имеет свой сетевой интерфейс.
Существует несколько классов адресов, различающихся количеством битов, отведенных на адрес сети и адрес хоста в сети.
Назначение классов IP-адресов:
А — использование в больших сетях общего доступа;
В — в сетях среднего размера (большие компании, научно-исследовательские институты, университеты);
С — в сетях с небольшим числом компьютеров (небольшие компании и фирмы).
Для установления соответствия между IP-адресом и адресом Ethernet в локальных сетях используется протокол отображения адресов — Address resolution Protocol (ARP). Отображение адресов осуществляется в ARP-таблице, которая необходима, так как адреса выбираются произвольно и нет какого-либо алгоритма для их вычисления.
ARP-таблица заполняется автоматически; если нужного адреса в таблице нет, то в сеть посылается широковещательный запрос «чей это IP-адрес?», который получают все сетевые интерфейсы, но отвечает только владелец адреса.
Система доменных имен. Числовая адресация удобна для машинной обработки таблиц маршрутов, но она неприемлема для использования человеком.
По мере роста сети была разработана система доменных имен — DNS (Domain Name System), которая строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet. В 80-е гг. были определены первые домены (США) верхнего уровня: gov, mil, edu, com, net. Позднее появились национальные домены других стран: uk, jp, au, ch и т. п. Для СССР был выделен домен su, однако после приобретения республиками союза суверенитета, многие из них получили свои собственные домены: by, ru, la, li и т. п. Однако домен su был сохранен, и таким образом, например, в Москве существуют организации с доменными именами kiae.su и msk.ru.
Вслед за доменами верхнего уровня следуют домены, определяющие либо регионы (msk), либо организации (kiae); следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организаций.
Наиболее популярной программой поддержки DNS является BIND, или Berkeley Internet Name Domain, — сервер доменных имен, реализованный в университете Беркли, который широко применяется в Internet. Он обеспечивает поиск доменных имен и IP-адресов для любого узла сети. BIND обеспечивает также рассылку сообщений электронной почты через узлы Internet.
Вообще говоря, сервер имен может быть установлен на любой компьютер локальной сети. При выборе машины для установки сервера имен следует принимать в расчет то обстоятельство, что многие реализации серверов держат базы данных имен в оперативной памяти.
Почтовые адреса. В Internet принята система адресов, которая базируется на доменном адресе машины, подключенной к сети. Почтовый адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком «коммерческого AT — @», и доменного адреса машины, который записывается после знака «@».
Различают следующие типы адресов:
• адреса SMTP — стандартные для Internet:
Система универсальных идентификаторов ресурсов (URI/URL) разработана для использования в системах WWW, и в ее основу заложены следующие принципы:
- Расширяемость — новые адресные схемы должны были легко вписываться в существующий синтаксис URI; была достигнута за счет выбора определенного порядка интерпретации адресов, который базируется на понятии «адресная схема». Идентификатор схемы стоит перед остатком адреса, отделен от него двоеточием и определяет порядок интерпретации остатка.
- Полнота — по возможности любая из существовавших схем должна была описываться посредством URI.
- Читаемость — адрес должен легко пониматься человеком, что вообще характерно для технологии WWW — документы вместе с ссылками могут разрабатываться в обычном текстовом редакторе.
- схему адреса (тип протокола доступа — http, gopher, wais, telnet, ftp и т. п.);
- IP- или доменный адрес машины;
- номер ТСР-порта;
- адрес ресурса на сервере (каталог или путь);
- имя HTML-файла и метку;
- критерий поиска данных.
Для каждого вида протокола приложений выбирается свое подмножество полей из представленного выше списка. Например, простой адрес URL:
В данном случае путь состоит из доменного адреса машины, на которой установлен сервер HTTP, и пути от корня дерева сервера к файлу index.html.
В качестве адреса машины допустимо использование и IP-адреса:
При указании адреса ресурса возможна ссылка на точку внутри файла HTML. Для этого вслед за именем документа может быть указана метка внутри HTML-документа:
Символ «#» отделяет имя документа от имени метки.