Глава 21. Banyan VINES
Глава 21. Banyan VINES.
Компания Banyan Virtual Network System (VINES)
реализовала систему
распределенной сети, базирующуюся
на семействе патентованных
протоколов, разработанных на
основе протоколов Xerox Network Systems (XNS)
компании XEROX (смотри главу 22 "XNS"). Среда
распределенной системы
обеспечивает прозрачный для
пользователя обмен информации
между клиентами (компьютерами
пользователя) и служебными
устройствами (компьютерами
специального назначения, которые
обеспечивают услуги, такие, как
файловое и принтерное
обслуживание). Наряду с NetWare
компании Novell, LAN Server компании IBM
и LAN Manager компании Microsoft, VINES
является одной из самых популярных
сред распределенной системы для
сетей, базирующихся на
микрокомпьютерах.
Комплект протоколов VINES
представлен на Рис. 21-1.
Два низших уровня комплекта
протоколов VINES реализованы с
помощью различных общеизвестных
механизмов доступа к носителю,
включая Управление информационным
каналом высшего уровня (HDLC) (смотри
Главу 12 "SDLC и его
производные"), Х.25 (смотри Главу
13 "Х.25"), Ethernet
(смотри Главу 5 "Ethernet/IEEE
802.3") и Тоken Ring (смотри Главу 6
"Token Ring/IEEE 802.5").
Для выполнения функций Уровня 3 (в
том числе маршрутизации в
об'единенной сети) VINES использует
Протокол межсетевого обмена VINES (VINES
Internetwork Protocol - VIP). VINES также
обеспечивает собственный Протокол
разрешения адреса (ARP), собственную
версию Протокола информации
маршрутизации (Routing Information Protocol - RIP),
которая называется Протоколом
корректировки маршрутизации (Routing
Update Protocol - RTP) и Протокол
управления Internet (ICP), который
обеспечивает обработку
исключительных состояний и
специальной информации о затратах
маршрутизации. Пакеты ICP, RTP и ARP
формируются в заголовке VIP.
Протокол межсетевого
обмена VINES (VIP)
Адреса сетевого уровня VINES являются
48-битовыми об'ектами,
подразделенными на сетевую (32 бита)
и подсетевую (16 битов) части.
Сетевой номер можно описать как
номер какого-нибудь служебного
устройства, т.к. он получается
непосредственно из ключа (key)
служебного устройства (аппаратного
модуля, который обозначает
уникальный номер и программные
опции для данного служебного
устройства). Подсетевая часть
адреса VINES лучше всего описывается
как номер хоста, т.к. он
используется для обозначения хоста
в сетех VINES. Рис. 21-2 иллюстрирует
формат адреса VINES.
Сетевой номер обозначает
логическую сеть VINES, которая
представлена в виде двухуровневого
дерева, корень которого находится в
узле обслуживания (service node). Узлы
обслуживания, которыми обычно
являются служебные устройства,
обеспечивают услуги резрешения
адреса и услуги маршрутизации
клиентам (client), которые являются
листьями этого дерева. Узел
обслуживания назначает адреса VIP
клиентам.
Когда какой-нибудь клиент
включает питание, он направляет
широковещательный запрос
служебным устройствам. Все
служебные устройства, которые
получают этот запрос, посылают
ответ. Клиент выбирает первый ответ
и запрашивает у данного служебного
устройства адрес подсети (хоста).
Служебное устройство отвечает
адресом, состоящим из его
собственного сетевого адреса
(полученного из его ключа),
об'единенного с адресом подсети
(хоста), который он выбрал сам.
Адреса подсети клиента обычно
назначаются последовательно,
начиная с 8001H. Адреса подсети
служебного устройства всегда 1.
Процесс выбора адреса VINES показан
на Рис. 21-3.
Динамичное назначение адреса не
является уникальным явлением в
индустрии сетей (AppleTalk также
использует этот процесс); однако
этот процесс определенно не
является таким обычным процессом,
как статическое назначение адреса.
Т.к. адреса выбираются
исключительно каким-нибудь одним
конкретным служебным устройством
(чей адрес является уникальным
вследствие уникальности
аппаратного ключа), вероятность
дублирования адреса (что является
потенциально опасной проблемой для
сети Internet Protocol (IP) и других
сетей) очень мала.
В схеме сети VINES все служебные
устройства с несколькими
интерфейсами в основном являются
роутерами. Клиенты всегда выбирают
свое собственное служебное
устройство в качестве роутера для
первой пересылки, даже если другое
служебное устройство, подключенное
к этому же кабелю, обеспечивает
лучший маршрут к конечному пункту
назначения. Клиенты могут узнать о
других роутерах, получая
переадресованные сообщения от
своего служебного устройства. Т.К.
клиенты полагаются на свои
служебные устройства при первой
пересылке маршрутизации, служебные
устройства VINES поддерживают
маршрутные таблицы, которые
помогают им находить отдаленные
узлы.
Маршрутные таблицы VINES состоят из
пар "хост/затраты", гдe хост
соответствует сетевому узлу, до
которого можно дойти, а затраты -
временной задержке в
миллисекундах, необходимой для
достижения этого узла. RTP помогает
служебным устройствам VINES находить
соседних клиентов, служебные
устройства и роутеры.
Все клиенты периодически
об'являют как о своих адресах
сетевого уровня, так и о адресах
МАС-уровня с помощью пакета,
эквивалентого пакету "hello"
(приветственное сообщение). Пакеты
"hello" означают, что данный
клиент все еще работает и сеть
готова. Сами служебные устройства
периодически отправляют в другие
служебные устройства маршрутные
корректировки. Маршрутные
корректировки извещают другие
роутеры об изменениях адресов
узлов и топологии сети.
Когда какое-нибудь служебное
устройство VINES принимает пакет, оно
проверяет его, чтобы узнать, для
чего он предназначается - для
другого служебного устройства или
для широкого вещания. Если пунктом
назначения является данное
служебное устройство, то это
служебное устройство
соответствующим образом
обрабатывает этот запрос. Если
пунктом назначения является другое
служебное устройство, то данное
служебное устройство либо
непосредственно продвигает этот
пакет (если это служебное
устройство является его соседом),
либо направляет его в служебное
устройство/роутер, которые
являются следующими в очереди. Если
данный пакет является
широковещательным, то данное
служебное устройство проверяет
его, чтобы узнать, пришел ли этот
пакет с маршрута с наименьшими
затратами. Если это не так, то пакет
отвергается. Если же это так, то
пакет продвигается на всех
интерфейсах, за исключением того,
на котором этот пакет был принят.
Такой метод помогает уменьшить
число широковещательных
возмущений, которые являются
обычной проблемой в других сетевых
окружениях. Aлгоритм маршрутизации
VINES представлен на Рис. 21-4.
Формат пакета VIP представлен на
Рис. 21-5.
Пакет VIP начинается с поля
контрольной суммы (checksum),
используемой для обнаружения
искажений в пакете.
За полем контрольной суммы идет
поле длины пакета (packet length),
которое обозначает длину всего
пакета VIP.
Следующим полем является поле
управления транспортировкой (transport
control), которое состоит из
нескольких подполей. Если пакет
является широковещательным, то
предусматривается два подполя:
подполе класса (class) (с 1 по 3 биты)
и подполе числа пересылок (hop-count)
(с 4 по 7 биты). Если пакет не является
широковещательным пакетом, то
предусматривается 4 подполя:
подполе ошибки (error), подполе
показателя (metric), подполе
переадресации (redirect), и подполе
числа пересылок (hop count). Подполе
класса определяет тип узла, который
должен принимать
широковещательное сообщение. С
этой целью узлы разделяются на
несколько различных категорий,
зависящих от типа узла и типа
канала, к которому принадлежит
узел. Определяя тип узлов, которые
должны принимать
широковещательные сообщения,
подполе класса уменьшает
вероятность срывов в работе,
вызываемых широковещательными
сообщениями. Подполе числа
пересылок представляет собой число
пересылок (число пересеченных
роутеров), через которые прошел
пакет. Подполе ошибок определяет,
надо ли протоколу ICP отправлять
пакет уведомления об
исключительной ситуации в источник
пакета, если пакет окажется
немаршрутизируемым. Подполе
показателя устанавливается в 1
транспортным об'ектом, когда ему
необходимо узнать затраты
маршрутизации при перемещения
пакетов между каким-нибудь узлом
обслуживания и одним из соседей.
Подполе переадресации определяет,
должен ли роутер генерировать
сигнал переадресации (при
соответствующих обстоятельствах).
Далее идет поле типа протокола (protocol
type), указывающее на протокол
сетевого или транспортного уровня,
для которого предназначен пакет
показателя или пакет уведомления
об исключении.
За полем типа протокола следуют
адресные поля VIP. За полями номера
сети назначения (destination network number)
и номера подсети назначения (destination
subnetwork number) идут поля номера сети
источника (sourсe network number) и
номера подсети источника (source
subnetwork number).
Протокол
корректировки маршрутизации (RTR)
RTR распределяет информацию о
топологии сети. Пакеты
корректировки маршрутизации
периодически пересылаются широкой
рассылкой как клиентом, так и
узлами обслуживания. Эти пакеты
информируют соседей о
существовании какого-нибудь узла, а
также указывают, является ли этот
узел клиентом или узлом
обслуживания. В каждый пакет
корректировки маршрутизации узла
обслуживания также включается
перечень всех известных сетей и
коэффициенты затрат, связанные с
достижением этих сетей.
Поддерживаются две маршрутные
таблицы: таблица всех известных
сетей и таблица соседей. Для узлов
обслуживания таблица всех
известных сетей содержит запись
данных о каждой известной сети, за
исключением собственной сети узла
обслуживания. Каждая запись
содержит номер сети, показатель
маршрутизации и указатель на
запись данных следующей пересылки
на пути к данной сети в таблице
соседей. Таблица соседей содержит
запись данных каждого узла
обслуживания соседа и узла клиента.
Записи включают в себя номер сети,
номер подсети, протокол доступа к
носителю (например, Ethernent), который
использовался для достижения этого
узла, адрес локальной сети (если
средой, соединяющей с соседом,
является локальная сеть) и
показатель соседа.
RTR определяет 4 типа пакетов:
- Пакеты корректировки
маршрутизации.
- Периодически выпускаются
для уведомления соседей о
существовании
какого-нибудь об'екта.
- Пакеты запроса о
маршрутизации.
- Об'екты обмениваются ими,
когда им необходимо быстро
узнать о топологии сети.
- Пакеты ответа на запрос о
маршрутизации.
- Содержат топологическую
информацию и используются
узлами обслуживания для
ответа на пакеты запроса о
маршрутизации.
- Пакеты переадресации
маршрутизации.
- Обеспечивают отправку
информации о лучших
маршрутах в узлы,
использующие
неэффективные тракты.
Пакеты RTR имеют 4-байтовый
заголовок, состоящий из
однобайтового поля типа операций (operation
type), однобайтового поля типа узла
(node type), однобайтового поля типа
контроллера (controller type) и
однобайтового поля типа машины (machine
type). Поле типа операций указывает
на тип пакета. Поле типа узла
указывает, пришел пакет из узла
обслуживания или из
необслуживающего узла. Поле типа
контроллера указывает, содержит ли
контроллер узла, передающего пакет
RTR, многобуферный контроллер. Это
поле используется для облегчения
регулирования информационного
потока между сетевыми узлами. И
наконец, поле типа машины
указывает, является ли процессор
отправителя RTR быстодействующим
или нет. Как и поле типа
контроллера, поле типа машины также
используется для регулирования
скорости передачи.
Протокол разрешения
адреса (ARP)
Об'екты протокола ARP
классифицируются либо как клиенты
разрешения адреса (address resolution clients),
либо как услуги разрешения адреса (address
resolution services). Клиенты разрешения
адреса обычно реализуются в узлах
клиентов, в то время как услуги
разрешения адреса обычно
обеспечиваются узлами
обслуживания.
Пакеты ARP имеют 8-байтовый
заголовок, состоящий из 2-байтового
типа пакета (packet type), 4-байтового
номера сети (network number) и
2-байтового номера подсети (subnet
number). Имеется 4 типа пакетов:
запрос-заявка (query request), который
является запросом какой-либо
услуги ARP; ответ об услуге (service
response), который является ответом
на запрос-заявку, запрос о
присваивании адреса (assignment request),
который отправляется какой-нибудь
услуге ARP для запроса адреса
об'единенной сети VINES, и ответ о
присваивании адреса (assignment response),
который отправляется данной
услугой ARP в качестве ответа на
запрос о присваивании адреса. Поля
номера сети и номера подсети имеют
значение только в пакете ответа о
присваивании адреса.
Когда какой-нибудь клиент
приступает к работе, клиенты и
услуги ARP реализуют следующий
алгоритм. Сначала данный клиент
отправляет широкой рассылкой
пакеты запросов-заявок. Затем
каждая услуга, которая является
соседом данного клиента, отвечает
пакетом ответа об услуге. Далее
данный клиент выдает пакет запроса
о присваивании адреса в первую
услугу, которая ответила на его
пакет запроса-заявки. Услуга
отвечает пакетом ответа о
присваивании адреса, содержащем
присвоенный адрес об'единенной
сети.
Протокол управления
объединеной сетью (ICP)
ICP определяет пакеты уведомления об
исключительных ситуациях (exception
notification) и уведомления о
показателе (metric notification). Пакеты
уведомления об исключительных
ситуациях обеспечивают информацию
об исключительных ситуациях
сетевого уровня; пакеты
уведомления о показателе содержат
информацию о последней передаче,
которая была использована для
достижения узла клиента.
Уведомления об исключительной
ситуации отправляются в том случае,
когда какой-нибудь пакет VIP не может
быть соответствующим образом
маршрутизирован, и устанавливается
подполе ошибки в поле управления
транспортировкой заголовка VIP. Эти
пакеты также содержат поле,
идентифицирующее конкретную
исключительную ситуацию по коду
ошибки, соответствующему этой
ситуации.
Об'екты ICP в узлах обслуживания
генерируют сообщения уведомления о
показателе в том случае, когда
устанавливается подполе
показателя в поле управления
транспортировкой заголовка VIP, и
адрес пункта назначения в пакете
узла обслуживания определяет
одного из соседей этого узла
обслуживания.
VINES обеспечивает три услуги
транспортного уровня:
- Unreliable datagram service.
Услуги ненадежных дейтаграмм.
Отправляет пакеты, которые
маршрутизируются на основе
принципа "наименьших
затрат" (best-effort basis), но не
подтверждаются сообщением о
приеме в пункте назначения.
- reliable datagram service.
Услуги надежных дейтаграмм.
Услуга виртуальной цепи,
которая обеспечивает надежную
упорядоченную доставку
сообщений между узлами сети с
подтверждением о приеме.
Надежное сообщение может быть
передано с максимальным числом
пакетов, равным 4.
- data stream service.
Услуга потока данных.
Поддерживает контролируемый
поток данных между двумя
процессами. Услуга потока
данных является услугой
виртуальной цепи с
подтверждением о приеме,
которая обеспечивает передачу
сообщений неограниченных
размеров.
Являясь распределенной сетью, VINES
использует модель вызова процедуры
обращений к отдаленной сети (remote
procedure call - RPC) для связи между
клиентами и служебными
устройствами. RCP является основой
сред распределенных услуг.
Протокол NetRPC (Уровни 5 и 6)
обеспечивает язык
программирования высшего уровня,
который позволяет осуществлять
доступ к отдаленным услугам
способом, прозрачным как для
пользователя, так и для прикладной
программы.
На Уровне 7 VINES обеспечивает
протоколы файловых услуг и услуг
принтера, а также протокол услуг
"StreetTalk name/directory". StreetTalk,
один из протоколов с торговым
знаком компании VINES, обеспечивает
службу постоянных имен в
глобальном масштабе для всей
об'единенной сети.
VINES также обеспечивает среду
разработки интегрированных
применений при наличии нескольких
операционных систем, включая DOS и
UNIX. Taкая среда разработки позволяет
третьей участвующей стороне
осуществлять разработку как
клиентов, так и услуг, действующих в
среде VINES.
[Назад] [Содержание] [Вперед]
|