Будучи производным от XNS SPP (SequencedPacketProtocol, протокол последовательной передачи пакетов), протокол SPX работает на Транспортном уровне и предоставляет надежный сервис с установлением соединения, управлением потоком и определением порядка следования пакетов, и более напоминает TCP в стеке протоколов TCP/IP. Тем не менее, системы NetWare используют его намного реже, чем системы TCP/IP — TCP. Типичные процедуры доступа к файлам в сети NetWare применяют протокол NCP, который отвечает за большую часть производимого трафика. SPX требуется только для задач, которые связаны с его услугами, таких как обмен данными между серверами печати, очередями печати и удаленными принтерами, сеансы RCONSOLE и сетевое резервное копирование.
Поле управления соединением (ConnectionControl), 1 байт. Содержит код, который регулирует двунаправленный поток данных. Управляющие коды могут принимать следующие шестнадцатеричные значения:
•10 — конец сообщения;
•20 — внимание;
•40 — требуется подтверждение;
•80 — системный пакет.
|
|
Тип потока данных (Datastream Туре), 1 байт. Описывает природу данных в сообщении и указывает на процесс верхнего уровня, для которого оно предназначено. Возможные значения определяются клиентом или применимы следующие ниже:
•FE — завершение соединения;
•FF — подтверждение завершения соединения.
Идентификатор исходного соединения (SourceConnection ID), 2 байта. Отвечает за однозначную идентификацию конкретного соединения, поскольку система может иметь несколько соединений для одного сокета, открытых одновременно.
Идентификатор соединения назначения (DestinationConnection ID), 2 байта. Представляет собой уникальное значение, на основании которого система назначения идентифицирует данное соединение. В начале процесса установления соединения значение этого поля устанавливается равным ffff, поскольку идентификатор соединения другой системы еще не известен.
Порядковый номер (SequenceNumber), 2 байта. Содержит номер, увеличивающийся на единицу с каждым сообщением, переданным за время соединения. Принимающая система использует этот номер, чтобы обрабатывать сообщения в правильном порядке.
Номер подтверждения (AcknowledgmentNumber), 2 байта. Фиксирует порядковый номер следующего сообщения, которое система предполагает получить от присоединенной системы. Таким образом, подтверждается получение всех пакетов, имеющих меньший порядковый номер.
Количество места (AllocationNumber), 2 байта. Реализует механизм управления потоком, указывая количество пакетов, которое может принять входной буфер системы.
Данные (Data), переменной длины. Содержит данные, предназначенные для процессов или протоколов верхнего уровня.
|
|
Как и в случае любых других протоколов с установлением соединения, две системы обмениваются управляющими сообщениями, инициализируя соединение, прежде чем будут переданы какие-либо данные приложения. После того как связь установлена, системы периодически отправляют дежурные сообщения для поддержания соединения в моменты отсутствия активности. В сети с производительностью, снизившейся в результате интенсивного трафика или других проблем, соединения SPX могут разрываться по тайм-ауту в связи с задержками передачи.