Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS


Формат пакета SPX


Пакет, передаваемый при помощи протокола SPX, имеет более длинный заголовок. Дополнительно к 30 байтам стандартного заголовка пакета IPX добавляется еще 12 байт (рис. 4).

Рис. 4. Формат заголовка пакета SPX

Приведем структуру заголовка пакета SPX для использования в программах, составленных на языке Си:

struct SPX_HEADER { unsigned int Checksum; unsigned int Length; unsigned char TransportControl; unsigned char PacketType; unsigned char DestNetwork[4]; unsigned char DestNode[6]; unsigned int DestSocket; unsigned char SourceNetwork[4]; unsigned char SourceNode[6]; unsigned int SourceSocket; // ------------Специфическая для SPX часть --------- unsigned char ConnControl; unsigned char DataStreamType; unsigned char SourceConnID[2]; unsigned char DestConnID[2]; unsigned char SequenceNumber[2]; unsigned char AckNumber[2]; unsigned char AllocationNumber[2]; };

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

Биты Назначение
01h-08h Зарезервировано
10h End-of-Message. Этот бит может использоваться программой для сигнализации окончания передачи данных. Драйвер SPX передает этот бит программе в неизменном виде, причем сам драйвер протокола SPX этот бит игнорирует
20h Attention. Этот бит игнорируется драйвером SPX и передается в неизменном виде программе
40h Acknowledgement Required. Бит используется драйвером SPX. Вам не следует модифицировать его значение
80h System Packet. Этот бит устанавливается драйвером SPX при передаче системных пакетов, которые используются самим драйвером и не передаются в программу пользователя

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

Биты Назначение
00h-FDh Эти значения игнорируются драйвером SPX и могут быть использованы программой произвольным образом
FEh End-of-Connection. Когда программа вызывает функцию, закрывающую SPX-канал, драйвер SPX посылает партнеру по связи последний пакет, в поле DataStreamType которого записано значение FEh. Это служит требованием завершить связь и закрыть канал
FFh End-of-Connection-Acknowledgement. Это значение отмечает пакет, подтверждающий завершение связи. Такой пакет является системным и не передается в программу пользователя
<


- Начало -  - Назад -  - Вперед -



Книжный магазин