TZSP
TaZmen Sniffer Protocol (TZSP) är ett inkapslingsprotokoll som används för att omsluta andra protokoll. Det används vanligtvis för att slå in 802.11 trådlösa paket för att stödja Intrusion Detection Systems (IDS), trådlös spårning eller andra trådlösa applikationer.
Protokollsammanfattning
Ett antal 802.11- sensorer och åtkomstpunkter använder TZSP-protokollet för paketfångning . Det är ett öppet protokoll som utformats för att kapsla in andra protokoll över UDP . Den primära användningen av detta protokoll har varit infångning av trådlös trafik och överföring av dem över ett trådbundet nätverk.
Protokollrubrik
Protokollet specificerade tre delar till varje TZSP-paket: En 4-byte header följt av ett eller flera taggade fält, varav det sista måste vara TAG_END(0x01), och slutligen den inkapslade datan.
Rubriken och de taggade fälten använder big-endian ordning där så är lämpligt.
Rubrik | Version (1 osignerad byte) |
---|---|
Typ (1 osignerad byte) | |
Inkapslat protokoll (1 osignerad kort) | |
Taggade fält | Taggade fält (variabel längd) |
Taggfältslut (1 osignerad byte) | |
Inkapslat paket | Inkapslat paket (variabel längd) |
Version
TZSP-versionen ska alltid vara inställd på 1 (0x01).
Typ
0 (0x00) Mottagen etikettlista 1 (0x01) Paket för sändning 2 (0x02) Reserverad 3 (0x03) Konfiguration 4 (0x04) Keepalive 5 (0x05) Portöppnare
Inkapslat protokoll
1 (0x01) Ethernet 18 (0x12) IEEE 802.11 119 (0x77) Prism Header 127 (0x7F) WLAN AVS
Taggade fält
De taggade fälten består av en taggtyp på en byte, följt av en tagglängd på en byte, följt av en variabel mängd data. Tagglängden inkluderar inte taggtypen eller tagglängden. Alla TZSP-kompatibla avkodare bör hoppa över okända taggade fält.
<1 osignerad byte > Taggtyp <1 osignerad byte > Tagglängd Beroende på tagglängd
Det finns två undantag från detta format. För det första, när en TAG_END (0x01) tas emot är det slutet på alla taggade fält. Den HAR INTE en tagglängd eller några associerade data. Den andra är TAG_PADDING (0x00). Detta kan infogas när som helst och bör ignoreras. Den HAR INTE tagglängd eller taggdata.
Följande är de giltiga TZSP-taggtyperna:
TAG_PADDING = 0 (0x00)
Detta specialtaggade fält har varken tagglängd eller taggdata. Mottagaren bör ignorera det. Det används ibland för att packa ramen till en ordgräns.
TAG_END = 1 (0x01)
Detta specialtaggade fält har varken tagglängd eller taggdata. Det betyder att det inte finns fler taggar. Efter denna tagg, till slutet av UDP-paketet, är den inkapslade ramen. Detta är den enda taggen som krävs och måste inkluderas före den inkapslade datan. Inga variabeltaggar kan följa denna.
TAG_RAW_RSSI = 10 (0x0A)
Detta fält innehåller den råa RSSI som erhålls från sensorn. Data är antingen en signerad byte eller signerad kort.
TAG_SNR = 11 (0x0B)
Detta fält innehåller det råbrus som erhålls från sensorn. Data är antingen en signerad byte eller signerad kort.
TAG_DATA_RATE = 12 (0x0C)
Detta fält innehåller datahastigheten som det inkapslade paketet sändes med.
Följande är giltiga värden som kan användas:
2 (0x02) = 1MB/s 4 (0x04) = 2MB/s 11 (0x0B) = 5,5MB/s 12 (0x0C) = 6MB/s 18 (0x12) = 9MB/s 22 (0x16) = 11MB/s 24 (0x18) = 12MB/s 36 (0x24) = 18MB/s 44 (0x2C) = 22MB/s 48 (0x30) = 24MB/s 66 (0x42) = 33MB/s 72 (0x48) = 36MB/s 606 (0x18) ) = 48MB/s 108 (0x6C) = 54MB/s
Följande är gamla konstanter som kan användas i gamla prismabaserade sensorer. En TZSP-avkodare ska kunna avkoda dem men de ska INTE användas i en TZSP-kodare:
10 (0x0A) = 1MB/s 20 (0x14) = 2MB/s 55 (0x37) = 5,5MB/s 110 (0x6E) = 11MB/s
TAG_TIMESTAMP = 13 (0x0D)
Detta är den tid som sensorns MAC tog emot paketet. Det är en 4-byte osignerad int.
TAG_CONTENTION_FREE = 15 (0x0F)
Detta används för att avgöra om paketet skickades under en konfliktfri period . Det är en 1-byte osignerad byte.
TAG_DECRYPTED = 16 (0x10)
Detta används för att avgöra om paketet var dekrypterat. Det är en 1-byte osignerad byte.
TAG_FCS_ERROR = 17 (0x11)
Detta används för att avgöra om paketet hade ett ramkontrollsekvensfel (FCS) vid mottagning. Det är en 1-byte osignerad byte. En etta (0x01) anger att det fanns ett FCS-fel vid avkodningen av paketet. En nolla (0x00), eller uteslutningen av detta fält betyder att det inte fanns något avkodningsfel. Alla andra värden är reserverade.
TAG_RX_CHANNEL = 18 (0x12)
Det här är kanalen som sensorn var på när den fångade paketet. Det är INTE kanalen som paketet sändes på. Detta lagras som en osignerad byte.
TAG_PACKET_COUNT = 40 (0x28)
Detta är ett monotont ökande paketantal. Den lagras som en fyra byte osignerad int.
TAG_RX_FRAME_LENGTH = 41 (0x29)
Detta är den mottagna paketlängden. Det är inte nödvändigtvis storleken på det överförda paketet som kan ha trunkerats. Detta lagras som en tvåbyte osignerad kortslutning.
TAG_WLAN_RADIO_HDR_SERIAL = 60 (0x3C)
Detta används av vissa sensorleverantörer för att ange serienumret eller annan unik identifierare för sensorn eller AP som fångade paketet. Detta är ett fält med variabel längd.
Inkapslat paket
Det inkapslade paketet ska lagras omedelbart efter de taggade fälten. Detta inkapslade paket kan trunkeras från den ursprungliga fulla paketstorleken och behöver inte ha samma storlek som anges i fältet TAG_RX_FRAME_LENGTH. Det antas att det inkapslade paketet tar upp hela resten av UDP- paketet.