ZuboLom.ru

Протокол Sequenced Packed eXchange (SPX)

SPX – это транспортный протокол фирмы Novell использующий метод взаимодействия с установлением взаимодействия. Во время установления соединения каждому из них на обеих концах линии назначается уникальный идентификатор соединения. После этого пакеты могут посылаться в любом направлении с гарантией того, что они будут получены в правильном порядке (прикладному программисту не надо следить за этим как в IPX).

Для фактической отправки и получения пакетов SPX использует датаграммный протокол IPX. Структура пакета SPX содержит 30 байт заголовка IPX за которыми следует 12 байт заголовка SPX. В результате чего общая длина пакета данных SPX сокращается до 534 байт.

Контрольная сумма2
Длина2
Управление транспортом1
Тип пакета1
Сеть назначения 4
Узел назначения6
Гнездо назначения2
Исходная сеть4
Исходный узел6
Исходное гнездо2
Управление соединением1
Тип потока данных1
Исходный идентификатор соединения2
Идентификатор соединения назначения2
Последовательный номер2
Номер подтверждения2
Номер промежуточного размещения2
Поле данных0-534

Поле управления соединением имеет следующий формат: SA!EXXXX.
Бит S – флаг системного пакета.
Бит A – флаг необходимости подтверждения.
Бит ! - флаг внимания.
Бит E - конец сообщения.
Используется A!E. XXXX – зарезервировано.

Тип потока данных определяет вложенный пакет более высокого уровня.

Поле исходный идентификатор соединения – номер присвоенный SPX данному соединению на исходной WS.

Поле идентификатор соединения назначения - на станцию назначения (возможно посылать сообщение на одно гнездо с разными номерами соединения).

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

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

Поле номер промежуточного размещения устанавливается SPX и используется для подсчета числа пакетов но не подтвержденных другой WS.

Для программирования протокола IPX и SPX в Windows необходимо использовать библиотеку WinSock2.dll.