SlideShare uma empresa Scribd logo
1 de 18
Comparação de Protocolos de
Comunicação CoAP, MQTT e HTTP
utilizando Eclipse Ponte e Amazon Web
Services
Denis Storti da Silva
Orientador: Professor Doutor Osvaldo Gogliano Sobrinho
São Paulo, 2016
Agenda
 Motivação
 Por que foi feito? Qual o problema?
 Objetivo
 O que foi feito?
 Desenvolvimento
 Como foi feito?
 Resultados
 Quais os resultados?
 Considerações finais
Motivação: Por que foi feito?
 Tendência no mercado (Gartner)
 Arquitetura referência de Internet of Things (IoT) não estabelecida
 Protocolos para Internet of Things aplicados à vários cenários
 Diversos requisitos (confiabilidade, segurança, rastreabilidade,
flexibilidade e durabilidade)
Fonte: Internet of Things Architecture (IOT-A), 2013.
Fonte: Gartner Hype Cycle for Emerging Technologies, 2015.
http://www.gartner.com/newsroom/id/3114217
Objetivo: O que foi feito?
 Comparação de Protocolos
HTTP, MQTT e CoAP
(Pereira e Aguiar, 2014) (Niccolò et al, 2013)
 Requisitos
Uso de banda no tráfego de dados
Qualidade de Serviço
 Testes e medições: experimentação
Desenvolvimento: Como foi feito?
Conceitos:
•Paradigma Publish/Subscribe vs Request/Response
•Arquitetura com Broker ou sem Broker
•Comparação teórica entre os protocolos
•Organização do Ambiente de testes
•Testes
Comparando protocolos
Característica CoAP MQTT HTTP
Modelos de comunicação Request-Response, ou
Pub-Sub (Padrão Observe)
Pub-Sub Request-Response
RESTful Sim Não Sim
Camadas de transporte UDP ou TCP TCP ou UDP (MQTT-
SN [37])
TCP
Header 4 Bytes 2 Bytes 26 bytes
Mensageria Assíncrono e Síncrono Assíncrono Sìncrono
Níveis de qualidade de serviço 2 níveis (CON ou NON) 3 níveis (0, 1 e 2) 1 nível
Segurança IPSEC ou DTLS TLS/SSL TLS/SSL
Desenvolvimento: Como foi feito?
CoAP com Observe Pattern
Fonte: BANDYOPADHYAY et al (2013)
Desenvolvimento: Como foi feito?
Característica TCP UDP
Conexão Orientado a conexão. Não possui conexão.
Protocolos que utilizam
HTTP, HTTPs, FTP, SMTP,
Telnet
DNS, DHCP, TFTP, SNMP, RIP,
VOIP.
Ordenação de pacotes
Organiza os pacotes
na ordem
especificada.
Não possui. Se ordenação
for necessária, deve ser
feita pela aplicação.
Velocidade da
transferência
Mais lenta. Verificação
e recuperação de
erros.
Mais rápida porque não
existe recuperação de
erros, somente verificação.
Confiabilidade
Apesar dos
mecanismos, não há
garantia que o dado
chegue intacto no
destino.
Nenhuma.
Tamanho do Header 20 bytes 8 bytes
Handshake (etapas para
abrir uma conexão)
SYN, SYN-ACK, ACK Não existe conexão.
Protocolos de aplicação
e transporte
•HTTP  TCP
•MQTT*  TCP ou UDP
•CoAP  UDP
*este projeto utilizou MQTT com TCP
Ambiente de teste: Ferramentas
• NodeJS como Engine para o backend
• Amazon Web Services – Servidores EC2 na nuvem em São Paulo
• Broker Eclipse Ponte como centralizador da mensageria
Eclipse Ponte
Fonte: Eclipse Ponte
Ambiente de testes: configurações
Importante:
•Não houve autenticação e autorização
•Não utilizaram-se camadas de segurança (TLS, DTLS)
•Não utilizou-se simulador de tráfego de rede (WANem)
Detalhes:
•Paradigma publish/subscribe
•Smartphones, browser, e sensor*
•Broker centralizador (Ponte)
•Persistência: LevelDB (chave-valor)
•Sniffer: Wireshark
•Infraestrutura: Nuvem AWS
•MQTT com QoS nível 1/ CoAP com CON
Ambiente de testes
Testes – Uso de banda
 Medição no recebimento de uma mensagem de 200 bytes
 Medição no recebimento de uma mensagem de 1 kbyte
 Medição no recebimento de mensagens de 1 kbyte a cada 500
