ТЗСП - TZSP

Протокол TaZmen Sniffer (TZSP) является инкапсуляция протокол используется для обертывания других протоколов. Обычно используется для обертывания 802.11 беспроводные пакеты для поддержки Системы обнаружения вторжений (IDS), беспроводное отслеживание или другие беспроводные приложения.

Сводка протокола

Номер 802.11 датчики и Точки доступа использовать протокол TZSP для пакет захватывать. Это открытый протокол, который был разработан для инкапсуляции других протоколов через UDP. Основное применение этого протокола - захват беспроводного трафика и его передача по проводной сети.

Заголовок протокола

Протокол определяет три части для каждого пакета TZSP: 4-байтовый заголовок, за которым следует одно или несколько помеченных полей, последним из которых должно быть TAG_END (0x01), и, наконец, инкапсулированные данные.

Заголовок и поля с тегами используют прямой порядок байтов заказ в случае необходимости.

ЗаголовокВерсия (1 байт без знака)
Тип (1 байт без знака)
Инкапсулированный протокол (1 короткий без знака)
Помеченные поляПоля с тегами (переменной длины)
Конец поля тега (1 байт без знака)
Инкапсулированный пакетИнкапсулированный пакет (переменной длины)

Версия

Версия TZSP всегда должна быть установлена ​​на 1 (0x01).

Тип

0 (0x00) Список полученных тегов1 (0x01) Пакет для передачи2 (0x02) Зарезервировано3 (0x03) Конфигурация 4 (0x04) Keepalive5 (0x05) Открытие порта

Инкапсулированный протокол

  1 (0x01) Ethernet 18 (0x12) IEEE 802.11119 (0x77) Призма Заголовок127 (0x7F) WLAN AVS

Помеченные поля

Поля с тегами состоят из однобайтового тега, за которым следует однобайтный тег, за которым следует переменный объем данных. Длина тега не включает тип тега или длину тега. Все декодеры, совместимые с TZSP, должны пропускать поля с неизвестными тегами.

<1 байт без знака> Тип тега <1 байт без знака> Длина тега <переменная длина> Зависит от длины тега

Из этого формата есть два исключения. Во-первых, когда получено TAG_END (0x01), это конец всех помеченных полей. У него НЕТ ни длины тега, ни каких-либо связанных данных. Второй - TAG_PADDING (0x00). Его можно вставить в любой момент, и его следует игнорировать. У него НЕТ ни длины тега, ни каких-либо данных тега.

Ниже приведены допустимые типы тегов TZSP:

TAG_PADDING = 0 (0x00)

Это специальное поле с тегами не имеет ни длины тега, ни каких-либо данных тега. Получатель должен игнорировать это. Иногда его используют для упаковки рамки до границы слова.

TAG_END = 1 (0x01)

Это специальное поле с тегами не имеет ни длины тега, ни каких-либо данных тега. Это означает, что тегов больше нет. После этого тега до конца UDP-пакета идет инкапсулированный кадр. Это единственный тег, который требуется и должен быть включен перед инкапсулированными данными. Никакие переменные теги не могут следовать за этим.

TAG_RAW_RSSI = 10 (0x0A)

Это поле содержит необработанные RSSI получается с датчика. Данные представляют собой либо байт со знаком, либо короткий знак со знаком.

TAG_SNR = 11 (0x0B)

Это поле содержит необработанный шум, полученный от датчика. Данные представляют собой либо байт со знаком, либо короткий знак со знаком.

TAG_DATA_RATE = 12 (0x0C)

Это поле содержит скорость передачи данных, на которой был передан инкапсулированный пакет.

Ниже приведены допустимые значения, которые можно использовать:

  2 (0x02) = 1 МБ / с 4 (0x04) = 2 МБ / с 11 (0x0B) = 5,5 МБ / с 12 (0x0C) = 6 МБ / с 18 (0x12) = 9 МБ / с 22 (0x16) = 11 МБ / с 24 (0x18) = 12 МБ / с 36 (0x24) = 18 МБ / с 44 (0x2C) = 22 МБ / с 48 (0x30) = 24 МБ / с 66 (0x42) = 33 МБ / с 72 (0x48) = 36 МБ / с 96 (0x60) ) = 48 МБ / с108 (0x6C) = 54 МБ / с

Ниже приведены старые константы, которые можно использовать в старых датчиках на основе призмы. Декодер TZSP должен уметь их декодировать, но они НЕ ДОЛЖНЫ использоваться в кодере TZSP:

 10 (0x0A) = 1 МБ / с 20 (0x14) = 2 МБ / с 55 (0x37) = 5,5 МБ / с 110 (0x6E) = 11 МБ / с

TAG_TIMESTAMP = 13 (0x0D)

Это время, когда датчик MAC получил пакет. Это 4-байтовое целое число без знака.

TAG_CONTENTION_FREE = 15 (0x0F)

Это используется, чтобы определить, был ли пакет отправлен в бесконфликтный период. Это 1-байтовый беззнаковый байт.

TAG_DECRYPTED = 16 (0x10)

Это используется, чтобы узнать, был ли пакет расшифрован. Это 1-байтовый беззнаковый байт.

TAG_FCS_ERROR = 17 (0x11)

Это используется, чтобы определить, был ли пакет последовательность проверки кадра (FCS) ошибка приема. Это 1-байтовый беззнаковый байт. Единица (0x01) указывает, что при декодировании пакета произошла ошибка FCS. Ноль (0x00) или исключение этого поля означает, что ошибки декодирования не было. Все остальные значения зарезервированы.

TAG_RX_CHANNEL = 18 (0x12)

Это канал, на котором датчик находился при захвате пакета. Это НЕ канал, по которому был передан пакет. Он хранится как байт без знака.

TAG_PACKET_COUNT = 40 (0x28)

Это монотонно увеличивающееся количество пакетов. Он хранится как четырехбайтовое целое число без знака.

TAG_RX_FRAME_LENGTH = 41 (0x29)

Это длина полученного пакета. Это не обязательно размер переданного пакета, который мог быть усечен. Он хранится как двухбайтовый беззнаковый короткий.

TAG_WLAN_RADIO_HDR_SERIAL = 60 (0x3C)

Это используется некоторыми поставщиками датчиков для указания серийного номера или другого уникального идентификатора датчика или точки доступа, захватившей пакет. Это поле переменной длины.

Инкапсулированный пакет

Инкапсулированный пакет следует хранить сразу после помеченных полей. Этот инкапсулированный пакет может быть усечен по сравнению с исходным полным размером пакета, и он не обязательно должен быть такого же размера, как указано в поле TAG_RX_FRAME_LENGTH. Предполагается, что инкапсулированный пакет занимает всю оставшуюся часть UDP пакет.

Поддержка открытого исходного кода

Рекомендации

внешняя ссылка