TZSP - TZSP

TaZmen funga Protocolo (TZSP) é um encapsulamento protocolo usado para envolver outros protocolos. É comumente usado para embrulhar 802.11 pacotes sem fio para apoiar Sistemas de Intrusão detecção (IDS) , rastreamento sem fio, ou outras aplicações sem fio.

Síntese do Protocolo

Um número de 802.11 sensores e pontos de acesso utilizam o protocolo TZSP para pacote de captura. É um protocolo aberto que foi projetado para encapsular outros protocolos sobre UDP . O uso primário para este protocolo tem sido a captura de tráfego sem fio e transmissão deles através de uma rede com fio.

Protocolo de Cabeçalho

O protocolo especificado três partes para cada pacote TZSP: Um cabeçalho de 4 bytes seguido por um ou mais campos marcados, o último dos quais tem de ser a TAG_END (0x01), e finalmente os dados encapsulados.

Os campos de cabeçalho e marcou usar big-endian ordenação quando apropriado.

Cabeçalho Versão (1 byte sem sinal)
Tipo (1 byte sem sinal)
protocolo encapsulado (1 unsigned short)
Campos Tagged Tagged Campos (comprimento variável)
extremidade campo de etiqueta (1 byte unsigned)
pacote encapsulado pacote encapsulado (comprimento variável)

Versão

A versão TZSP deve ser sempre definido como 1 (0x01).

Tipo

0 (0x00) Received tag list
1 (0x01) Packet for transmit
2 (0x02) Reserved
3 (0x03) Configuration
4 (0x04) Keepalive
5 (0x05) Port opener

Protocolo encapsulado

  1 (0x01) Ethernet
 18 (0x12) IEEE 802.11
119 (0x77) Prism Header
127 (0x7F) WLAN AVS

Campos Tagged

Os campos com tag consistir de um tipo de etiqueta de um byte, seguido por um comprimento de marca de um byte, seguido por uma quantidade variável de dados. O comprimento tag não inclui o tipo de tag ou comprimento tag. Todos os decodificadores compatíveis TZSP deve pular campos marcados desconhecidos.

<1 unsigned byte > Tag Type
<1 unsigned byte > Tag Length
<variable length > Dependent on Tag Length

Há duas excepções a este formato. Em primeiro lugar, quando uma TAG_END (0x01) é recebida é a extremidade de todos os campos marcados. Ele não tem um comprimento Tag nem quaisquer dados associados. A segunda é o TAG_PADDING (0x00). Isto pode ser inserido em qualquer ponto e deve ser ignorado. Ele não tem um comprimento tag nem quaisquer dados de tag.

A seguir estão os tipos de etiquetas TZSP válidos:

TAG_PADDING = 0 (0x00)

Este campo etiquetado especial não tem nem comprimento tag nem quaisquer dados de tag. O receptor deve ignorá-lo. Às vezes é usado para embalar o quadro para um limite de palavra.

TAG_END = 1 (0x01)

Este campo etiquetado especial não tem nem comprimento tag nem quaisquer dados de tag. Isto significa que não há mais tags. Seguindo esta etiqueta, até que a extremidade do pacote UDP, é o quadro encapsulado. Esta é a única marca que é necessário e deve ser incluído antes dos dados encapsulados. Nenhuma tag variável pode seguir este.

TAG_RAW_RSSI = 10 (0x0A)

Este campo contém a matéria- RSSI obtido a partir do sensor. Os dados são tanto um byte assinado ou assinado curto.

TAG_SNR = 11 (0x0B)

Este campo contém o ruído em bruto obtido a partir do sensor. Os dados são tanto um byte assinado ou assinado curto.

TAG_DATA_RATE = 12 (0x0C)

Este campo contém a taxa de dados do pacote encapsulado foi transmitido a.

A seguir estão os valores válidos que podem ser usados:

  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
 96 (0x60) =  48MB/s
108 (0x6C) =  54MB/s

A seguir, são antigos constantes que podem ser utilizados em sensores à base de prisma de idade. Um decodificador TZSP deve ser capaz de decodificar-los, mas eles não devem ser usados ​​em um codificador TZSP:

 10 (0x0A) =   1MB/s
 20 (0x14) =   2MB/s
 55 (0x37) = 5.5MB/s
110 (0x6E) =  11MB/s

TAG_TIMESTAMP = 13 (0x0D)

Este é o momento em que o sensor de MAC recebeu o pacote. É um unsigned int 4 bytes.

TAG_CONTENTION_FREE = 15 (0x0F)

Isto é usado para dizer se o pacote foi enviado em um período de contenção livre . É um não assinado byte um byte.

TAG_DECRYPTED = 16 (0x10)

Isto é usado para dizer se o pacote foi descodificada. É um não assinado byte um byte.

TAG_FCS_ERROR = 17 (0x11)

Isto é usado para dizer se o pacote tinha uma seqüência de verificação de quadros de erro (FCS) na recepção. É um não assinado byte um byte. A um (0x01) especifica que houve um erro de FCS sobre a descodificação do pacote. Um zero (0x00), ou a exclusão deste campo significa que não houve erro de descodificação. Todos os outros valores são reservados.

TAG_RX_CHANNEL = 18 (0x12)

Este é o canal o sensor foi em quando capturou o pacote. Não é o canal que o pacote foi transmitido por diante. Isto é armazenado como um byte sem sinal.

TAG_PACKET_COUNT = 40 (0x28)

Esta é uma contagem de pacotes monótona crescente. Ele é armazenado como um unsigned int quatro bytes.

TAG_RX_FRAME_LENGTH = 41 (0x29)

Este é o comprimento do pacote recebido. Não é necessariamente o tamanho do pacote transmitido, o qual pode ter sido cortada. Esta é armazenado como um dois bytes unsigned short.

TAG_WLAN_RADIO_HDR_SERIAL = 60 (0x3C)

Isto é usado por alguns fornecedores de sensores para especificar o número de série ou outro identificador exclusivo para o sensor ou AP que capturou o pacote. Este é um campo de comprimento variável.

Packet encapsulado

O pacote encapsulado devem ser armazenados imediatamente após os campos marcados. Este pacote encapsulado pode ser truncado a partir do tamanho do pacote original completo e não precisa ser do mesmo tamanho, conforme especificado no campo TAG_RX_FRAME_LENGTH. Supõe-se que o pacote encapsulado ocupa todo o resto do UDP de pacotes.

Suporte Open Source

Referências

links externos