ms, por um minuto
Resultados – Uso de banda
Protocolo Recebimento (bytes) ACK (bytes) Total (bytes)
MQTT (TCP) 264 + 394 (controle) 54 712
CoAP (UDP) 253 46 299
HTTP (TCP) 150 (REQ) + 373 (RES) 54 577
1. Comparativo de recebimento de 1 mensagem de 200 bytes
Protocolo Recebimento (bytes) ACK (bytes) Total (bytes)
MQTT (TCP) 1088 + 170 (ping) +
1088 (retransmissão)
100 2446
CoAP (UDP) 1077 46 1123
2. Comparativo de recebimento de 1 mensagem de 1024 bytes
Houve
retransmissão
do pacote
Polling
(REQ/RES)
Resultados – Uso de banda
471226 bytes
249760 bytes
MQTT:
141 pacotes
10 retransmissões
Total: 144108 bytes
CoAP:
120 pacotes
Total: 135000 bytes
Diferença: 9108 bytes/min
Em um serviço 24/7
Tráfego extra de 87,55 MBytes por semana
3. Medição no recebimento de mensagens de 1 kbyte a cada 500 ms, por um minuto
Considerações Finais
 CoAP é o protocolo mais eficiente quando falamos em uso de banda, gerando até
50% menos tráfego que o MQTT.
 CoAP se mostrou confiável nos testes (não deixou de entregar nenhum pacote)
 O HTTP não se mostrou eficiente em uso de banda.
 O MQTT oferece um equilíbrio entre confiabilidade e uso de banda.
 MQTT para qualidade de serviço  QoS 2 (exactly send once) que o CoAP não
oferece.
Trabalhos futuros:
 Simulações exaustivas com simulação de rede
 Testes utilizando camada de segurança (TLS, DTLS)
 Realizar testes em campo
 Melhoramento da Broker Ponte Eclipse (outros protocolos e armazenamentos)
Obrigado!
Perguntas?

Mais conteúdo relacionado

Mais procurados

Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNSLuiz Arthur
 
FAST TCP e Checksum no IPV6
FAST TCP e Checksum no IPV6FAST TCP e Checksum no IPV6
FAST TCP e Checksum no IPV6Matheus Girardi
 
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...Felipe Alex
 
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoS
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoSRedes de computadores II - 6.Noções de Controle de Congestionamento e QoS
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoSMauro Tapajós
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumredesinforma
 
Análise de Tráfego TCP/IP
Análise de Tráfego TCP/IPAnálise de Tráfego TCP/IP
Análise de Tráfego TCP/IPThiago Finardi
 
RC - SL03 - Camada de Transporte
RC - SL03 - Camada de TransporteRC - SL03 - Camada de Transporte
RC - SL03 - Camada de TransporteUFPB
 
Definições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpDefinições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpRogleison Rabelo, ITIL ISO
 
Redes Avançadas - 6.QoS
Redes Avançadas - 6.QoSRedes Avançadas - 6.QoS
Redes Avançadas - 6.QoSMauro Tapajós
 
Coletanea Redes de Computadores (ESAF) - Walter Cunha
Coletanea Redes de Computadores (ESAF) - Walter CunhaColetanea Redes de Computadores (ESAF) - Walter Cunha
Coletanea Redes de Computadores (ESAF) - Walter CunhaWalter Cunha
 
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...CPqD
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte2lindos
 

Mais procurados (20)

Tópicos - Cluster de Balanceamento de Carga com DNS
Tópicos - Cluster de Balanceamento de Carga  com  DNSTópicos - Cluster de Balanceamento de Carga  com  DNS
Tópicos - Cluster de Balanceamento de Carga com DNS
 
