• Nenhum resultado encontrado

Para validar a transmissão ponto-a-ponto de um pacote (PKT), o receptor confirma o recebimento pela camada de enlace por uma mensagem ACKR (Acknowledgement of the

Radio) que é fornecida pelo rádio transmissor. Caso o pacote seja inserido no buffer do

receptor, então o receptor envia a confirmação da camada de transporte, pela mensagem ACKN (Acknowledgement of the Network). Por fim, o emissor envia uma ACKR para o receptor para confirmar o recebimento do ACKN e libera o buffer do emissor para armazenar um novo pacote. A Figura 24 (a) demonstra como é realizada a troca de mensagens ponto-a- ponto com o protocolo µNet e Figura 24 (b) demonstra o processo de transmissão em caso de falhas. Emissor Receptor (a) Emissor Receptor PKT ACKR ACKN ACKR PKT ACKR PKT ACKR ACKN ACKN ACKR (b)

Figura 24 – Transmissão ponto-a-ponto com protocolo µNet. (a) Exemplo de transmissão bem sucedida. (b) Exemplo de retransmissões em caso de falhas.

Cada transmissão é composta por tentativas de transmissão com intervalos distintos entre o tipo de retransmissão. Caso o pacote ACKR não retorne, define-se que houve problema na comunicação entre o emissor e o receptor, por interferência no meio ou mal funcionamento dos dispositivos. Nesse caso, deve-se aguardar um período pequeno entre retransmissão, por padrão definido em 10 ms para o padrão IEEE 802.15.4. Entretanto, se retornar o pacote ACKR e o ACKN não, denota-se que o buffer da rede estava ocupado ou houve erro na transmissão de retorno do ACKN por interferência no meio de comunicação, necessitando que o emissor aguarde novamente para uma nova tentativa de envio. Nesse caso, deve-se aguardar um tempo mais elevado do que o caso anterior, pois se o receptor estiver com o buffer ocupado, deve ser disponibilizado tempo suficiente para esvaziá-lo. Por padrão, foi utilizado um valor inicial de 64 ms de espera, que é incrementado a cada retransmissão, até um valor máximo de 256 ms pelo algoritmo Trickle. Se o pacote ACKN não retornar dentro desse intervalo, o PKT é enviado novamente ao receptor, realizando as mesmas retransmissões efetuadas caso o pacote ACKR não retorne. A quantidade de tentativas para transmissões é configurada no protocolo e, por padrão, definida em 3 tentativas se o ACKR não retornar e em 30 se o ACKN não retornar. Esses valores foram definidos de modo empírico, analisando o comportamento de redes reais e simuladas.

Portanto, com esse método, garante-se a entrega de pacotes a um salto de distância e que o pacote será encaminhado pelo nodo vizinho, pois está armazenado em seu buffer para processamento. Caso o pacote recebido não possa ser reservado na memória, o pacote de confirmação não é emitido. Ao finalizar o tempo de espera do emissor, sem um retorno da confirmação de recebimento, o emissor poderá tentar enviar novamente o pacote, até que se esgote o número de tentativas. Com esse método, se não houver retorno da confirmação ACKN, indica-se que o fluxo de dados nesse momento é superior à capacidade da rede, ou que uma fonte de interferência iniciou no meio de comunicação entre as mensagens ACKR e ACKN.

A Figura 25 demonstra o processo de comunicação do µNet em cenários com múltiplos saltos, na qual dois sensores enviam dois pacotes distintos, “X” e “Y”, ao “Receptor”. Para isso, o “Sensor 1” deve enviar seu pacote pelos sensores 2, 3 e ‘n’ para que chegue ao “Receptor”, enquanto o “Sensor 3” necessita passar somente pelo sensor ‘n’. Nesse caso, o “Sensor ‘n’” denota que poderia haver mais sensores no meio do caminho. Conforme o exemplo da Figura 25, o “Sensor 1” envia com sucesso seu pacote ao “Sensor 2”, enquanto, em tempos próximos, o “Sensor 3” envia sua informação ao “Sensor ‘n’”. Contudo, quando o “Sensor 2” tenta enviar o pacote, o “Sensor ‘n’” encontra-se ocupado com o pacote “Y” do

“Sensor 3”, necessitando aguardar um tempo de “Espera”. Enquanto o “Sensor 2” aguarda liberar o buffer, o “Sensor ‘n’” finaliza seu processo de roteamento, finalizando a entrega do pacote “Y” para o receptor. Após o tempo de espera, o “Sensor 2” envia seu pacote ao “Sensor ‘n’”, que após finalizar o processo de roteamento, entrega o pacote “X” ao receptor. Nesse caso, ambos emissores conseguem enviar com sucesso seus pacotes. Entretanto, se a quantidade de tentativas se esgote, o pacote é descartado e perdido.

Sensor 1 Sensor 2 Sensor 'n' Receptor

PKTx Gravar ACKN PKTx ACKN PKTx Sensor 3 PKTy ACKN Gravar PKTy Gravar ACKN Gravar PKTx Gravar ACKN

Buffer ocupado, logo pacote não é armazenado e não há ACKN *

*

Espera

...

Figura 25 – Fluxograma de transmissão multissaltos com µNet. Fonte: Autoria própria.

Para realizar os controles de transmissão de pacotes, um novo cabeçalho de informações de 5 bytes é utilizado, conforme a Figura 26.

LLC (8 bits) Tipo do Pacote (8 bits) Tamanho do Cabeçalho (8 bits) Número Máximo de Saltos (8 bits) Próximo Cabeçalho (8 bits)

Figura 26 – Cabeçalho de rede µNet. Fonte: Autoria própria.

A descrição de função de cada campo da Figura 26 é:

LLC: Logical Link Control, informação do tipo de protocolo de comunicação utilizado para realizar controle de transmissão, podendo ser µNet, UDP, TCP, etc.;

 Tipo do Pacote: informação referente ao tipo que esse pacote pertence, podendo ser:

o Broadcast: envia mensagem a todos os nodos vizinhos;

o Unicast Down: envia uma mensagem em direção ao coordenador da rede; o Unicast Up: enviar uma mensagem em direção a um nodo mais distante

do coordenador da rede;

o Unicast Acknowledge Down: mensagem de retorno para confirmação de recebimento de uma mensagem Unicast Down prévia;

o Unicast Acknowledge Up: mensagem de retorno para confirmação de recebimento de uma mensagem Unicast Up prévia;

o Multicast Down: enviar uma mensagem a diversos nodos em direção ao coordenador da rede;

o Multicast Up: enviar uma mensagem a diversos nodos em direção oposta ao coordenador da rede;

Tamanho do Cabeçalho: quantidade, em bytes, do cabeçalho de informação do pacote;

 Número Máximo de Saltos: quantidade de saltos que determinada informação pode percorrer antes de ser descartado;

 Próximo Cabeçalho: indica se o próximo cabeçalho é do tipo Controle (CTL) ou Aplicação (APL);