Компания 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.
Следующим полем является поле управления транспортировкой (transportcontrol), которое состоит из нескольких подполей. Если пакет является широковещательным, то предусматривается два подполя: подполе класса(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) и номера подсети источника (sourcesubnetwork 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 обеспечивает три услуги транспортного уровня:
Являясь распределенной сетью, VINES использует модель вызова процедуры обращений к отдаленной сети (remote procedure call - RPC)для связи между клиентами и служебными устройствами. RCP являетсяосновой сред распределенных услуг. Протокол NetRPC (Уровни 5 и 6)обеспечивает язык программирования высшего уровня, который позволяетосуществлять доступ к отдаленным услугам способом, прозрачным как дляпользователя, так и для прикладной программы.
На Уровне 7 VINES обеспечивает протоколы файловых услуг и услуг принтера, а также протокол услуг "StreetTalk name/directory".StreetTalk,один из протоколов с торговым знаком компании VINES, обеспечивает службу постоянных имен в глобальном масштабе для всей об'единенной сети.
VINES также обеспечивает среду разработки интегрированных примененийпри наличии нескольких операционных систем, включая DOS и UNIX. Taкаясреда разработки позволяет третьей участвующей стороне осуществлятьразработку как клиентов, так и услуг, действующих в среде VINES.