Cluster
ClusterCluster
Cluster
 
Controle de congestionamento tcp
Controle de congestionamento tcpControle de congestionamento tcp
Controle de congestionamento tcp
 
FAST TCP e Checksum no IPV6
FAST TCP e Checksum no IPV6FAST TCP e Checksum no IPV6
FAST TCP e Checksum no IPV6
 
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...
Análise de Desempenho de Algoritmos de Controle de Congestionamento TCP utili...
 
O protocolo SCTP para o transporte de vídeo codificado escalonável
O protocolo SCTP para o transporte de vídeo codificado escalonávelO protocolo SCTP para o transporte de vídeo codificado escalonável
O protocolo SCTP para o transporte de vídeo codificado escalonável
 
Cap06a
Cap06aCap06a
Cap06a
 
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoS
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoSRedes de computadores II - 6.Noções de Controle de Congestionamento e QoS
Redes de computadores II - 6.Noções de Controle de Congestionamento e QoS
 
Manual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaumManual solucoes redes_tanenbaum
Manual solucoes redes_tanenbaum
 
Aula 1
Aula 1Aula 1
Aula 1
 
Análise de Tráfego TCP/IP
Análise de Tráfego TCP/IPAnálise de Tráfego TCP/IP
Análise de Tráfego TCP/IP
 
Congestionamento
CongestionamentoCongestionamento
Congestionamento
 
RC - SL03 - Camada de Transporte
RC - SL03 - Camada de TransporteRC - SL03 - Camada de Transporte
RC - SL03 - Camada de Transporte
 
Roteament
RoteamentRoteament
Roteament
 
Camada de transporte parte1
Camada de transporte parte1Camada de transporte parte1
Camada de transporte parte1
 
Definições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntpDefinições E Correlações Dhcp dns smtp e ntp
Definições E Correlações Dhcp dns smtp e ntp
 
Redes Avançadas - 6.QoS
Redes Avançadas - 6.QoSRedes Avançadas - 6.QoS
Redes Avançadas - 6.QoS
 
Coletanea Redes de Computadores (ESAF) - Walter Cunha
Coletanea Redes de Computadores (ESAF) - Walter CunhaColetanea Redes de Computadores (ESAF) - Walter Cunha
Coletanea Redes de Computadores (ESAF) - Walter Cunha
 
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...
Controle de Política de Rede para Qualidade de Serviço (QoS) - I Workshop CPq...
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
 

Destaque

TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTMarco Antonio Maciel
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Javalucascsoliveira
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - novaPaulo Fonseca
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...Jorge Maia
 
Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercíciosPaulo Fonseca
 
Arquitetura digital works
Arquitetura   digital worksArquitetura   digital works
Arquitetura digital worksPaulo Fonseca
 

Destaque (20)

TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoT
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
 
Arquitetura 10
Arquitetura 10Arquitetura 10
Arquitetura 10
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 8 1
Arquitetura 8 1Arquitetura 8 1
Arquitetura 8 1
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Arquitetura 8 1
Arquitetura 8 1Arquitetura 8 1
Arquitetura 8 1
 
Arquitetura 6 1
Arquitetura 6   1Arquitetura 6   1
Arquitetura 6 1
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Arquitetura 8
Arquitetura 8Arquitetura 8
Arquitetura 8
 
Arquitetura 7
Arquitetura 7Arquitetura 7
Arquitetura 7
 
Arquitetura 4
Arquitetura 4Arquitetura 4
Arquitetura 4
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
 
Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercícios
 
Arquitetura 6
Arquitetura 6Arquitetura 6
Arquitetura 6
 
Arquitetura 3
Arquitetura 3Arquitetura 3
Arquitetura 3
 
Arquitetura digital works
Arquitetura   digital worksArquitetura   digital works
Arquitetura digital works
 

Semelhante a DENIS_Comparacao_de_Protocolos_de_Comunicacao

Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteWellington Oliveira
 
