Сетевая служба Banyan Vines Введение

Виртуальная интегрированная сетевая служба Banyan (Banyan Virtual Integrated Network Service — VINES) реализует операционную систему распределенной сети, основанную на семействе фирменных протоколов, полученных из протоколов сетевых систем Xerox (Xerox Network Systems — XNS) корпорации Xerox. Служба VINES использует архитектуру "клиент/сервер", в которой клиент запрашивает у сервера определенные службы, такие как доступ к файлам и печать. В настоящей главе приводится общий обзор коммуникационных протоколов VINES. Стек протоколов VINES показан на рис. Б.6.

Доступ к передающей среде

Нижние два уровня стека протоколов VINES реализуются с помощью нескольких широко известных механизмов доступа к среде, включающих в себя высокоуровневый протокол управления каналом (High-Level Data Link Control — HDLC), протоколы X.25, Ethernet и Token Ring.

Сетевой уровень

Для выполнения функций сетевого уровня (включая межсетевую маршрутизацию) служба VINES использует межсетевой протокол VINES (Vines Internet Protocol — VIP). VINES также поддерживает собственный протокол преобразования адресов (Address Resolution Protocol — ARP), собственную версию протокола маршрутной информации (Routing Information Protocol — RIP), называемую протоколом таблицы маршрутизации (Routing Table Protocol — RTP) и протокол межсетевого управления (Internet Control Protocol — ICP), который обеспечивает обработку исключений и предоставляет информацию об оценках специальной маршрутизации. Пакеты протоколов ARP, ICP и RTP инкапсулируются в VIP-заголовок.

Рис. Б.6. Стек протоколов VINES состоит из пяти отдельных уровней

Межсетевой протокол VINES

Адреса службы VINES сетевого уровня представляют собой 48-битовые конструкции, подразделяемые на сетевую часть (32 битов) и часть, относящуюся к подсети (16 бит). Сетевой номер правильнее было бы назвать адресом (номером) сервера, поскольку он получается непосредственно из ключа сервера (server’s key) (аппаратный модуль, который идентифицирует уникальный номер и опции программного обеспечения для данного сервера). Часть VINES-адреса, относящуюся к подсети, можно было бы назвать адресом узла, поскольку она используется для идентификации узла в сети VINES. На рис. Б.7 показан формат VINES-адреса.

Рис. Б. 7. VINES-adpec состоит из номера сети и номера подсети

Сетевой адрес идентифицирует логическую сеть VINES, которая представляется двухуровневым деревом с корнем в узле (node) службы. Узлы службы, которыми обычно являются серверы, обеспечивают преобразование адресов и службы маршрутизации клиентам, которые являются листьями дерева. Узел службы назначает клиентам адреса межсетевого протокола VINES (VINES Internet Protocol — VIP).

При включении питания на узле клиента, с trero происходит рассылка широковещательного запроса всем серверам, и серверы, получившие этот запрос, отвечают соответствующим сообщением. Узел клиента выбирает первый ответ и запрашивает у этого сервера адрес подсети (адрес узла). Сервер отвечает отправкой адреса, состоящего из его собственного сетевого адреса (полученного из ключа) и адреса подсети (узла), выбранного им по своему усмотрению. Адреса подсетей клиента обычно назначаются последователыю, начиная с адреса 8001Н. Адреса подсети сервера всегда равны 1. На рис. Б.1 показан процесс выбора адресов.

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

Рис. Б.8. Выбор VINES-adpeca осуществляется в четыре этапа

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

Таблицы маршрутизации VINES состоят из пар "узел/оценка", в которых параметр "узел" соответствует сетевому узлу, к которому можно получить доступ, а оценка соответствует задержке (выраженной в миллисекундах), возникающей при достижении этого узла. Протокол RIP помогает службе VINES находить соседних клиентов, соседние серверы и маршрутизаторы.

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

Когда VINES-сервер получает пакет, он проверяет, не предназначен ли этот пакет другому серверу и не является ли он широковещательным. Если данный сервер является пунктом назначения этого пакета, то он обрабатывается соответствующим образом. Если же пунктом назначения является другой сервер, то пакет пересылается непосредственно (если сервер-получатель является соседним) или направляется на следующий сервер линии. Если пакет является широковещательным, то сервер проверяет, пришел ли этот пакет по маршруту с наименьшей оценкой. Если это не так, то пакет отбрасывается. Если же маршрут оказался кратчайшим (с наименьшей оценкой), то пакет отправляется на все интерфейсы, кроме того, на который он поступил. Такой подход позволяет уменьшить количество широковещательных лавин (broadcast storm), которые являются типичной проблемой других сетевых сред. На рис. Б.9 показан алгоритм маршрутизации протокола VINES.

