Стек протоколов Novell NetWare создан под влиянием архитектуры XNS (Xerox Network System). Протоколы Novell обеспечивают поддержку большинства существующих операционных систем для настольных компьютеров, включая DOS, Windows, Macintosh, OS/2 и UNIX. Кроме того, Novell обеспечивает эффективную поддержку локальных сетей и распределенных сетей на базе асинхронных соединений. Стек Novell включает следующие протоколы:
|
Internetwork Packet Exchange |
|
Broadcast |
|
Burst Mode Protocol |
|
Diagnostic Responder |
|
NetWare Core Protocol |
|
NetWare Directory Service |
|
NetWare Link Service Protocol |
|
|
|
Routing Information Protocol |
|
Service Advertising Protocol |
|
Serialization |
|
Sequenced Packet Exchange |
|
Watchdog |
На рисунке показано расположение стека протоколов Novell в эталонной модели OSI.
Положение стека протоколов Novell в эталонной модели OSI
IPX
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол IPX (Internetwork Packet Exchange — межсетевой обмен пакетами) разработан компанией Novell на основе протокола IDP (Internet Datagram Protocol – межсетевой протокол обмена дейтаграммами) фирмы Xerox. IPX относится к числу протоколов без организации соединений (connectionless) и обеспечивает доставку пакетов через Internet, а также поддерживает адресацию и маршрутизацию рабочих станций и серверов NetWare.
Структура пакетов IPX показана на рисунке.
Биты |
||||||||
0 |
15 |
|||||||
Контрольная сумма |
Заголовок IPX |
|||||||
Длина пакета |
||||||||
Транспортный контроль |
Тип пакета |
|||||||
Сеть получателя (4 байта) |
||||||||
Узел-получатель (6 байтов) |
||||||||
Сокет-получатель |
||||||||
Сеть отправителя (4 байта) |
||||||||
Узел-отправитель (4 байта) |
||||||||
Сокет-отправитель |
||||||||
Данные (содержат информацию RIP, SAP, SPX, NCP и т. д.) |
Структура пакета IPX
Контрольная сумма
В поле контрольной суммы содержится значение FFFFH
Длина пакета
Размер дейтаграммы IPX в октетах.
Транспортный контроль
Данное поле используется маршрутизаторами, работающими с протоколом IPX. Перед передачей пакета протокол IPX устанавливает для этого поля нулевое значение.
Тип пакета
Это указывает тип информации, содержащейся в пакете:
0 Hello или SAP.
1 RIP.
2 Эхо-пакет.
3 Пакет, содержащий информацию об ошибке.
4 NetWare 386 или SAP.
5 Протокол SPX (Sequenced Packet Protocol).
16-31 Экспериментальные протоколы.
17 NetWare 286.
Номер сети.
Номер сети является 32-битовым числом, которое задает сетевой администратор. При локальном использовании сети (отсутствуют соединения с другими сетями IPX) для этого поля можно задать нулевое значение.
Номер узла.
Номером узла является 48-битное число, идентичное аппаратному адресу сетевого адаптера. Для широковещательных сообщений используется номер узла FFFF FFFF FFFF. Адрес 0000 0000 0000 в NetWare версий 3.x и 4.x используется для сервера.
Номер сокета
16-битовое поле, служащее для идентификации пакетов вышележащих уровней:
0451H NCP.
0452H SAP.
0453H RIP.
0455H NetBIOS.
0456H Диагностика.
0x457 Пакет проверки серийных номеров (SER).
4000-6000H Номера сокетов, используемые для файл-серверов и сетевых соединений.
BCAST
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол Broadcast (BCAST — широковещание) обеспечивает извещение пользователей о приеме для них сообщений по сети.
Формат пакетов протокола BCAST показан на рисунке.
Биты |
|||||||
8 |
16 |
||||||
Номер соединения |
Символ подписи |
Структура пакета BCAST
Номер соединения
Номер соединения выдается сетевой станции во время входа в сеть (login).
Символ подписи
Значение данного поля равно 0x21 (символ ASCII «!») и обозначает ожидание широковещательного сообщения (Broadcast Message Waiting).
BMP (Burst)
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол BMP (Burst Mode Protocol – протокол группового режима) реально использует пакеты протокола NCP (тип запроса – 7777H). Протокол BMP обеспечивает поддержку нескольких откликов на один запрос чтения или записи файла. Пакетный режим повышает эффективность взаимодействия между сервером и клиентами, позволяя рабочим станциям получить (передать) от сервера до 64 кбайт данных по единственному запросу на чтение или запись. При описании протокола BMP будем использовать для термина burst (взрыв, пакет) русский термин «группа» во избежание путаницы с термином «пакет».
Формат пакетов BMP показан на рисунке.
Биты |
|||||||
16 |
24 |
32 |
|||||
Тип запроса |
Флаги потока |
Тип потока |
|||||
Идентификатор отправителя в соединении |
|||||||
Идентификатор получателя в соединении |
|||||||
Порядковый номер пакета |
|||||||
Задержка передачи |
|||||||
Порядковый номер группы |
Порядковый номер подтверждения |
||||||
Общая длина группы |
|||||||
Смещение в группе |
|||||||
Длина пакета |
Количество элементов в списке |
||||||
Список пропущенных фрагментов
|
|||||||
Код функции |
|||||||
Дескриптор файла |
|||||||
Начальное смещение |
|||||||
Количество байтов для записи |
Структура пакета BMP
Тип запроса
Это поле идентично полю Request Type (тип запроса) в пакетах NCP и всегда имеет значение 7777H (пакет группового режима).
Флаги потока
Поддерживаемые флаги.
Тип потока
Биты управления групповым режимом.
Идентификатор отправителя в соединении
Идентификатор соединения для рабочей станции-отправителя.
Идентификатор получателя в соединении
Идентификатор соединения для рабочей станции-получателя.
Порядковый номер пакета
Поле используется рабочей станцией и сервером для идентификации пакетов.
Задержка передачи
Промежуток времени между передачей последовательных пакетов.
Порядковый номер группы
Порядковый номер передаваемой группы.
Порядковый номер подтверждения
Порядковый номер следующей группы, которая будет принята.
Общая длина группы
Размер передаваемой группы в октетах.
Смещение в группе
Положение пакета в группе.
Длина пакета
Размер данных группы в октетах.
Количество элементов в списке
Количество элементов в списке отсутствующих фрагментов.
Список пропущенных фрагментов
Перечень фрагментов данных, которые еще не были получены.
Если значение поля «Смещение в группе» равно нулю, вслед за списком отсутствующих фрагментов помещаются четыре дополнительных поля, перечисленных ниже.
Код функции
Функция чтения/записи.
Начальное смещение
Смещение для начала записи (чтения).
Количество байтов для записи
Количество байтов для записи (чтения).
Пример декодирования пакета BMP.
DIAG
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол диагностики (Diagnostic Responder или DIAG) является удобным инструментом анализа локальных сетей NetWare. Протокол DIAG можно использовать для тестирования соединений, проверки конфигурации или сбора информации.
Структура запросов протокола DIAG показана на рисунке.
Число исключенных адресов (1 байт) |
Исключенный адрес 0 (6 байтов) |
. |
Исключенный адрес 79 (6 байтов) |
Структура запроса DIAG
Число исключенных адресов
Значение этого поля показывает количество рабочих станций, которым запрос не был передан. Нулевое значение счетчика говорит о передаче запроса всем станциям и станции должны ответить на этот запрос. Максимальное значение для этого поля равно 80 (исключены адреса 0 — 79).
На следующем рисунке показана структура откликов на запросы протокола DIAG.
Биты |
|||||||
8 |
16 |
||||||
Старший байт версии |
Младший байт версии |
||||||
Диагностический сокет SPX |
|||||||
Счетчик компонент |
|||||||
Тип компоненты 0 (переменная длина) |
Структура ответа DIAG
Версия
Версия программы диагностики по протоколу DIAG, поддерживаемая отвечающей станцией.
Диагностический сокет SPX
Номер сокета SPX, которому могут быть адресованы все диагностические отклики.
Счетчик компонент
Количество компонент, содержащихся в пакете отклика.
Тип компоненты
Это поле содержит информацию об одной из компонент или активном процессе на отвечающей станции.
Основные типы:
0 = IPX/SPX.
1 = Драйверы маршрутизации.
2 = Драйверы LAN.
3 = Оболочки.
4 = VAP.
Расширенные типы:
5 = Маршрутизатор.
6 = Файловый сервер/маршрутизатор.
7 = Невыделенный IPX/SPX.
За полем расширенного типа следуют дополнительные поля.
Число локальных сетей (1 байт) |
Дополнительное поле в DIAG
Число локальных сетей
Количество ЛВС, с которыми работать данная компонента.
Для каждой локальной сети в пакет включается следующая информация:
Тип локальной сети (1 байт) |
Адрес сети (4 байта) |
Адрес узла (6 байт) |
Формат для локальных сетей
Тип локальной сети
Поле содержит число, идентифицирующее тип сети, с которой может взаимодействовать данная компонента.
Адрес сети
4-байтовый адрес, выделенный сети, которая указана в поле «Тип локальной сети».
Адрес узла
6-байтовый адрес узла, используемый вместе с адресом сети.
Пример декодирования пакета DIAG.
NCP
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол NCP (NetWare Core Protocol — протокол ядра NetWare) используется для управления доступом к основным ресурсам сервера NetWare. Для получения доступа к ресурсам NCP вызывает процедуры протокола NetWare NFSP (File Sharing Protocol – протокол разделения файлов). Протокол NFSP обслуживает запросы к файловым и принтерным ресурсам NetWare.
Формат заголовка запроса NCP показан на следующем рисунке. Поле тип запроса имеет длину 2 байта. Все остальные поля имеют длину 1 байт.
Тип запроса |
Порядковый номер |
Младшая часть номера соединения |
Номер задания |
Старшая часть номера соединения |
Код запроса |
Данные (переменная длина) |
Формат заголовка запроса NCP
Тип запроса
Идентифицирует тип пакета:
1111H Запрос на выделение слота.
2222H Запрос к файловому серверу.
3333H Ответ файл-сервера.
5555H Запрос на освобождение слота.
7777H Пакет группового режима (BMP).
9999H Подтверждение приема.
Символ H означает шестнадцатеричное число.
Порядковый номер
Число, используемое сервером и рабочей станцией для идентификации пакетов.
Младшая часть номера соединения
Младшая часть идентификатора соединения, выделенного рабочей станции.
Номер задания
Поле используется для идентификации операционной системы, используемой заданием (например, DOS).
Старшая часть номера соединения
Младшая часть идентификатора соединения, выделенного рабочей станции. Это поле применяется только в версии NetWare на 1000 пользователей. Для всех других версий значение этого поля равно нулю.
Код запроса
Идентифицирует код функции указанного запроса.
Для заголовка пакетов NCP Reply (отклик) используется структура, аналогичная структуре заголовка запросов. Различаются лишь последние два байта, следующие за полем «Старшая часть номера соединения». На следующем рисунке показаны эти байты.
Код завершения |
Статус соединения |
Последние 2 байта заголовка откликов NCP
Код завершения
Нулевое значение кода завершения показывает, что запрос был обработан без ошибок. Любое другое значение говорит об ошибке при обработке запроса.
Статус соединения
При вводе с консоли сервера команды DOWN четвертый бит байта состояния будет установлен в 1.
NDS
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
NDS (NetWare Directory Service – служба каталогов NetWare) является глобально распределенной сетевой базой данных, используемой вместо принятой в ранних версиях NetWare базы bindery. В сети, поддерживающей сервис NDS, для получения доступа ко всем сетевым ресурсам достаточно один раз зарегистрироваться в сети (не требуется регистрации на каждом сервере).
Формат пакетов NDS показан на рисунке.
Биты |
|||||||
8 |
16 |
24 |
32 |
||||
Дескриптор фрагментирования |
|||||||
Максимальный размер фрагмента |
|||||||
Размер сообщения |
|||||||
Флаг фрагментации |
|||||||
Внутренняя команда |
Структура пакетов NDS
Дескриптор фрагментации
Дескриптор фрагментированного запроса или отклика.
Максимальный размер фрагмента
Максимальное число байтов данных, которые могут быть переданы в ответ.
Размер сообщения
Реальный размер передаваемого сообщения.
Флаг фрагментации
Это поле всегда имеет нулевое значение.
Внутренняя команда
Номер команды NDS, которая должна быть выполнена.
NLSP
Novell publication NetWare Link Services Protocol Specification rev 1.0
NLSPtm (NetWare Link Service Protocol — протокол канального сервиса NetWare) является протоколом маршрутизации на основе состояния каналов (link state) для сетей IPX. Этот протокол обеспечивает требуемый обмен информацией между маршрутизаторами в больших сетях IPX. Протокол IPX используется на сетевом уровне Novell NetWare.
Формат заголовка NLSP показан на рисунке.
Биты |
||||||||
8 |
16 |
24 |
32 |
|||||
Идентификатор протокола |
Длина |
Младший байт версии |
Резерв |
|||||
NR |
R |
Тип пакета |
Старший байт версии |
Зарезервировано |
||||
Длина пакета |
Структура заголовка NLSP
Идентификатор протокола
Указывает на уровень маршрутизации NLSP.
Длина
Размер фиксированной части заголовка в байтах.
Младший байт версии
Это поле равно 1.
NR
Это поле имеет значение 1 для серверов multi-homed non-routing (несколько сетевых адаптеров без поддержки маршрутизации между ними).
R
Зарезервированное поле размером 2 бита.
Тип пакета
Типа пакета.
Старший байт версии
Это поле равно 1.
Длина пакета
Полный размер пакета (в байтах) с учетом фиксированной части заголовка NLSP.
NovelNetBIOS
Этот протокол был разработан компанией Novell на основе протокола NetBIOS.
В пакетах протокола NovelNetBIOS поле типа потока данных имеет фиксированный размер (1 байт), а остальные поля имеют переменную длину.
Возможные значения поля типа потока данных перечислены в списке.
- Найти имя.
- Имя опознано.
- Проверить имя.
- Имя используется.
- Отменить регистрацию имени.
- Данные сессии.
- Завершение сеанса.
- Подтверждение конца сессии.
- Запрос состояния.
- Ответ на запрос о состоянии.
- Направленная дейтаграмма.
RIPX
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол маршрутной информации RIPX (Routing Information Protocol) используется для сбора, поддержки и обмена корректной информацией о маршрутах между шлюзами в Internet. Следует отличать описываемый здесь протокол от протокола RIP в стеке TCP/IP.
Формат пакета RIPX показан на рисунке.
Биты |
|||||||
16 |
|||||||
Операция |
|||||||
Номер сети (4 байта) |
|||||||
Количество интервалов |
|||||||
Количество тактов |
|||||||
. |
Формат пакета RIPX
Операция
Указывает тип пакета.
- Запрос RIP.
- Отклик RIP.
Номер сети
32-битовый адрес сети.
Количество интервалов
Количество маршрутизаторов, через которые будет передан пакет для достижения указанной сети. Для маршрутов, которые стали недоступны, маршрутизаторы передают в широковещательном режиме пакеты «going dowm», содержащие в этом поле значение 16.
Количество тактов
Мера времени, необходимого пакету для достижения указанной сети (1 такт = 1/18,21 с).
SER
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Для обеспечения корректности лицензирования серверных программ в сети NetWare каждый сервер передает в широковещательном режиме специальные пакеты (Serialization). Эти пакеты содержат серийный номер серверных программ и позволяют зафиксировать наличие в сети двух или более копий одного комплекта программ.
Пакеты проверки содержат только одно 6-байтовое поле данных.
SAP
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Прежде, чем станция-клиент сможет установить соединение с сервером, она должна узнать об имеющихся в сети серверах. Для обеспечения станций требуемой информацией служит протокол SAP (Service Advertising Protocol — протокол анонсирования сервиса). Протокол SAP обеспечивает распространение информации обо всех серверах, присутствующих в сети предприятия. В качестве таких серверов могут выступать файловые серверы, сервера печати и доступа, а также серверы иных типов.
Структура откликов SAP показана на рисунке.
Операция (2 байта) |
Тип сервиса (2 байта) |
Имя сервера (48 байтов) |
Адрес сети (4 байта) |
Адрес узла (6 байтов) |
Адрес сокета (2 байта) |
Интервалы (2 байта) |
. |
Структура отклика SAP
Число серверов, информация о которых может содержаться в одном отклике SAP, достигает 7.
Операция
Это поле задает выполняемую пакетом операцию.
- Общий запрос о наличии сервиса.
- Отклик на общий ответ о предлагаемом сервисе.
- Запрос ближайшего сервиса
- Отклик на запрос ближайшего сервиса.
Тип сервиса
Поле типа сервиса может принимать несколько значений:
01H Пользователь.
04H Файловый сервер.
07H Сервер печати.
21H Шлюз NAS SNA.
23H NACS.
27H Шлюз TCP/IP.
98H Сервер доступа NetWare.
107H NetWare 386 SROREXP Spec.
137H Очередь печати NetWare 386.
Символ H означает шестнадцатеричное число.
Имя сервера
48-байтовое поле, содержащее имя сервера в одинарных кавычках (апострофы).
Адрес сети
32-битовый номер сети для сервера.
Адрес узла
48- битовый адрес сервера.
Адрес сокета
16- битовый номер сокета на сервере.
Интервалы
Число маршрутизаторов, через которые будет передан пакет для достижения указанной сети. Если маршрут по каким-либо причинам перестал быть доступным, поле счетчика интервалов содержит значение 16.
Структура заголовка запроса SAP показана на рисунке.
Операция (2 байта) |
Тип сервиса (2 байта) |
Структура запроса SAP
SPX
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол SPX (Sequenced Packet Exchange – последовательный обмен пакетами) был разработан компанией Novell на основе протокола SPP (Sequenced Packet Protocol — протокол последовательной передачи пакетов) фирмы Xerox. Протокол работает на транспортном уровне и обеспечивает доставку пакетов для приложений вышележащих уровней.
В июле 1991 года компания Novell начала разработку следующей версии протокола SPX — SPX II. Основными улучшениями в SPX II по сравнению с SPX является поддержка пакетов большего размера и возможность использования протоколов с поддержкой окон.
Структура пакетов SPX показана на рисунке.
Биты |
|||||||
8 |
16 |
||||||
Флаги управления соединением |
Тип потока данных |
||||||
Идентификатор отправителя |
|||||||
Идентификатор получателя |
|||||||
Порядковый номер |
|||||||
Число подтвержденных пакетов |
|||||||
Число неподтвержденных пакетов |
|||||||
0 — 543 байтов данных |
Структура пакета SPX
Флаг управления соединением
Соединение SPX использует 4 флага, которые управляют двунаправленным потоком данных. Единичное значение флага означает поддержку соответствующей функции.
Бит 4 Eom — конец сообщения.
Бит 5 Att: — бит “внимание”, не используемый в SPX.
Бит 6 Ack: — требуется подтверждение приема данных.
Бит 7 Sys: Транспортный контроль.
Тип потока данных
Это поле указывает тип содержащихся в пакете данных:
0-253 Игнорируется протоколом SPX.
254 Окончание соединения
255 Подтверждение окончания соединения.
Идентификатор отправителя
16-битовое число, выделяемое протоколом SPX для идентификации соединения.
Идентификатор получателя
Число, используемое для идентификации получателя в соединении SPX.
Порядковый номер
16-битовое число, показывающее порядковый номер пакета SPX.
Число подтвержденных пакетов
16-битовое число, указывающее порядковый номер следующего пакета.
Число неподтвержденных пакетов
16-битовое число, показывающее количество переданных, но не подтвержденных пакетов.
Протокол SPX II использует аналогичную структуру заголовка пакетов с двумя отличиями.
Флаг управления соединением
Бит 2 Согласование размера.
Бит 3 Тип SPX II.
Тип потока данных
252 Запрос на обычное разъединение.
253 Подтверждение обычного разъединения.
Кроме того, в конце заголовка присутствует дополнительное двухбайтовое поле Extended Acknowledgment (расширенное подтверждение).
WDOG
«Novell’s Guide to NetWare LAN Analysis» by Laura A. Chappell and Dan E. Hakes, Novell Press, 1994.
Протокол WDOG (Watchdog – сторожевая собака) обеспечивает постоянную проверку соединений активных рабочих станций и уведомляет операционную систему NetWare, если соединение может быть закрыто в результате продолжительного бездействия.
Структура пакета WDOG показана на рисунке.
Биты |
|||||||
8 |
16 |
||||||
Номер соединения |
Символ подписи |
Структура пакета WDOG
Номер соединения
Выдается станции при регистрации в сети.
Символ подписи
Поле подписи содержит значение 0x3F (символ ASCII «?») или 0x59 (ASCII «Y»).