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.