Redes de Comunicacao para IoT: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(16 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 37: Linha 37:


===Limitações da  arquitetura Internet para Internet das Coisas===
===Limitações da  arquitetura Internet para Internet das Coisas===
*Na Internet das Coisas muitos '''dispositivos sensores e atuadores''' são '''restritos em termos de processamento, memória e consumo de energia''', o que limita a capacidade de implementar a pilha completa dos protocolos da Internet em cada dispositivo <ref>Francis da Costa. [[Media:Rethinking-Internet-Of-Things-Book.pdf|Rethinking Internet of Things]]: A scalable approach to connecting everything. Apress Open, 2013.</ref>.  
*Na Internet das Coisas muitos '''dispositivos sensores e atuadores''' são '''restritos em termos de processamento, memória e consumo de energia''', o que limita a capacidade de implementar a pilha completa dos protocolos da Internet em cada dispositivo <ref name=Costa>Francis da Costa. [[Media:Rethinking-Internet-Of-Things-Book.pdf|Rethinking Internet of Things]]: A scalable approach to connecting everything. Apress Open, 2013.</ref>.  
*O '''modelo cliente/servidor''', comumente utilizado na Web, não é apropriado para as aplicações de Internet das Coisas.  Na Internet das Coisas os dados fluem em um sentido, dos sensores para a Internet, ou em sentido contrário no caso de atuadores. Além disto, podemos ter múltiplos sensores e também múltiplas aplicações com interesse na informação dos sensores. Portanto, o modelo de comunicação mais apropriado para este tipo de aplicação é o '''modelo publicador/subscritor''', como no protocolo '''MQTT'''.
*O '''modelo cliente/servidor''', comumente utilizado na Web, não é apropriado para as aplicações de Internet das Coisas.  Na Internet das Coisas os dados fluem em um sentido, dos sensores para a Internet, ou em sentido contrário no caso de atuadores. Além disto, podemos ter múltiplos sensores e também múltiplas aplicações com interesse na informação dos sensores. Portanto, o modelo de comunicação mais apropriado para este tipo de aplicação é o '''modelo publicador/subscritor''', como no protocolo '''[[MQTT]]'''.


==Protocolos de Comunicação para IoT==
==Protocolos de Comunicação para IoT==
Linha 47: Linha 47:
*'''Ethernet''' ou '''Wifi''', para ambientes internos e dispositivos com boa capacidade de processamento e provimento de energia;
*'''Ethernet''' ou '''Wifi''', para ambientes internos e dispositivos com boa capacidade de processamento e provimento de energia;
*'''Bluetooth''' ou '''Bluetooth Low Energy''' ('''BLE'''), para curtas distâncias e baixa taxa de transmissão;
*'''Bluetooth''' ou '''Bluetooth Low Energy''' ('''BLE'''), para curtas distâncias e baixa taxa de transmissão;
*'''LoRaWAN''' (''Long Range – Wide Area Networks''), para ambientes externos e longas distâncias, como nas aplicações de agricultura;
*'''[[LoRa WAN]]''' (''Long Range – Wide Area Networks''), para ambientes externos e longas distâncias, como nas aplicações de agricultura<ref name=Costa/> <ref name=IoT5days>Antonio Liñán Colina, Alvaro Vives, Marco Zennaro, Antoine Bagula, Ermanno Pietrosemoli.[https://archive.org/details/IoT5days Internet of Things in Five Days], Internet Archive, 2016. </ref>;
*'''IEEE 802.15.4''', como as redes '''Zigbee''', para ambientes industriais.
*'''[[IEEE 802.15.4]]''', como as redes '''Zigbee''', para ambientes industriais <ref name=Costa/> <ref name=IoT5days/>.


===Camada Rede para IoT===
===Camada Rede para IoT===


Para dispositivos conectados à '''Internet''' um '''endereço IP''' pode ser utilizado como '''identificação única''' dos objetos , entretanto, isto pode trazer limitações em função da versão do protocolo IP utilizado:
Para dispositivos conectados à '''Internet''' um '''endereço IP''' pode ser utilizado como '''identificação única''' dos objetos , entretanto, isto pode trazer limitações em função da versão do protocolo IP utilizado:
*'''IPv4''', atualmente em uso na Internet, tem limitações em função do número de endereços disponíveis;
*'''[[Enderecamento IP|IPv4]]''', atualmente em uso na Internet, tem limitações em função do número de endereços disponíveis;
*'''[[IPv6]]''', possui endereçamento suficiente para os bilhões, ou mais, de dispositivos de IoT, entretanto ainda não está complemente operacional.
*'''[[IPv6]]''', possui endereçamento suficiente para os bilhões, ou mais, de dispositivos de IoT, entretanto ainda não está complemente operacional.


Para '''dispositivos com hardware limitado''' que necessitem de um endereço '''IPv6''' e que utilizam enlaces '''IEEE 802.15.4''', foi desenvolvido o padrão '''[[6LowPAN]]''' que adapta o IPv6 para as limitações de tamanho do quadro impostas pelo quadro do enlace utilizado.
Para '''dispositivos com hardware limitado''' que necessitem de um endereço '''IPv6''' e que utilizam enlaces '''IEEE 802.15.4''', foi desenvolvido o padrão '''[[6LowPAN]]''' <ref name=IoT5days/>que adapta o IPv6 para as limitações de tamanho do quadro impostas pelo quadro do enlace utilizado.


'''Dispositivos com hardware limitado''', que não necessitem de um endereço IP exclusivo, podem enviar seus  dados a um '''''gateway''''' intermediário, que por sua vez encaminha as informações a nuvem da Internet. Neste caso, os dispositivos são identificados por seus respectivos ''gateways'' na Internet. Além disto, '''''gateways'' remotos''' podem utilizar as redes de '''telefonia móvel''', como '''4G''' e '''5G''', como conexão com a Internet.
'''Dispositivos com hardware limitado''', que não necessitem de um endereço IP exclusivo, podem enviar seus  dados a um '''''gateway''''' intermediário, que por sua vez encaminha as informações a nuvem da Internet. Neste caso, os dispositivos são identificados por seus respectivos ''gateways'' na Internet. Além disto, '''''gateways'' remotos''' podem utilizar as redes de '''telefonia móvel''', como '''4G''' e '''5G''', como conexão com a Internet.
Linha 62: Linha 62:
===Camada de Transporte para Internet das Coisas===
===Camada de Transporte para Internet das Coisas===


A camada de transporte da Internet é baseada nos protocolos TCP e UDP. O TCP é o principal protocolo utilizado na Web. É um protocolo orientado a conexão, que utiliza reconhecimentos e retransmissões para oferecer um serviço de transmissão garantida de informações. Estas características do TCP não são adequadas para a comunicação entre os dispositivos da Internet das Coisas [6]. Por exemplo, para um sensor que envia periodicamente dados de uma grandeza medida, a perda de um dado pode não ser crítica, uma vez que a informação é redundante em função do número de medidas realizadas.
A camada de transporte da Internet é baseada nos protocolos '''[[Protocolo TCP|TCP]]''' e '''[[Protocolo UDP|UDP]]'''.  


Portanto, na Internet das Coisas, a comunicação entre dispositivos pode ser mais eficiente com o uso do protocolo UDP. Uma mensagem transmitida pelo protocolo UDP é simplesmente enviada. Não há reconhecimentos ou retransmissões. Esta característica é conhecida como melhor esforço (best effort).
O '''TCP''' é o principal protocolo utilizado na Web. É um protocolo '''orientado a conexão''', que utiliza '''reconhecimentos e retransmissões''' para oferecer um serviço de transmissão garantida de informações. Estas características do TCP não são adequadas para a comunicação entre os dispositivos de IoT. Por exemplo, para um sensor que envia periodicamente dados de uma grandeza medida, a perda de um dado pode não ser crítica, uma vez que a informação é redundante em função do número de medidas realizadas.


Camada Aplicação para Internet das Coisas
Portanto, na '''Internet das Coisas''', a comunicação entre dispositivos pode ser mais eficiente com o uso do protocolo '''UDP'''. Uma mensagem transmitida pelo protocolo UDP é simplesmente enviada. Não há reconhecimentos ou retransmissões.


Como comentado na introdução desta seção, o modelo cliente/servidor comumente utilizado na Internet não é apropriado para as aplicações de Internet das Coisas
===Camada Aplicação para Internet das Coisas===


Para aplicações de Internet das Coisas o modelo de comunicação mais apropriado é o publicador/subscritor, como utilizado no protocolo MQTT (Message Queue Telemetry Transport) [4, 6, 7], o qual é descrito na subseção 1.
O modelo '''cliente/servidor''' utilizado pelas aplicações '''Web''' não é apropriado para as aplicações de IoT.


Por outro lado, caso seja necessária uma comunicação direta com um dispositivo de Internet das Coisas utilizando o modelo cliente/servidor, um protocolo alternativo é o CoAP (Constrained Application Protocol) [6, 7], descrito na subseção 2.
Para aplicações de IoT o modelo de comunicação mais apropriado é o '''publicador/subscritor''', como utilizado no protocolo '''[[MQTT]]''' (''Message Queue Telemetry Transport'').
 
Por outro lado, caso seja necessária uma comunicação direta com um dispositivo de IoT utilizando o modelo '''cliente/servidor''', um protocolo alternativo é o '''[[CoAP]]''' (''Constrained Application Protocol''), o qual é uma '''alternativa mais leve''' ao '''HTTP''', com alvo nos dispositivos limitados em termos de energia e interface de comunicação. O '''CoAP''' usa '''UDP''', ao invés do '''TCP''', reduzindo o ''overhead'' de mensagens ocasionado pela abertura e encerramento de uma conexão, assim como reconhecimentos e retransmissões.
 
===Síntese da arquitetura de redes para IoT===
[[Arquivo:Arquitetura_Redes_IoT.png]]


==Referências==
==Referências==

Edição atual tal como às 16h53min de 25 de janeiro de 2022

Redes de Comunicação para IoT

Conceitos sobre Internet das Coisas

A ideia principal da Internet das Coisas (IoT) é conectar coisas (sensores, atuadores, dispositivos, máquinas, pessoas etc) e realizar o armazenamento e processamento de dados na nuvem da Internet para fins de monitoramento e controle.

Os requisitos fundamentais para monitorar coisas em qualquer lugar do mundo são [1]:

  • identificação única para as coisas;
  • habilidade de sensoriamento (ou atuação) de alguma informação sobre as coisas;
  • habilidade de comunicação entre as coisas e a Internet;
  • habilidade de controle e gerenciamento das coisas.

Identificação única para as coisas

Muitas aplicações de IoT utilizam identificação dos objetos usando RFID (Radio Frequency Identification), a qual permite identificar objetos a partir de informações gravadas em uma tag. A tag é formada por um microchip com informações gravadas e uma antena para receber e transmitir sinal. O leitor lê as informações gravadas na tag por meio de um rádio transmissor e receptor e passa para um programa para análise do código RFID.

Para dispositivos conectados à Internet a identificação única pode também ser realizada por um endereço IP, entretanto, isto pode trazer limitações em função da versão do protocolo IP utilizado.

Uma Arquitetura para Internet das Coisas

Com o intuito de conectar coisas, poderíamos pensar numa arquitetura em camadas como ilustrado na figura:

(adaptado de [1])

Proposta de arquitetura em quatro camadas para Internet das coisas:

  1. Na primeira camada desta arquitetura estariam os dispositivos sensores e atuadores transmitindo (ou recebendo) pequenas mensagens de dados diretamente ou até gateways conectados a Internet.
  2. A segunda camada seria a camada de conectividade em rede para Internet das Coisas, transportando dados entre os dispositivos e a nuvem da Internet. A conectividade em rede pode envolver subsistema de computação em névoa, com processamento descentralizado entre dispositivos próximos.
  3. A terceira camada seria uma plataforma de serviços para Internet das Coisas, comumente hospedada na nuvem da Internet, conectando as coisas com as aplicações e provendo mecanismos e ferramentas para gerenciamento e tratamento das informações. Esta plataforma pode também utilizar dados de outras fontes ou sistemas para complementar as informações coletadas pelos sensores.
  4. A quarta camada seria a camada de aplicação, dedicada a uma aplicação específica, para operar e fornecer a interface usuário a um sistema de Internet das Coisas.

Arquitetura Internet

As aplicações Web que conhecemos são suportadas pela arquitetura Internet com quatro camadas de protocolos:

  • Camada de enlace/física, responsável pela comunicação entre computadores diretamente conectados através de um enlace, normalmente implementada numa interface de rede, como nas redes locais Ethernet ou Wifi.
  • Camada de rede, cujo principal componente é o protocolo IP.
  • Camada de transporte, com os protocolos TCP e UDP.
  • Camada de aplicação, cada qual com seu protocolo específico, como por exemplo o protocolo HTTP da aplicação Web.

Limitações da arquitetura Internet para Internet das Coisas

  • Na Internet das Coisas muitos dispositivos sensores e atuadores são restritos em termos de processamento, memória e consumo de energia, o que limita a capacidade de implementar a pilha completa dos protocolos da Internet em cada dispositivo [2].
  • O modelo cliente/servidor, comumente utilizado na Web, não é apropriado para as aplicações de Internet das Coisas. Na Internet das Coisas os dados fluem em um sentido, dos sensores para a Internet, ou em sentido contrário no caso de atuadores. Além disto, podemos ter múltiplos sensores e também múltiplas aplicações com interesse na informação dos sensores. Portanto, o modelo de comunicação mais apropriado para este tipo de aplicação é o modelo publicador/subscritor, como no protocolo MQTT.

Protocolos de Comunicação para IoT

Camada de Enlace para sensores e atuadores

Os dispositivos sensores e atuadores geralmente são restritos em termos de processamento, memória e consumo de energia. Portanto, dependendo da aplicação e do ambiente onde ficará localizado o sensor ou atuador, diferentes tecnologias de enlace podem ser utilizadas, como:

  • Ethernet ou Wifi, para ambientes internos e dispositivos com boa capacidade de processamento e provimento de energia;
  • Bluetooth ou Bluetooth Low Energy (BLE), para curtas distâncias e baixa taxa de transmissão;
  • LoRa WAN (Long Range – Wide Area Networks), para ambientes externos e longas distâncias, como nas aplicações de agricultura[2] [3];
  • IEEE 802.15.4, como as redes Zigbee, para ambientes industriais [2] [3].

Camada Rede para IoT

Para dispositivos conectados à Internet um endereço IP pode ser utilizado como identificação única dos objetos , entretanto, isto pode trazer limitações em função da versão do protocolo IP utilizado:

  • IPv4, atualmente em uso na Internet, tem limitações em função do número de endereços disponíveis;
  • IPv6, possui endereçamento suficiente para os bilhões, ou mais, de dispositivos de IoT, entretanto ainda não está complemente operacional.

Para dispositivos com hardware limitado que necessitem de um endereço IPv6 e que utilizam enlaces IEEE 802.15.4, foi desenvolvido o padrão 6LowPAN [3]que adapta o IPv6 para as limitações de tamanho do quadro impostas pelo quadro do enlace utilizado.

Dispositivos com hardware limitado, que não necessitem de um endereço IP exclusivo, podem enviar seus dados a um gateway intermediário, que por sua vez encaminha as informações a nuvem da Internet. Neste caso, os dispositivos são identificados por seus respectivos gateways na Internet. Além disto, gateways remotos podem utilizar as redes de telefonia móvel, como 4G e 5G, como conexão com a Internet.

Camada de Transporte para Internet das Coisas

A camada de transporte da Internet é baseada nos protocolos TCP e UDP.

O TCP é o principal protocolo utilizado na Web. É um protocolo orientado a conexão, que utiliza reconhecimentos e retransmissões para oferecer um serviço de transmissão garantida de informações. Estas características do TCP não são adequadas para a comunicação entre os dispositivos de IoT. Por exemplo, para um sensor que envia periodicamente dados de uma grandeza medida, a perda de um dado pode não ser crítica, uma vez que a informação é redundante em função do número de medidas realizadas.

Portanto, na Internet das Coisas, a comunicação entre dispositivos pode ser mais eficiente com o uso do protocolo UDP. Uma mensagem transmitida pelo protocolo UDP é simplesmente enviada. Não há reconhecimentos ou retransmissões.

Camada Aplicação para Internet das Coisas

O modelo cliente/servidor utilizado pelas aplicações Web não é apropriado para as aplicações de IoT.

Para aplicações de IoT o modelo de comunicação mais apropriado é o publicador/subscritor, como utilizado no protocolo MQTT (Message Queue Telemetry Transport).

Por outro lado, caso seja necessária uma comunicação direta com um dispositivo de IoT utilizando o modelo cliente/servidor, um protocolo alternativo é o CoAP (Constrained Application Protocol), o qual é uma alternativa mais leve ao HTTP, com alvo nos dispositivos limitados em termos de energia e interface de comunicação. O CoAP usa UDP, ao invés do TCP, reduzindo o overhead de mensagens ocasionado pela abertura e encerramento de uma conexão, assim como reconhecimentos e retransmissões.

Síntese da arquitetura de redes para IoT

Referências

  1. Ir para: 1,0 1,1 Ammar Rayes & Samer Salam. Internet of Things From Hype to Reality: The Road to Digitization, Springer, 2019.
  2. Ir para: 2,0 2,1 2,2 Francis da Costa. Rethinking Internet of Things: A scalable approach to connecting everything. Apress Open, 2013.
  3. Ir para: 3,0 3,1 3,2 Antonio Liñán Colina, Alvaro Vives, Marco Zennaro, Antoine Bagula, Ermanno Pietrosemoli.Internet of Things in Five Days, Internet Archive, 2016.

Evandro.cantu (discussão) 17h29min de 24 de janeiro de 2022 (-03)