Controle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratosControle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratosGlauco Gonçalves
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumWellington Oliveira
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPMauro Tapajós
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPMauro Tapajós
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaMauro Tapajós
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00doctorweb
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Caio Miranda
 
WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.Rafael Macedo
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioJaguaraci Silva
 
Ensinando Qualidade de Serviço na Internet com o OPNET
Ensinando Qualidade de Serviço na Internet com o OPNETEnsinando Qualidade de Serviço na Internet com o OPNET
Ensinando Qualidade de Serviço na Internet com o OPNETAntonio Marcos Alberti
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioJaguaraci Silva
 

Semelhante a DENIS_Comparacao_de_Protocolos_de_Comunicacao (20)

Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de Transporte
 
Controle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratosControle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratos
 
Camada de Transporte Redes Tanenbaum
Camada de Transporte Redes TanenbaumCamada de Transporte Redes Tanenbaum
Camada de Transporte Redes Tanenbaum
 
Tcpip
TcpipTcpip
Tcpip
 
Questoes
QuestoesQuestoes
Questoes
 
Projeto do Sistema Cacti – Software Gerenciamento de Rede
Projeto do Sistema Cacti – Software Gerenciamento de RedeProjeto do Sistema Cacti – Software Gerenciamento de Rede
Projeto do Sistema Cacti – Software Gerenciamento de Rede
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IP
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
 
Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para VídeoconferênciaFISL7 - Padrões Abertos e Software Livre para Vídeoconferência
FISL7 - Padrões Abertos e Software Livre para Vídeoconferência
 
Tecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPNTecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPN
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
SOA
SOASOA
SOA
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.WebTV: Um novo método para assistir TV.
WebTV: Um novo método para assistir TV.
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem Fio
 
Ensinando Qualidade de Serviço na Internet com o OPNET
Ensinando Qualidade de Serviço na Internet com o OPNETEnsinando Qualidade de Serviço na Internet com o OPNET
Ensinando Qualidade de Serviço na Internet com o OPNET
 
Protocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem FioProtocolos De Transporte Para Redes Sem Fio
Protocolos De Transporte Para Redes Sem Fio
 

