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

Phi payload

  • 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

MAC payload

  • 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

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

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.