На рис. Б. 10 показан формат пакета VIP.

Поля VIP-пакета содержат информацию о контрольной сумме, длине пакета, транспортном управлении, типе протокола, номере сети-получателя, номере подсети- получателя, номере сети-источника и номере подсети-источника.

Поле контрольной суммы используется для проверки целостности пакета. Поле длины пакета указывает длину всего VIP-пакета.

Поле транспортного управления (Transport Control) состоит из нескольких подполей. Если пакет является широковещательным, то используются два подполя: класс пакета (биты с 1-го по 3-й) и количество переходов (биты 4-7). Если пакет не является широковещательным, то присутствуют четыре подполя: подполе ошибки, метрики, перенаправления и количества переходов. Подполе класса задает тип узлов, которые должны получать широковещательное сообщение. С этой целью узлы делятся на различные категории, в соответствии с типом узла и типом канала, в котором находится данный узел. Задавая тип узлов, которые должны получать широковещательные сообщения, подполе класса уменьшает количество нарушений нормальной работы сети, вызываемых широковещанием. Подполе числа переходов отображает количество переходов (между маршрутизаторами), которые прошел данный пакет. Подполе ошибки определяет, следует ли использовать протокол ICP, который должен посылать пакет уведомления- исключения источнику полученного пакета, в случае, если пакет не удается маршрутизировать. Подполе метрики устанавливается равным 1 протоколом транспортного уровня в случае, когда необходимо узнать оценку перемещения пакета между узлом службы и соседним устройством. Подполе перенаправления устанавливает, должен ли маршрутизатор генерировать перенаправление в соответствующих ситуациях.

Рис. Б.9. Алгоритм VINES-маршрутизации определяет соответствующий маршрут к пункту назначения

Поле типа протокола указывает протокол сетевого или транспортного уровня, для которого предназначен пакет метрики или пакет исключения-уведомления.

В конечном итоге все поля: номер сети-получателя, номер подсети-получателя, номер сети-источника и номер подсети-источника образуют адресную информацию протокола VIP.

Рис. Б. 10. VlP-пакет состоит из девяти индивидуальных полей

Протокол таблицы маршрутизации

Протокол таблицы маршрутизации (Routing Table Protocol — RTP) распространяет информацию о сетевой топологии. Широковещательные пакеты с обновлениями маршрутов периодически рассылаются как клиентскими узлами, так и узлами серверов. Эти пакеты информируют соседние устройства о существовании рассылающего эти сообщения узла, а также о его типе как клиента или сервера. В каждый пакет обновления маршрутов служба включает список всех известных сетей и соответствующие оценки (значения метрики), связанные с достижением этих сетей.

При этом поддерживаются две таблицы маршрутизации: таблица всех известных сетей и таблица соседних устройств. Для узлов службы таблица всех известных сетей содержит соответствующую позицию для каждой известной сети, за исключением собственной сети узла службы. Каждая позиция таблицы содержит номер сети, метрику маршрутизации и указатель позиции в таблице следующего перехода к этой сети в таблице соседних устройств. Таблица соседних устройств содержит позицию для каждого соседнего узла службы и для каждого узла клиента. Каждая позиция включает в себя номер сети, номер подсети, протокол доступа к передающей среде (например Ethernet), используемый для достижения этого узла, адрес локальной сети (local area- network — LAN), если средой, соединяющей с соседним устройством, является LAN, и метрику для соседнего устройства.

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

Пакеты протокола RTP имеют 4-байтовый заголовок, состоящий из следующих однобайтовых полей: поля типа операции (указывающего тип пакета), поля типа узла (указывающего, пришел ли пакет с узла службы или с иного узла), поля типа контроллера (указывающего, является ли контроллер узла, передающего RTP-пакет, многобуферным) и поля типа машины (Machine Туре), указывающего, является ли процессор RTP-отправителя быстрым или медленным.

Оба поля — типа контроллера и типа машины — используются для регулирования скорости передачи данных (pacing).

Протокол преобразования адресов

Протокол преобразования адресов (Address Resolution Protocol — ARP) работает с объектами, которые классифицируются как клиенты преобразования адресов или службы преобразования адресов. Клиенты преобразования адресов обычно реализуются в клиентских узлах, в то время как службы преобразования адресов обычно представляются узлами службы.