DENIS_Comparacao_de_Protocolos_de_Comunicacao

  • 1. Comparação de Protocolos de Comunicação CoAP, MQTT e HTTP utilizando Eclipse Ponte e Amazon Web Services Denis Storti da Silva Orientador: Professor Doutor Osvaldo Gogliano Sobrinho São Paulo, 2016
  • 2. Agenda  Motivação  Por que foi feito? Qual o problema?  Objetivo  O que foi feito?  Desenvolvimento  Como foi feito?  Resultados  Quais os resultados?  Considerações finais
  • 3. Motivação: Por que foi feito?  Tendência no mercado (Gartner)  Arquitetura referência de Internet of Things (IoT) não estabelecida  Protocolos para Internet of Things aplicados à vários cenários  Diversos requisitos (confiabilidade, segurança, rastreabilidade, flexibilidade e durabilidade) Fonte: Internet of Things Architecture (IOT-A), 2013.
  • 4. Fonte: Gartner Hype Cycle for Emerging Technologies, 2015. http://www.gartner.com/newsroom/id/3114217
  • 5. Objetivo: O que foi feito?  Comparação de Protocolos HTTP, MQTT e CoAP (Pereira e Aguiar, 2014) (Niccolò et al, 2013)  Requisitos Uso de banda no tráfego de dados Qualidade de Serviço  Testes e medições: experimentação
  • 6. Desenvolvimento: Como foi feito? Conceitos: •Paradigma Publish/Subscribe vs Request/Response •Arquitetura com Broker ou sem Broker •Comparação teórica entre os protocolos •Organização do Ambiente de testes •Testes
  • 7. Comparando protocolos Característica CoAP MQTT HTTP Modelos de comunicação Request-Response, ou Pub-Sub (Padrão Observe) Pub-Sub Request-Response RESTful Sim Não Sim Camadas de transporte UDP ou TCP TCP ou UDP (MQTT- SN [37]) TCP Header 4 Bytes 2 Bytes 26 bytes Mensageria Assíncrono e Síncrono Assíncrono Sìncrono Níveis de qualidade de serviço 2 níveis (CON ou NON) 3 níveis (0, 1 e 2) 1 nível Segurança IPSEC ou DTLS TLS/SSL TLS/SSL
  • 8. Desenvolvimento: Como foi feito? CoAP com Observe Pattern Fonte: BANDYOPADHYAY et al (2013)
  • 9. Desenvolvimento: Como foi feito? Característica TCP UDP Conexão Orientado a conexão. Não possui conexão. Protocolos que utilizam HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP. Ordenação de pacotes Organiza os pacotes na ordem especificada. Não possui. Se ordenação for necessária, deve ser feita pela aplicação. Velocidade da transferência Mais lenta. Verificação e recuperação de erros. Mais rápida porque não existe recuperação de erros, somente verificação. Confiabilidade Apesar dos mecanismos, não há garantia que o dado chegue intacto no destino. Nenhuma. Tamanho do Header 20 bytes 8 bytes Handshake (etapas para abrir uma conexão) SYN, SYN-ACK, ACK Não existe conexão. Protocolos de aplicação e transporte •HTTP  TCP •MQTT*  TCP ou UDP •CoAP  UDP *este projeto utilizou MQTT com TCP
  • 10. Ambiente de teste: Ferramentas • NodeJS como Engine para o backend • Amazon Web Services – Servidores EC2 na nuvem em São Paulo • Broker Eclipse Ponte como centralizador da mensageria
  • 12. Ambiente de testes: configurações Importante: •Não houve autenticação e autorização •Não utilizaram-se camadas de segurança (TLS, DTLS) •Não utilizou-se simulador de tráfego de rede (WANem) Detalhes: •Paradigma publish/subscribe •Smartphones, browser, e sensor* •Broker centralizador (Ponte) •Persistência: LevelDB (chave-valor) •Sniffer: Wireshark •Infraestrutura: Nuvem AWS •MQTT com QoS nível 1/ CoAP com CON
  • 14. Testes – Uso de banda  Medição no recebimento de uma mensagem de 200 bytes  Medição no recebimento de uma mensagem de 1 kbyte  Medição no recebimento de mensagens de 1 kbyte a cada 500 ms, por um minuto
  • 15. Resultados – Uso de banda Protocolo Recebimento (bytes) ACK (bytes) Total (bytes) MQTT (TCP) 264 + 394 (controle) 54 712 CoAP (UDP) 253 46 299 HTTP (TCP) 150 (REQ) + 373 (RES) 54 577 1. Comparativo de recebimento de 1 mensagem de 200 bytes Protocolo Recebimento (bytes) ACK (bytes) Total (bytes) MQTT (TCP) 1088 + 170 (ping) + 1088 (retransmissão) 100 2446 CoAP (UDP) 1077 46 1123 2. Comparativo de recebimento de 1 mensagem de 1024 bytes Houve retransmissão do pacote Polling (REQ/RES)
  • 16. Resultados – Uso de banda 471226 bytes 249760 bytes MQTT: 141 pacotes 10 retransmissões Total: 144108 bytes CoAP: 120 pacotes Total: 135000 bytes Diferença: 9108 bytes/min Em um serviço 24/7 Tráfego extra de 87,55 MBytes por semana 3. Medição no recebimento de mensagens de 1 kbyte a cada 500 ms, por um minuto
  • 17. Considerações Finais  CoAP é o protocolo mais eficiente quando falamos em uso de banda, gerando até 50% menos tráfego que o MQTT.  CoAP se mostrou confiável nos testes (não deixou de entregar nenhum pacote)  O HTTP não se mostrou eficiente em uso de banda.  O MQTT oferece um equilíbrio entre confiabilidade e uso de banda.  MQTT para qualidade de serviço  QoS 2 (exactly send once) que o CoAP não oferece. Trabalhos futuros:  Simulações exaustivas com simulação de rede  Testes utilizando camada de segurança (TLS, DTLS)  Realizar testes em campo  Melhoramento da Broker Ponte Eclipse (outros protocolos e armazenamentos)

