Formato dos pacotes
O Pacote físico e o quadro da camada de enlace são comuns a todas as classes de dispositivos. Eles contêm diversos campos que controlam características da transmissão, ativação da classe B e taxa de dados adaptativa por exemplo.
Campos do payload da camada física
-
MHDR (MAC Header): Especifica o tipo do frame (FType) e a versão (Major).
-
MIC (Message Integrity code): Campo utilizado para garantir integridade e autenticidade das mensagens. Utiliza o algoritmo AES-CMAC (RFC 4493) e é calculado em cima de todos os campos do frame.
Campos do MACPayload
- FHDR (Frame Header): É um campo que contém outros campos de controle.
- FPort (Frame Port): Porta de destino do pacote. O valor 0 indica que o campo FRMPayload contém apenas comandos MAC. Valores de 1 à 223 indicam application data. Além disso o valor 224 é reservado para o protocolo de teste da camada MAC e os valores até 255 reservados para uso futuro.
- FRMPayload (Frame Payload): Comandos MAC ou data message (limite de tamanho varia de acordo com as especificações da região).
Campos do FHDR
- DevAddr (Device Address): O endereço do dispositivo é formado por 32 bits, onde uma parte representa a rede e a outra identifica o dispositivo na rede.
- FCtrl (Frame Control): Campo de 1 byte que controla diversas características.
- FCnt (Frame Count): Número de sequência dos pacotes enviados. O dispositivo de borda aumenta o FCnt toda vez que envia um pacote, da mesma forma que o servidor.
- FOpts (Frame Options): Comandos MAC (máximo de 15 bytes).
Campo FCtrl
Esse campo tem alguns campos diferentes para download e upload, como ilustrado na imagem acima.
-
ADR (Adaptative data rate): É um bit que controla se a taxa de dados adaptativa será utilizada. O campo ADR pode ser usado para download e/ou upload de dados. O algoritimo do ADR tenta maximizar a taxa de transmissão e também minimizar o consumo de potência.
-
ACK (Acknowledgment): Esse bit é setado em um para confirmar, ao servidor ou ao dispositivo, que uma mensagem que exige confirmação foi recebida.
-
FOpslen (Frame options lenght): Guarda a informação do tamanho do campo de opções.
Upload
-
ClassB: Indica que o dispositivo está operando em classe B.
-
ADRACKreq (Adaptative Data Rate Acknowledgment Request) É um campo usado no algorítimo ADR para pedir uma mensagem obrigatória do servidor. Serve para verificar se o servidor está recebendo as mensagens quando o dispositivo está usando a taxa de dados maior e uma potência de transmissão menor que o padrão.
Download
-
RFU (Reserved for future use): Campo reservado para uso futuro.
-
Fpending (Frame pending): O bit é setado em 1 quando o servidor quer indicar que existem mais quadros a serem enviados, e portanto o dispositivo deveria dar oportunidades de recepção imediatamente. No caso da classe A, enviando um pacote o mais rápido possível.