Протокол IPX

IPX базируется на протоколе IDP (Internetwork Datagram Packet, межсетевой обмен дейтаграммами), разработанном для сетевых служб Xerox (XNS, Xerox Network Services). IPX обеспечивает базовые транспортные услуги без уста­новления соединения между системами интерсети при широковещательной и однонаправленной передаче. Большая часть обычного трафика между сер­верами NetWare или между клиентами и серверами переносится посредст­вом дейтаграмм IPX.

Заголовок дейтаграммы IPX имеет длину 30 байтов (для сравнения: размер заголовка IP равен 20 байтам). Формат заголовка IPX приведен на рис. 12.1, а назначение полей заголовка перечислено ниже.

Контрольная сумма (Checksum), 2 байта.В оригинальном заголовке ЮР это поле содержит значение CRC для дейтаграммы. Так как протоколы Канального уровня сами выполняют проверку контрольных сумм$ то данная функция при обработке дейтаграмм IPX не задействована и поле всегда содержит шестнадцатеричное значение fftT.

Длина (Length), 2 байта.Задает размер дейтаграммы в байтах, включая заголовок IPX и поле данных.

Управление доставкой (Transport Control), 1 байт.Это поле также извест­но как счетчик транзитов (hop count)- Оно фиксирует количество мар­шрутизаторов, через которые прошла дейтаграмма на пути к месту назна­чения. Передающая система сбрасывает его в 0, а каждый из маршру­тизаторов при обработке дейтаграммы увеличивает значение счетчика на 1. Как только количество транзитных маршрутизаторов достигает 16, по­следний из них отбрасывает дейтаграмму.

Тип пакета (Packet Type), 1 байт.Идентифицирует сервис или протокол верхнего уровня, который создал данные, переносимые дейтаграммой. Используются следующие значения:

0 — не определен;

• 1 — Routing Information Protocol (RIP, протокол информации маршру­тизации);

4 — Service Advertising Protocol (SAP, протокол извещения об услугах);

5 — Sequenced Packet Exchange (SPX, последовательный обмен пакетами);

• 17 — NetWare Core Protocol (NCP, основной протокол NetWare).

Адрес сети назначения (Destination Network Address), 4 байта.Указывает сеть, в которой расположена система-получатель, содержит значение, выделенное администратором или операционной системой во время ин­сталляции NetWare.

Адрес узла назначения (Destination Node Address), 6 байтов.Определяет сетевой интерфейс компьютера, которому должны быть доставлены дан­ные, представляет собой аппаратный адрес протокола Канального уров­ня. Широковещательные сообщения передаются с шестнадцатеричным адресом ffifrTTfffir.

Сокет назначения (Destination Socket), 2 байта.Отвечает за идентифика­цию процесса, выполняющегося на системе-получателе, для которого, собственно, и предназначены данные внутри дейтаграммы. Используется одно из следующих значений:

• 0451— NetWare Core Protocol;

• 0452— Service Advertising Protocol;

• 0453— Routing Information Protocol;

0455 - NetBIOS;

• 0456— диагностический пакет;

• 0457 — пакет присваивания номера (serialization packet);

• 4000—6000— сокеты, отведенные процессам сервера;

• 9000— NetWare Link Services Protocol;

. 9004- IPXWAN Protocol.

Адрес сети источника (Source Network Address), 4 байта.Идентифицирует, в которой находится система, пославшая дейтаграмму. Используется зна­чение, выделенное администратором или операционной системой во время инсталляции NetWare.

Адрес узла источника (Source Node Address), 6 байтов.Содержит аппарат­ный адрес протокола Канального уровня для сетевого интерфейса ком­пьютера, который отправил дейтаграмму.

Сокет источника (Source Socket), 2 байта.Определяет процесс, выпол­няющийся на локальной системе, сформировавший данные пакета. При­меняются те же значения, что и для поля сокета назначения.

Данные (Data), переменной длины.Информация, сгенерированная прото­колом вышележащего уровня.

Серверы NetWare используют протокол маршрутизации, такой как RIP (Routing Information Protocol, протокол информации маршрутизации) или NLSP (NetWare Link Services Protocol, протокол коммуникационных услуг NetWare) для того, чтобы определить жизнеспособный маршрут к месту на­значения. Как и другие протоколы Сетевого уровня, маршрутизатор IPX от­деляет от каждого пакета данные протокола Канального уровня и формирует новый кадр для передачи через другую сеть. Единственное изменение, про­изводимое маршрутизатором в заголовке IPX, это — инкремент значения в поле управления доставкой.

Поскольку IPX является протоколом без установления соединения, для под­тверждения правильности доставленных данных он полагается на протоколы верхних уровней. Например, когда клиент посылает запрос к серверу, ис­пользуя сообщение протокола NCP (NetWare Core Protocol, основной про­токол NetWare), помещенное в дейтаграмму, то ответ от сервера играет роль подтверждения получения данных запроса.

Тем не менее, клиенты NetWare активируют системные часы тайм-аута запро­са, по истечении которого таймер вынуждает их повторно отправить дейта­грамму IPX, если ответ не был получен в течение заданного периода времени. При возникновении в сети условий, которые чрезвычайно замедляют трафик, клиент может быть вынужден передавать дейтаграмму несколько раз до тех пор, пока она не будет корректно принята узлом назначения. Количеством попыток повторной отправки дейтаграммы можно управлять, изменяя пара­метр IPX RETRY COUNT клиентской системы, значение по умолчанию для которого равно 20. У систем под управлением Windows NT или 9.x с установ­ленным клиентом Novell Netware этот параметр протокола IPX может быть най­ден в диалоговом окне Properties(Свойства). Для клиентов DOS/Windows 3.1 в системный файл Net.cfg следует добавить следующую строку:

IPX RETRY COUNT =30