Notas do Editor

  1. RESPONDER PERGUNTAS!
  2. Karagiannis, Vasileios et al., 2015 [2] tecnologias preenchem parcialmente os requisitos de IoT Falta de padrões + Motivação Sensores -> Alimentar bancos de dados -> Analytics /Big Data Sensores+Atuadores -> Agir no mudo real de forma ubíqua The initial goal of oneM2M is to create a common M2M Service Layer which can be readily embedded within different hardware and software, disseminar casos de uso, discutir nomenclaturas, endereçamento, interfaces de aplicação (APIs) e interfaces de hardware, otimizações de rede otimizar uso de energia
  3. Porque HTTP, MQTT e CoAP?  Pereira e Aguiar,2014 -> oneM2M reforçaram a ideia que os protocolos CoAP, HTTP e MQTT atendem a comunicação. Outros candidatos: AMQP XMPP Niccolò et al., 2013 -> a falta de protocolos de aplicação otimizados para sensores -> necessidade design de protocolos leves -> MQTT e CoAP MQTT -> IBM, para M2M CoAP -> dispositivos e redes restritas HTTP -> compatibilidade e flexibilidade _____________________________________________________________ Uso de banda overhead do protocolo, número de mensagens de controle Confiabilidade Segurança Qualidade de serviço: capacidade de entregar a mensagem correta, no momento esperado, para o destinatário.
  4. Conceitos: Arquitetura orientada a Eventos Paradigma Publish/Subscribe HTTP -> request/response MQTT e CoAP -> publish/subscribe Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  5. Polling MQTT  3 níveis de serviço At most once (0) At least once (1) Exactly once (2). Conceitos: Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  6. Conceitos: Arquitetura orientada a Eventos Paradigma Publish/Subscribe HTTP -> request/response MQTT e CoAP -> publish/subscribe Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  7. UDP -> fire and forget
  8. Conceitos: Arquitetura orientada a Eventos Paradigma Publish/Subscribe HTTP -> request/response MQTT e CoAP -> publish/subscribe Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  9. Conceitos: Arquitetura orientada a Eventos Paradigma Publish/Subscribe HTTP -> request/response MQTT e CoAP -> publish/subscribe Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  10. LevelDB: banco de dados chave-valor Conceitos: Arquitetura orientada a Eventos Paradigma Publish/Subscribe HTTP -> request/response MQTT e CoAP -> publish/subscribe Desacoplamento de espaço: os produtores não possuem referências dos consumidores, Desacoplamento de tempo: Assíncrono, Produtores podem publicar mesmo que os consumidores estejam desconectados Desacoplamento de sincronização: não bloqueados aguardando mensagens Ferramentas Amazon Web Services Broker Eclipse Ponte: Ponte is a multi-transport Internet of Things / Machine to Machine broker. Tradução de payloads Segurança Tradução de Protocolos Trabalha com diversos SGBDs e Protocolos NodeJS: framework e interpretador javascript no lado do servidor, baseado na Engine V8 do Google Chrome
  11. Trabalhos futuros Qual contribuição o trabalho traz para quem o lê? Os protocolos estudados são CoAP, MQTT e HTTP, e como resultado espera-se obter sob a ótica dos requisitos analisados uma clara distinção dos benefícios do uso de cada um em diversos cenários.
  12. Trabalhos futuros Qual contribuição o trabalho traz para quem o lê? HTTP: justificar saída dos demais testes Os protocolos estudados são CoAP, MQTT e HTTP, e como resultado espera-se obter sob a ótica dos requisitos analisados uma clara distinção dos benefícios do uso de cada um em diversos cenários.
  13. Trabalhos futuros Qual contribuição o trabalho traz para quem o lê? COLOCAR TÍTULO DO terceiro TESTE Os protocolos estudados são CoAP, MQTT e HTTP, e como resultado espera-se obter sob a ótica dos requisitos analisados uma clara distinção dos benefícios do uso de cada um em diversos cenários.
  14. HTTP: e para otimizá-lo é necessário um cenário em que a emissão de eventos possa ser previsível.