Пакеты протокола ARP имеют 8-байтовый заголовок, состоящий из 2-байтового типа пакета, 4-байтового номера сети и 2-байтового номера подсети. Существуют четыре типа пакетов: запрос (используемый для обращения к ARP-службе), отклик службы (являющийся ответом на запрос), запрос о назначении (посылаемый ARP- службе для запроса межсетевого адреса VINES) и ответ на запрос о назначении (посылаемый службой ARP как ответ на запрос о назначении). Поля номера сети и номера подсети имеют значение только в пакетах ответа на запрос о назначении.

Клиенты и службы протокола ARP в начале работы клиента реализуют следующий алгоритм: сначала клиент широковещательно рассылает пакеты запроса, затем каждая служба, которая является соседней по отношению к данном узлу, отвечает пакетом ответа службы на запрос. После этого клиент посылает пакет с запросом о назначении первой службе, которая ответила на его пакет запроса. Служба отвечает пакетом ответа-назначения, в котором содержится назначенный межсетевой адрес.

Межсетевой протокол управления

Межсетевой протокол управления (Internet Control Protocol — ICP) определяет форматы пакетов исключения-уведомления (exception-notification packets) и пакетов уведомления о метрике (metric-notification packets). Пакеты исключения-уведомления предоставляют информацию об исключениях сетевого уровня, а пакеты уведомления о метрике содержат информацию о последней передаче, которая использовалась для достижения клиентского узла.

Пакеты исключения-уведомления посылаются в тех случаях, когда VIP-пакет не может быть маршрутизирован обычным образом и активизировано подполе ошибки в поле VIP-заголовка транспортного контроля. Эти пакеты также содержат поле, идентифицирующее данную конкретную ошибку ее кодом.

Элементы протокола ICP в узлах службы генерируют сообщения уведомления о метрике в тех случаях, когда активизировано подполе метрики в поле транспортного контроля VIP-заголовка, а адрес пункта назначения в пакете узла службы задает одно из соседних устройств узла службы.

Транспортный уровень

Протокол VINES предоставляет три службы транспортного уровня: службу негарантированной доставки дейтаграмм, службу гарантированной доставки сообщений и службу передачи потоков данных.

Служба негарантированной доставки дейтаграмм отправляет пакеты по принципу негарантированной доставки без подтверждения их получения в пункте назначения.

Служба гарантированной доставки сообщений является службой виртуального канала, которая обеспечивает гарантированную доставку сообщений от одного узла другому в соответствующем порядке с подтверждением получения.

Служба передани потока данных поддерживает управляемые потоки данных между двумя процессами. Служба передачи потока данных является службой виртуального канала с подтверждением получения, которая обеспечивает передачу сообщений произвольного размера.

Протоколы верхних уровней

Являясь распределенной сетью, VINES-сеть использует модель вызова удаленной процедуры (Remote Procedure Call — RPC) для связи между клиентами и серверами. Модель RPC является основой среды распределенных служб. Протокол NetRPC (5-й и 6-й уровни) предоставляет пользователю язык программирования высокого уровня, который позволяет получить доступ к удаленным службам прозрачно как для пользователя, так и для приложения.

На 7-м уровне VINES предоставляет приложения файловой службы и службы печати, а также протокол StreetTalk, который обеспечивает службу глобально согласованных имен для всей объединенной сети.

Протокол VINES также обеспечивает среду интегрированной разработки приложений при работе в различных операционных системах, включая DOS и UNIX. Эта среда разработки позволяет другим пользователям разрабатывать как клиентские, так и серверные службы, работающие в среде VINES.

Резюме

Возможно, что это последняя книга, в которой рассматривается протокол VINES. Сообщество пользователей этого протокола практически распалось, ОС сервера и программное обеспечение VINES уже не продаются, а преобразование сети VINES в сеть IP/TCP больше не обеспечивается.

Дополнительные источники

• http://products.banyan.com/

• Нисходящий поток

Два uBR-MC16C обеспечивают 2*27 = 54 Мбит/с, что значительно превышает требования пятого года — 144/8 = 18,1 Мбит/с (где 144 Мбит/с — видимая полоса пропускания, 8 — коэффициент пика данных).

 

Литература:

Руководство по технологиям объединенных сетей, 4-е издание. : Пер. с англ. — М.: Издательский дом «Вильяме», 2005. — 1040 с.: ил. – Парал. тит. англ.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100