Главная Дока Микро-80 Радио-86РК ЮТ-88 Орион-128 Ссылки Новости Письмо

Адресация

Чтобы узлы могли идентифицировать себя в такой одноранговой среде, им присваиваются явные адреса, которые обозначают не только компьютер, но и сегмент сети, в котором он находится. Например, адрес 192.123.004.010 соответствует узлу номер 10 в сети 192.123.004. У другого узла в этом же сегменте может быть номер 20 и т.д. Сети и узлы в них это отдельные объекты с отдельными номерами.

В этом примере хост 10 можно с помощью другого сетевого адаптера подключить к сети 192.123.005. Тогда он будет функционировать как маршрутизатор между сетями 192.123.004 и 192.123.005. Маршрутизаторы выполняют передачу потоков данных между сетями. Узел, которому нужно передать данные на другой узел в другой сети, посылает эти данные на маршрутизатор, осуществляющий передачу их на узел-адресат. Если адресат находится не в ближайшей сети, то маршрутизатор посылает данные на другой маршрутизатор. Такая схема сетевой маршрутизации позволяет устройствам удерживать расходы локальных сетевых ресурсов на низком уровне. В противном случае локальным системам пришлось бы запоминать путь к каждому узлу, для чего потребовались бы колоссальные ресурсы процессора и памяти. Сетевая маршрутизация требует гораздо меньших усилий со стороны конечных узлов.

