ТЗСП
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2007 г. ) |
TaZmen Sniffer Protocol (TZSP) — это инкапсуляции, протокол используемый для обертывания других протоколов. Он обычно используется для упаковки беспроводных пакетов 802.11 для поддержки систем обнаружения вторжений (IDS) , беспроводного отслеживания или других беспроводных приложений.
Краткое описание протокола [ править ]
Ряд датчиков 802.11 и точек доступа используют протокол TZSP для захвата пакетов . Это открытый протокол, разработанный для инкапсуляции других протоколов поверх UDP . Основным применением этого протокола был захват беспроводного трафика и его передача по проводной сети.
Заголовок протокола [ править ]
Протокол определял три части каждого пакета TZSP: 4-байтовый заголовок, за которым следовали одно или несколько полей с тегами, последнее из которых должно быть TAG_END(0x01), и, наконец, инкапсулированные данные.
В полях заголовка и тегах, где это возможно, используется обратный порядок байтов .
Заголовок | Версия (1 байт без знака) |
---|---|
Тип (1 байт без знака) | |
Инкапсулированный протокол (1 короткий беззнаковый) | |
Поля с тегами | Поля с тегами (переменная длина) |
Конец поля тега (1 байт без знака) | |
Инкапсулированный пакет | Инкапсулированный пакет (переменной длины) |
Версия [ править ]
Версия TZSP всегда должна быть установлена равной 1 (0x01).
Введите [ изменить ]
0 (0x00) Received tag list 1 (0x01) Packet for transmit 2 (0x02) Reserved 3 (0x03) Configuration 4 (0x04) Keepalive 5 (0x05) Port opener
Инкапсулированный протокол [ править ]
1 (0x01) Ethernet 18 (0x12) IEEE 802.11 119 (0x77) Prism Header 127 (0x7F) WLAN AVS
Поля с тегами [ править ]
Поля с тегами состоят из однобайтового типа тега, за которым следует однобайтовая длина тега, за которым следует переменный объем данных. Длина тега не включает тип или длину тега. Все декодеры, совместимые с TZSP, должны пропускать неизвестные поля с тегами.
<1 unsigned byte > Tag Type <1 unsigned byte > Tag Length <variable length > Dependent on Tag Length
Из этого формата есть два исключения. Во-первых, когда получен 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 MB/s 4 (0x04) = 2 MB/s 11 (0x0B) = 5.5 MB/s 12 (0x0C) = 6 MB/s 18 (0x12) = 9 MB/s 22 (0x16) = 11 MB/s 24 (0x18) = 12 MB/s 36 (0x24) = 18 MB/s 44 (0x2C) = 22 MB/s 48 (0x30) = 24 MB/s 66 (0x42) = 33 MB/s 72 (0x48) = 36 MB/s 96 (0x60) = 48 MB/s 108 (0x6C) = 54 MB/s
Ниже приведены старые константы, которые можно было использовать в старых датчиках на базе призмы. Декодер TZSP должен иметь возможность их декодировать, но их НЕ следует использовать в кодере TZSP:
10 (0x0A) = 1 MB/s 20 (0x14) = 2 MB/s 55 (0x37) = 5.5 MB/s 110 (0x6E) = 11 MB/s
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 .