![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Стек протоколов фирмы Novell
Novell всегда отличалась тем, что предоставляла сетевые средства самым разнообразным операционным системам. Часто именно Novell первой из фирм — производителей программного обеспечения, поддерживала чужую (разработанную другими производителями) операционную систему и ее протоколы.
Рис. 42 — Связи стеков протоколов различных уровней
Операционная система NetWare имеет собственную уровневую структуру коммуникационных протоколов, которая лишь частично соответствует семиуровневой модели ISO (рис. 42). Выделяются следующие уровни: · Open Data-Link Interface (ODI), включающий аппаратно-программные драйверы для различных сетей; · Internet Packet Exchange (IPX), соответствующий сетевому уровню, но включающий ряд функций канального протокола; · Sequenced Packet Exchange (SPX), по своим функциям и интерфейсам соответствующий транспортному уровню; · NetWare Core Protocol (NCP), охватывающий функции сеансового и представительского уровня; · NetWare Applications and Utilities, соответствующий прикладному уровню OSI.
3.5.1 Краткое описание протоколов стека IPX/SPX
Протокол IPX основан на протоколе XNS (Xerox Network System). Этот протокол, как и OSI, определяет коммуникационные уровни — от аппаратного до прикладного. Novell использовала часть этого стека (а именно Internetwork Data Protocol) для создания IPX. IPX — это протокол маршрутизации. Его пакеты содержат адреса сети и адрес рабочей станции. Эта информация включается в пакет в виде данных заголовка. Посылаемый с рабочей станции пакет может иметь три назначения: рабочую станцию в том же сегменте сети, рабочую станцию в другом сегменте сети и сервер, выполняющий маршрутизацию. Все пакеты проверяются сервером, который определяет их назначение. Если пакет имеет адрес в той же сети, то он просто посылается на соответствующую рабочую станцию. Если пакет адресуется серверу, то он посылается операционной системе сервера. Если пакет адресован другому сегменту сети, то он переформируется и посылается туда. IPX используется различными приложениями и процессами сети. Протокол ядра NetWare NCP (NetWare Core Protocol) обеспечивает для рабочих станций базовые средства операционной системы NetWare, включая доступ к файлам, печать и обслуживающие средства, взаимодействующие с использованием IPX. Протокол последовательного обмена пакетами SPX (Sequen-ced Packet Exchange) представляет собой улучшенную версию IPX. Это программный интерфейс, используемый независимыми разработчиками программного обеспечения для создания приложений, требующих гарантированного обмена пакетами между программами. Гарантированность подразумевает, что получение пакетов подтверждается системой-получателем. Это обеспечивает сохранность данных и предохраняет их от дублирования, но требует дополнительных издержек. Аналогично адресам рабочих станций приложения имеют гнездовые адреса (гнезда IXP), благодаря которым им могут направляться поступающие пакеты. Когда одно приложение обменивается по сети данными с другим приложением, это делается путем определения адреса или гнезда приложения. Гнездо становится частью адреса пакета наряду с сетевым номером и адресом рабочей станции. Протокол объявления об услугах SAP (Service Advertisement Protocol) используется в сообщениях SAP, рассылаемых файловыми серверами, средствами печати и другими типами серверов для уведомления о своем присутствии и предлагаемых средствах. Протокол маршрутизации информации RIP (Routing Infor-mation Protocol) используется маршрутизатором для поддержки таблиц маршрутизации, содержащих информацию об объединенных в общую сеть подсетях. Записи в таблице маршрутизации определяют, какая сеть должна использоваться для передачи пакетов рабочим станциям (если необходимо — через следующий маршрутизатор). Здесь описываются также возможные маршруты и их число.
Протокол IPX
Рассмотрим вначале простейший дейтаграммный протокол XSIS и соответствующий ему протокол IPX. Эти протоколы не квитируют полученные дейтаграммы и не обеспечивают правильную доставку. Формат пакета-дейтаграммы у обоих протоколов совпадает с точностью до бита и приведен на рис. 43. Структура пакета включает в себя межсетевой заголовок и поле данных, возможно нулевое.
Рис. 43 — Формат пакета-дейтаграммы IPX
Структура адреса в такой дейтаграмме складывается из трех полей: номера сети, адреса станции и номера порта или сокета, по терминологии NetWare. Номер сети состоит из 32 бит и кодирует одну из сетей Ethernet или один из сегментов сети. Если сеть содержит мосты, то каждая сеть, подключенная через мост, должна иметь свой уникальный номер. Элементам сети, с которыми не устанавливаются соединения, например, выделенным каналам связи, номера не назначаются. В качестве адреса сети-получателя могут использоваться: · адрес, состоящий из всех нулей, обозначающий ту же сеть, что и у станции-отправителя; · широковещательный адрес, состоящий из всех единиц, обозначает все подключенные сети; · конкретный адрес одной из сетей. Адрес станции состоит из 48 бит и соответствует адресу сетевой карты, он уникален для всех станций в сети. В качестве адреса станции-получателя можно использовать: · широковещательный адрес, состоящий из всех единиц, обозначающий все станции; · индивидуальный адрес станции, начинающийся с нуля; · групповой адрес, он начинается с единицы и идентифицирует сразу несколько станций. При посылке дейтаграммы допустимы любые комбинации номера сети и адреса станции. Можно обращаться ко всем станциям во всех сетях сразу, ко всем станциям в своей собственной сети или к какой-либо другой сети, к группе станций и т.д. Все это справедливо для адреса приемника, адрес источника же всегда составлен из номера одной сети и индивидуального адреса станции. Номер порта состоит из 16 бит и определяет конкретную программу или сервисную службу рабочей станции или сервера. Проверке на правильность контрольной суммы подлежат все поля дейтаграммы. Длина задается в байтах и должна быть четной. Длина самой короткой дейтаграммы не может быть меньше 30. Пакеты, длина которых меньше указанной, сразу сбрасываются. Байт управления транспортировкой предназначен для «отлавливания» зациклившихся пакетов в больших сетях. При создании дейтаграммы данный байт устанавливается нулевым. При прохождении пакета из одной сети (сегмента сети) в другую через мост или модуль маршрутизации значение байта увеличивается на единицу. При поступлении пакета в 16-й по счету модуль маршрутизации такой пакет сбрасывается. Тип пакета указывает на протокол верхнего уровня, который пользуется услугами пересылки дейтаграмм. Такая передача данных является негарантированной в том смысле, что IPX-приемник не предусматривает подтверждения IPX-источнику того, что пакет успешно получен. Однако он позволяет определить, был ли пакет передан. Подтверждение о передаче пакета передается IPX-источником своей прикладной программе.
Протокол SPX
Последовательный обмен пакетами SPX (Sequenced Packet Exchange) (рис. 44) обеспечивает возможность повторной передачи и тайм-аута, отсутствующие в IPX. Он ориентирован: · на доставку сообщений, возможно состоящих из нескольких пакетов; · на доставку нумерованных пакетов без идентификации границ сообщения; · на передачу последовательности пакетов с сохранением порядка поступления, но без дублирования. Обмен нумерованными пакетами происходит с типом пакета 5 в межсетевом заголовке. Поля «Идентификатор связи» предназначены для установления номера виртуального канала. При установлении канала SPX-источник создает пакет, в котором указывает свое значение идентификатора связи, в поле приемника это значение еще не известно и равно нулю. SPX-приемник, принимая пакет, назначает свой идентификатор, который помещается в первый ответный пакет. Специальный системный пакет-подтверждение не требуется. Обратите внимание на то, что все виртуальные каналы в этом случае «висят» на одном сокете IPX и только номера каналов позволяют их различить. Кроме того, сама фаза установки виртуального канала предельно упрощена, что позволяет классифицировать подобные протоколы как протоколы «быстрой выборки» или «виртуального вызова».
Рис. 44 — Формат пакета SPX
Далее наступает фаза передачи данных нумерованными пакетами, которые квитируются с помощью поля квитанции. В этом поле указывается номер ожидаемого пакета. Квитирование возможно на отдельный пакет (SPX) либо на целую последовательность пакетов (XSIS). Поле «Максимальный номер» служит для управления потоком данных и указывает на наибольший номер пакета, который принимающая станция может использовать. Значение этого поля увеличивается после каждого квитирования. Поле «Тип потока данных» необходимо для выбора прикладной программы. Основная разница между IPX и SPX состоит в том, что заголовки и дополнительные операции, предусмотренные в SPX, обеспечивают гарантированную доставку пакетов. Гарантированная доставка означает в данном случае выполнение некоторого числа повторных попыток передачи адресату запроса на установку соединения, пока число повторных передач не превысит некоторое, заранее зарезервированное, число переспросов (в этом случае передавшему запрос посылается уведомление). При пересылке нумерованного пакета также используется механизм повторной передачи. Таким образом, передающей стороне не нужно проверять доставку пакета. SPX будет уведомлять прикладную программу о состоянии передачи. Обновленная версия протокола SPX называется SPX II. Одним из основных вопросов, который особенно беспокоил Novell при разработке транспортного протокола следующего поколения, был вопрос обеспечения совместимости с уже имеющимися продуктами; поэтому вместо того, чтобы дать ему совершенно новое имя, протокол назвали SPX II. Основное назначение SPX II состоит в использовании пакетов большего размера, реализации действительно оконного протокола и обеспечении поддержки унифицированного транспортного интерфейса API TLI (Transport Layer Interface). Наиболее важно то, что SPX II обладает полной совместимостью с протоколом SPX. По сравнению с SPX протокол SPX II обладает повышенными возможностями в области обработки больших пакетов данных. Различные сети могут обрабатывать различные размеры пакетов. Многие сети могут обрабатывать пакеты с размером, превышающим 576 байт (размер пакета SPX и XSIS). Заголовок пакета SPX размером 42 байта оставляет для данных только 534 байта в одном пакете. Если нужно послать больше данных, то нужно подготовить и передать другой пакет SPX. При передаче большого объема информации наиболее эффективным является увеличение размера пакета. Протокол SPX II автоматически использует преимущества тех сетей, которые допускают передачу пакета большего размера, т.е. подстраивает длину передаваемого пакета. Другим реализованным в SPX II средством является механизм окна. Окно организуется, когда нужно передать несколько пакетов с одной квитанцией для всех пакетов. Число передаваемых пакетов может быть различным (это называется размером окна). Если один из пакетов не получен, запрос на этот пакет может быть возвращен передающему узлу. Все рассмотренные механизмы позволяют уменьшить сетевой трафик и ускорить процесс передачи данных.
ODI и NDIS
Хотя в политике обеспечения межсистемного взаимодействия TCP/IP уделяется все большее внимание, существуют также другие стандарты, такие как AppleTalk и, конечно, OSI. Поэтому Novell разработала интерфейс ODI (Open Data-Link Interface), позволяющий сосуществовать на сервере или рабочей станции нескольким стекам протокола. Кроме того, в него недавно добавлена поддержка NDIS (Network Driver Interface Specification) — интерфейс для сетевых плат Microsoft. NDIS используется для связи различных систем. NDIS и ODI могут сосуществовать на рабочей станции, так что пользователям обеспечивается доступ и к сетям NetWare. Назначением NDIS и ODI является стандартизация интерфейса между драйверами и интерфейсными платами. Благодаря этому для каждого типа протокола, который вы хотите реализовать через плату, не требуются отдельные драйверы. Интерфейс ODI обеспечивает взаимодействие между платами сетевого интерфейса и различными протоколами. Когда драйверы платы сетевого интерфейса пишутся в соответствии со спецификацией ODI, они могут использовать один или более протоколов, таких, как AppleTalk и TCP/IP. Компоненты ODI структурированы по уровням. Внизу расположены интерфейсы для различных типов сетевых интерфейсных плат. Верхнюю часть образуют протоколы, представляющие интерфейс с операционной системой NetWare. Расположенный между ними уровень LSL управляет трафиком между компонентами. Для тех, кому требуется взаимодействие с системами, отличными от NetWare, ODI дает следующие преимущества: · одна плата сетевого интерфейса с различными стеками протоколов; · создается логическая сетевая плата, которая обрабатывает пакеты различных систем; эти пакеты могут посылаться по той же сетевой кабельной системе, подключенной к одной сетевой плате; · рабочая станция без перезагрузки может использовать другой стек протоколов; · ODI позволяет NetWare-серверам и рабочим станциям взаимодействовать со многими другими системами, использующими другие стеки протоколов, включая большие ЭВМ. ODI стандартизирует разработку драйверов плат сетевых интерфейсов. Производителям не нужно больше беспокоиться о соответствии конкретного стека протоколов. Драйверы просто подключаются к уровню LSL (Link Suppirt Layer). LSL напоминает коммутационную панель, используемую для переключения на соответствующий стек протоколов. LSL обеспечивает связь между драйверами (нижний уровень) и протоколами (верхний уровень). Уровень MPI (Multiple Protocol Interface) обеспечивает интерфейс для подключения стеков протоколов (таких, как AppleTalk, TCP/IP и IPX; в будущем будут доступны другие стеки протоколов, такие, как OSI и SNA). Уровень MLI (Multiple Link Interface) — это тот интерфейс, куда подключаются драйверы платы сетевого интерфейса. Драйверы устройств пишутся разработчиками плат сетевого интерфейса в соответствии со спецификацией LSL Novell. Эти драйверы называются драйверами MLID (Multiple Link Interface Driver). Когда пакет попадает в плату сетевого интерфейса, он обрабатывается драйвером MLID платы и передается LSL. LSL определяет, в какой стек протокола должен попасть пакет, и направляет его этому протоколу. Пакет обычным образом передается через стек протоколов, где обрабатывается протоколами высокого уровня. Спецификация NDIS (Microsoft Network Device Interface Specification) была разработана, чтобы предоставить пользователю сети доступ к различным протоколам, отделив эти протоколы от плат сетевого интерфейса. В соответствии с этим протоколом не требовалось ничего знать об интерфейсных платах. Здесь отсутствует специфический для плат интерфейс, а есть только общий интерфейс для протоколов. Чтобы использовать плату NDIS, вы устанавливаете плату и ее драйвер, загружаете все протоколы, которые хотите использовать, и связываете их с помощью команды NETBIND.
![]() |