Адрес узла представляет собой 32-разрядное двоичное число (например, 1100000001111011 00000100 00001010). Для удобства оно разбивается на четыре восьмиразрядных поля, называемых октетами. ТСР/1Р представляет эти двоичные октеты их десятичными эквивалентами (в данном случае это 192.123.004.010), что очень облегчает людям жизнь (для компьютера работа с 32-разрядными двоичными строками, может быть, и не составляет особого труда, но вот для человека

Эти четыре октета в разных сетях обозначают разные вещи. В некоторых организациях создается одна большая сеть, но с миллионами узлов. Здесь первый октет адреса используется для обозначения сети, а остальные три октета — для обозначения отдельных рабочих станций. Такой адрес называют адресом класса А. Самые частые потребители адресов класса А — поставщики сетевых услуг (провайдеры), которые обслуживают очень большие сети с тысячами конечных пунктов.

В некоторых организациях могут быть тысячи узлов, включенных в состав нескольких сетей. В таких случаях используются адреса класса В, в которых первые два октета (16 битов) используются для обозначения сети, а последние два — для обозначения отдельных узлов. Наиболее известные потребители адресов класса В — университеты и крупные учреждения.

Наконец, наиболее часто используется адрес класса С, в котором первые три октета (или 24 бита) служат для обозначения сегмента, а последний октет — для обозначения рабочих станций. Такие адреса лучше всего подходят для случая, когда имеется множество отдельных сетей, в состав каждой из которых входит всего несколько десятков узлов. Адреса такого типа чаще всего встречаются в локальных сетевых средах, где в одном сетевом сегменте в среднем бывает около 40 узлов.

При соединении сети класса А с сетью класса В маршрутизатору необходимо сообщить, как он должен отличать одну сеть от другой. В противном случае он подумает, что трафик, исходящий из сети класса С и предназначенный для узла класса А, можно идентифицировать по последнему октету. На самом же деле узел класса А обозначается последними тремя октетами, а это большая разница. Не зная этого, маршрутизатор попытается найти трехоктетную сеть, к которой подключен однооктетный хост. На самом же деле ему нужно послать данные в однооктетную сеть, в которой находится трехоктетный хост.

Стек протоколов TCP/IP использует первые три бита первого октета для идентификации класса сети, позволяя устройствам автоматически распознавать соответствующие типы адресов. У адресов класса А первый бит установлен в 0, а остальные семь битов служат для идентификации сетевой части адреса (как вы помните, в адресах класса А первый октет служит для обозначения сети, а остальные три — для обозначения узлов). Поскольку можно использовать только семь битов, максимально возможное количество сетей — 128. Номера сетей 000 и 127 зарезервированы для использования программным обеспечением, поэтому это число уменьшается до 126 (001—126). Для обозначения узлов можно использовать 24 бита, поэтому для каждой из этих сетей максимальное число узлов составляет 16777216.

У адресов класса В первый бит всегда устанавливается в 1, а второй в 0. Поскольку для обозначения сетей здесь используются два октета, то для каждого сетевого сегмента остается, таким образом, 14 битов. Следовательно, максимально возможное число адресов этого класса — 16384, в диапазоне от 128.001 до 191.254 (номера 000 и 255 зарезервированы).

В адресах класса С первые два бита всегда равны 1, а третий установлен в 0. В этих адресах для обозначения сетей используются первые три октета, следовательно, остается 21 бит. Диапазон возможных номеров сетей — от 192.001.001 до 223.254.254, или 2097152 сегмента. При этом, однако, для обозначения узлов остается только один октет, поэтому в каждом сегменте может быть всего 254 устройства.

Не хватает адресов?

Если сложить все, что мы насчитали, получится свыше 4,7 млрд. адресов хостов. Это вроде бы очень много, но, к сожалению, четырехоктетной структуре присущи серьезные ограничения. Каждый раз, когда какой-то организации назначается адрес класса А, с ним уходит около 17 млн. адресов хостов. Если назначить все 126 адресов класса А, то свыше 3 млрд. из наличных 4,7 млрд. адресов окажутся занятыми. Если назначить все 16000 адресов класса В, уйдет еще миллиард. При этом не важно, используются ли выделенные адреса или нет: все они назначены конкретной сети и повторно использоваться не могут.

Самая большая проблема, однако, связана с классом С. Тому есть две причины. Во-первых, этих адресов меньше всего (имеется лишь около 500 млн. адресов узлов). Во-вторых, эти адреса самые популярные, потому что удовлетворяют размерам большинства локальных сетей. Каждый раз, когда сетевому сегменту выделяется адрес класса С, с ним уходят 254 возможных адреса узлов. Вспомним, что для каждой отдельной сети нужен новый номер. Поэтому люди, у которых три сегмента и всего 60 узлов, тратят впустую более 700 возможных адресов рабочих станций (3 сегментах 254 адреса узлов = 762 адреса - 60 активных узлов = 702 незадействованных адреса). Понятно, что при таких темпах наличные хост-номера скоро закончатся (при имеющемся темпе "расходования" наличные адреса фактически уже почти закончились!).

Для некоторых читателей логика наличия различных классов адресов может показаться в лучшем случае туманной. По действующей схеме может быть всего 2113662 сети. Если бы для обозначения сегмента все сети применяли первые 24 бита (не используя "классовые" биты), то максимальное число сетей составило бы 16777216, по 254 узла в каждой.

Вспомним, однако, что сети ТСР/IР изначально рассчитаны на использование маршрутизаторов. Естественно, узлам и маршрутизаторам проще запомнить несколько сетей, чем множество. Необходимость обработки 16 миллионов адресов сетей быстро переполнила бы базы данных маршрутизаторов, и сетевой трафик существенно замедлился бы. Наличие классов сетей позволяет маршрутизаторам легко работать с большими сетями, причем без ущерба для производительности.

Следует также помнить, что первоначально Internet состояла в основном из крупных сетей, соединенных друг с другом. Было удобно дать один адрес сети milnet (это сеть несекретных военных компьютеров), а другой — сети NSFNet (это сеть Национального научного фонда США). Благодаря этому маршрутизаторам, для того чтобы передавать данные буквально на миллионы хост-машин, достаточно было запомнить только адрес другого маршрутизатора.

Нас, тем не менее, очень пугают потенциальные побочные эффекты истощения запаса адресов. При отсутствии адресов ни одна новая организация не сможет подключиться к Internet, а существующие сети не смогут расширяться. Для решения большинства этих проблем разработана новая версия протокола IP, но до того момента, как протокол IPng (или IP v6) будет готов для применения на коммерчески доступном оборудовании, что позволит использовать этот протокол в масштабах предприятия, пройдет еще несколько лет.

Маски подсетей

Есть, впрочем, и другие способы более полного использования сетевых номеров. Вспомним, что 32-разрядный адрес делится на четыре логических восьмиразрядных октета. Ничто не мешает вам изменить эту структуру. Двоичные значения самого адреса изменить, конечно, нельзя, но можно изменить способ, которым ваше ПО интерпретирует его. Это делается при помощи маски подсети.

Рассмотрим, например, адрес хоста 192.123.004.010. Это адрес класса С, в котором первые 24 бита обозначают номер сети (3 бита — идентификатор класса, 21 бит — для адресации). Остальные 8 битов обозначают хост. Можно установить сетевую маску так, чтобы первые 30 битов обозначали сеть, а остальные два — хост.

Поскольку первые 24 бита адреса класса С обозначают организацию, остальные 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. В табл. А2.2 приведены стандартные маски подсетей для различных классов адресов сетей.

Таблица А2.2. Стандартные маски подсетей

Класс

Маска подсети

А

В

С

11111111 00000000 00000000 00000000

11111111 11111111 00000000 00000000

11111111 11111111 11111111 00000000

Маска подсети узла должна применяться при обработке адреса маршрутизаторами. Если ранее маршрутизатор просто проверял, не совпадает ли адрес сети получателя, например 192.123.004, с адресом какой-либо непосредственно подсоединенной к маршрутизатору сети, то теперь он должен использовать маску подсети, чтобы выделить адрес сети получателя. При этом выполняется побитовая операция И для маски подсети и ТР-адреса. Если полученный в результате адрес не совпадает с адресом подсети, пакет направляется на другой маршрутизатор, которой проводит аналогичные операции.

Чтобы маска подсети работала, ее должны поддерживать все устройства данной подсети. Некоторые старые клиентские программы TCP/IP систему масок подсетей не поддерживают, поэтому не забудьте проверить этот момент. Кстати, некоторые пакеты прикладных программ для простоты конвертируют двоичные значения масок подсетей в их десятичные эквиваленты. Например, Windows NT показывает не стандартную маску подсети класса С, а десятичный эквивалент двоичных октетов, 255.255.255.0. Это сделано опять-таки для того, чтобы облегчить жизнь нам, людям.



(C) 2003-2010 www.danbigras.ru Наш адрес: info@danbigras.ru
Всё о старых компьютерах