Для того, чтобы компьютеры могли идентифицировать друг друга в информационно-вычислительной сети, им присваиваются явные адреса. Основными типами адресов являются следующие:
MAC-адрес, который также называют физическим адресом, Ethernet-адресом, присваивается каждому сетевому адаптеру при его производстве. Его размер - 6 байт.
Этот сетевой адрес является уникальным, - фирмам-производителям выделены списки адресов, в рамках которых они обязаны выпускать карты. Адрес записывается в виде шести групп шестнадцатеричных цифр по две в каждой (шестнадцатеричная запись байта). Первые три байта называются префиксом (что определяет 224 различных комбинаций или почти 17 млн адресов), и именно они закреплены за производителем.
Адаптер "слушает" сеть, принимает адресованные ему кадры и широковещательные кадры с адресом FF:FF:FF:FF:FF:FF и отправляет кадры в сеть, причем в каждый момент времени в сегменте узла сети находится только один кадр.
Собственно, MAC-адрес соответствует не компьютеру, а его сетевому интерфейсу. Таким образом, если компьютер имеет несколько интерфейсов, то это означает, что каждому интерфейсу будет назначен свой физический адрес. Каждой сетевой карте соответствует собственный MAC-адрес и IP-адрес, уникальный в рамках глобальной сети.
MAC-адреса используются на физическом и канальном уровнях, т.е. в "однородной" среде. Для того, чтобы могли связываться друг с другом компьютеры, входящие в большие составные сети, используется другой вид адресов - IP-адреса.
IP-адрес является основным видом адресации в Internet. Он обозначает не только компьютер, но и сегмент сети, в котором находится данный компьютер. Например, адрес 192.123.004.010 соответствует узлу номер 10 в сети 192.123.004. У другого узла в этом же сегменте может быть номер 20 и т.д. Сети и узлы в них - это отдельные объекты с отдельными номерами.
Эти четыре октета в разных сетях обозначают разные вещи. В некоторых организациях создается одна большая сеть, но с миллионами узлов. Здесь первый октет адреса используется для обозначения сети, а остальные три октета - для обозначения отдельных рабочих станций. Такой адрес называют адресом класса А. Самые частые потребители адресов класса А - поставщики сетевых услуг (провайдеры), которые обслуживают очень большие сети с тысячами конечных пунктов.
В некоторых организациях могут быть тысячи узлов, включенных в состав нескольких сетей. В таких случаях используются адреса класса В, в которых первые два октета (16 битов) используются для обозначения сети, а последние два - для обозначения отдельных узлов. Наиболее известные потребители адресов класса В - университеты и крупные учреждения.
Наконец, наиболее часто используется адрес класса С, в котором первые три октета (или 24 бита) служат для обозначения сегмента, а последний октет - для обозначения рабочих станций. Такие адреса лучше всего подходят для случая, когда имеется множество отдельных сетей, в состав каждой из которых входит всего несколько десятков узлов. Адреса такого типа чаще всего встречаются в локальных сетевых средах, где в одном сетевом сегменте в среднем бывает около 40 узлов.
При соединении сети класса А с сетью класса В маршрутизатору необходимо сообщить, как он должен отличать одну сеть от другой. В противном случае он подумает, что трафик, исходящий из сети класса С и предназначенный для узла класса, можно идентифицировать по последнему октету. На самом же деле узел класса А обозначается последними тремя октетами - а это большая разница. Не зная этого, маршрутизатор попытается найти трехоктетную сеть, к которой подключен однооктетный хост. На самом же деле ему нужно послать данные в однооктетную сеть, в которой находится трехоктетный хост.
Стек протоколов TCP/IP использует первые три бита первого октета для идентификации класса сети, позволяя устройствам автоматически распознавать соответствующие типы адресов. У адресов класса А первый бит установлен в 0, а остальные семь битов служат для идентификации сетевой часть адреса (как вы полмните, в адресах класса А первый октет служит для обозначения сети, а остальные три - для обозначения узлов). Поскольку можно использовать только семь битов, максимально возможное количество сетей - 128. Номера сетей 000 и 127 зарезервированы для использования программным обеспечением, поэтому это число уменьшается до 126 (001 - 126). Для обозначения узлов можно использовать 24 бита, поэтому для каждой из этих сетей максимальное число узлов составляет 16 777 216.
У адресов класса В первый бит всегда устанавливается в 1, а второй в 0. Поскольку для обозначения сетей здесь используются два октета, то для каждого сетевого сегмента остается, таким образом, 14 битов. Следовательно, максимально возможное число адресов этого класса - 16 384, в диапазоне от 128.001 до 191.254 (номера 000 и 255 зарезервированы).
В адресах класса С первые два бита всегда равны 1, а третий установлен в 0. В этих адресах для обозначения сетей используются первые три октета, следовательно, остается 21 бит. Диапазон возможных номеров сетей - от 192.001.001 до 223.254.254, или 2 097 152 сегмента. При этом, однако, для обозначения узлов остается только один октет, поэтому в каждом сегменте может быть всего 254 устройства.
В таблице 1 приведены характеристики адресов сетей различных классов. Адреса класса D предназначены для широковещательной рассылки пакетов сразу группе машин. Адреса класса Е пока не используются. Предполагается, что со временем они будут задействованы с целью расширения стандарта.
Таблица 1. Характеристика классов IP-адресов
Класс сети | Байт 1 | Байт 2 | Байт 3 | Байт 4 | |
А | 0 | Номер сети | Номер хоста | ||
B | 10 | Номер сети | Номер хоста | ||
C | 110 | Номер сети | Номер хоста | ||
D | 1110 | ||||
E | 11110 |
Среди IP-адресов несколько зарезервировано под специальные случаи использования (табл. 2). Так, значение первого октета 127 зарезервировано для служебных целей, в основном, для тестирования сетевого оборудования, поскольку IP-пакеты, направленные на такой адрес, не передаются в сеть, а ретранслируются обратно управляющей надстройке сетевого программного обеспечения как только что принятые.
Таблица 2. Значение выделенных IP-адресов
IP-адрес | Значение |
0.0.0.0 | Данный компьютер |
Номер сети.0 | Данная IP-сеть |
0.0.0.Номер узла | Узел в данной локальной сети |
255.255.255.255 | Все узлы в данной локальной сети |
Номер сети.255 | Все узлы указанной IP-сети |
Централизованным распределением IP-адресов занимаются государственные организации. В США - Стенфордский международный научно-исследовательский институт (Stanford Research Institute), расположенный в г. Мэнло-Парк, штат Калифорния. Услуга по присвоению новой локальной сети IP-адресов бесплатная, и занимает она приблизительно неделю.
В небольших локальных сетях, использующих стек TCP/IP, можно назначать IP-адреса компьютерам произвольно - в том случае, если данные компьютеры не имеют непосредственного (прямого) выхода в Internet
Часто перед администраторами локальных сетей встает необходимость разбиения вверенной им сети на несколько подсетей. Делается это с помощью маски подсети. Маска подсети заставляет сетевое программное обеспечение иначе интерпретировать IP-адреса машин, входящих в сеть.
Рассмотрим, например, адрес хоста 192.123.004.010. Это адрес класса С, в котором первые 24 бита обозначают номер сети. Остальные 8 битов обозначают хост. Можно установить сетевую маску так, чтобы первые 25 битов обозначали сеть, а остальные 7 - хост.
Последние 8 битов администратор локальной сети может использовать так, как ему нужно. Можно их использовать обычным образом, для обозначения хост-машин. Но есть и другой вариант: назначить некоторые из оставшихся 8 битов подсетям. По сути дела, сетевая часть адреса получает еще одно поле, а диапазон номеров хостов сокращается.
Рассмотрим воображаемую компанию, Windows Inc., которая использует и сети Ethernet, и кольцевые сети с маркерным доступом. Ей выделен, однако, только один сетевой адрес класса С, 192.123.004. Вместо того чтобы использовать последний октет для обозначения 254 хостов в одной сети, компания решила ввести в адрес маску подсети, "позаимствовав" первый бит последнего октета. В результате создаются две подсети по 128 возможных хост-номера в каждой.
Изучая свои сетевые номера, Windows Inc. видит следующее:
Сегмент | Адрес сети | Адреса узлов* |
Ethernet | 192.123.004 | 001-127 |
Token Ring | 192.123.004 | 128-254 |
*Номера 000 и 255 зарезервированы.
Следует, однако учесть, что устройства в сети не выполняют эту логическую разбивку автоматически. Основываясь на идентификаторе класса С в начале адреса, они продолжают считать, что последние 8 битов адреса обозначают хост. Поэтому о принятой маске нужно сообщить всем устройствам в сегменте сети.
В маске подсети используется очень простой алгоритм. Если бит маски установлен в 1, это часть номера сети. Если бит маски установлен в 0, это часть номера хоста. Следовательно, маска подсети для приведенного выше примера имеет вид 11111111 11111111 11111111 10000000.
В таблице 3 приведены стандартные маски подсетей для различных классов адресов сетей.
Таблица 3. Стандартные маски подсетей
Класс сети |
Маска подсети | |
двоичное представление | десятичное представление | |
А | 11111111 00000000 00000000 00000000 | 255.0.0.0 |
В | 11111111 11111111 00000000 00000000 | 255.255.0.0 |
С | 11111111 11111111 11111111 00000000 | 255.255.255.0 |
Маска подсети должна применяться при обработке адреса маршрутизаторами. Если ранее маршрутизатор просто проверял, не совпадает ли адрес сети получателя, например, 192.123.004, с адресом какой-либо непосредственно подсоединенной к маршрутизатору сети, то теперь он должен использовать маску подсети, чтобы выделить адрес сети получателя. Чтобы маска подсети работала, ее должны поддерживать все устройства данной подсети.
Если сложить все возможные IP-адреса, то получится свыше 4,7 млрд. адресов хостов. Это очень много, но, к сожалению, четырехоктетной структуре присущи серьезные ограничения. Каждый раз, когда какой-то организации назначается адрес класса А, с ним уходит около 17 млн. адресов хостов. Если назначить все 126 адресов класса А, то свыше 3 млрд. из наличных 4,7 млрд. адресов окажутся занятыми. Если назначить все 16000 адресов класса В, уйдет еще миллиард. При этом не важно, используются ли выделенные адреса или нет: все они назначены конкретной сети и повторно использоваться не могут.
Самая большая проблема, однако, связана с классом С. Тому есть две причины. Во-первых, этих адресов меньше всего (имеется лишь около 500 млн. адресов узлов). Во-вторых, эти адреса самые популярные, потому что удовлетворяют размерам большинства локальных сетей. Каждый раз, когда сетевому сегменту выделяется адрес класса С, с ним уходят 254 возможных адреса узлов. Вспомним, что для каждой отдельной сети нужен новый номер. Поэтому люди, у которых три сегмента и всего 60 узлов, тратят впустую более 700 возможных адресов рабочих станций (3 сегмента ´ 254 адреса узлов = 762 адреса - 60 активных узлов = 702 незадействованных адреса). Понятно, что при таких темпах "расходования" наличные хост-номера фактически уже закончились.
По действующей схеме (протокол IPv4) может быть всего 2113662 сети. Если бы для обозначения сегмента все сети применяли первые 24 бита (не используя "классовые" биты), то максимальное число сетей составило бы 16777216, по 254 узла в каждой.
Вспомним, однако, что сети TCP/IP изначально рассчитаны на использование маршрутизаторов. Естественно, узлам и маршрутизаторам проще запомнить несколько сетей, чем множество. Необходимость обработки 16 миллионов адресов сетей быстро переполнила бы базы данных маршрутизаторов, и сетевой трафик существенно замедлился бы. Наличие классов сетей позволяет маршрутизаторам легко работать с большими сетями, причем без ущерба для производительности.
Следует также помнить, что первоначально Internet состояла, в основном, из крупных сетей, соединенный друг с другом. Было удобно дать один адрес сети milnet (это сеть несекретных военных компьютеров), а другой - сети NSFnet (это сеть Национального научного фонда США). Благодаря этому маршрутизаторам, для того чтобы передавать данные буквально на миллионы хост-машин, достаточно было запомнить только адрес другого маршрутизатора.
На сегодняшний день, однако истощение запаса адресов порождает огромные проблемы. При отсутствии адресов ни одна новая организация не сможет подключиться к Internet, а существующие сети не смогут расширяться. Для решения большинства этих проблем разработана новая версия протокола IP - IPv6 (или IPng - IP next generation).
IP-адресация удобна для машинной обработки таблиц маршрутов, однако сложна для использования человеком. Система доменных имен (Domain Name System - DNS) позволяет присваивать компьютерам легко запоминаемые имена, например, yahoo.com, и отвечает за перевод этих имен в IP-адреса.
DNS строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet. В 80-е гг. были определены первые домены (национальные, США) верхнего уровня: gov, mil, edu, com, net. Позднее появились национальные домены других стран: uk (Великобритания), jp (Япония), au (Австрия), cn (Китай) и т.п. Для СССР был выделен домен su, однако после приобретения республиками Союза суверенитета многие из них получили собственные домены: ua - Украина, ru - Россия и т.п.
В настоящее время существуют домены верхнего уровня com - для коммерческих компаний, edu - для школ и университетов, org - для прочих организаций, net - для сетевых организаций и т.д.
Вслед за доменами верхнего уровня следуют домены, определяющие либо регионы, либо организации; следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организациях.
Таким образом, доменное имя компьютера имеет, по меньшей мере, два уровня доменов. Каждый уровень отделяется от другого точкой. Слева от домена верхнего уровня располагается другое имя и, возможно, не одно. Все, что находится слева, является поддоменом для общего домена. Так, например, в имени somesite.russia.ru слово somesite является поддоменом russia, который, в свою очередь, является поддоменом домена ru.
DNS-серверы, реализующие перевод IP-адресов в доменные и обратно, устанавливаются обычно на машинах, которые являются шлюзами для локальных сетей. Вообще говоря, сервер имен может быть установлен на любой компьютер локальной сети. При выборе машины для установки сервера имен следует принимать в расчет то обстоятельство, что многие реализации серверов держат базы данных имен в оперативной памяти. При этом часто подгружается информация и с других серверов. Все это может вызвать задержки при разрешении запроса на адрес по имени машины, если для сервера имен будет использоваться маломощный компьютер.
В систему URL заложены следующие принципы:
Формат URL включает:
Для каждого вида протокола приложений выбирается свое подмножество полей из представленного выше списка. Прежде чем рассмотреть различные схемы представления адресов, приведем пример простого адреса URL:
http://astra.net.ru/master/index.html
В данном случае путь состоит из доменного адреса машины, на которой установлен сервер HTTP, и пути от корня дерева сервера к файлу index.html.
Кроме подобной полной записи URL существует упрощенная, которая предполагает, что к моменту ее использования многие основные компоненты адреса ресурса уже определены (протокол, адрес машины в сети, некоторые элементы пути). В таком случае достаточно указывать только адрес, относительный определенных базовых ресурсов - относительный адрес.
Рассмотрим несколько различных схем URL, с помощью которых можно обратиться к различным информационным ресурсам Internet.
Приведем несколько примеров URL для схемы http:
Существует еще несколько схем URL. Однако они реально на практике не используются или находятся в стадии разработки, поэтому останавливаться на них мы не будем.