Entrar ou criar conta

Upnetix Labs · protocolo de experimento

Protocolo: Qual o impacto do uso de TLS na latência das mensagens MQTT usando Eclipse Mosquitto?

Este protocolo responde qual é o aumento de latência introduzido pelo uso de TLS nas mensagens MQTT publicadas e recebidas via Eclipse Mosquitto. O participante vai medir o tempo de ida e volta (round-trip time) de mensagens MQTT com e sem TLS.

IoT do zero com MQTT, Eclipse Mosquitto e Node-RED
Ligado ao treinamento IoT do zero com MQTT, Eclipse Mosquitto e Node-RED
Protocolo, não resultado. Esta página descreve como medir. Os números que valem são os que você obtém na sua bancada, seguindo o método abaixo. Nenhum valor aqui é resultado de medição da Upnetix.
Pergunta

Qual é a diferença de latência de mensagens MQTT publicadas e recebidas via Mosquitto com e sem TLS?

Hipótese

O uso de TLS aumenta a latência média das mensagens MQTT em relação à comunicação sem criptografia.

Variáveis

Independentes (o que varia)Uso de TLS (ativado/desativado)
Dependentes (o que se mede)Latência de round-trip das mensagens MQTT (ms)
Controladas (o que fica fixo)Tamanho da mensagem (bytes); Quantidade de mensagens; Rede local dedicada; Hardware do broker e do cliente; QoS MQTT

Ambiente

Broker Eclipse Mosquitto instalado em máquina Linux dedicada. Dois clientes MQTT de código aberto (por exemplo, MQTT CLI ou mqtt-benchmark). Rede local cabeada. Ferramenta de medição de tempo (script Python usando paho-mqtt ou mqtt-benchmark).

Procedimento

  1. Configurar o broker Mosquitto sem TLS

    Editar o arquivo de configuração do Mosquitto para operar sem TLS.

    consulte a documentação em https://mosquitto.org/man/mosquitto-conf-5.html
  2. Configurar o broker Mosquitto com TLS

    Gerar certificados autoassinados e configurar o Mosquitto para operar com TLS.

    consulte a documentação em https://mosquitto.org/man/mosquitto-tls-7.html
  3. Preparar clientes MQTT

    Instalar e configurar clientes MQTT para publicar e subscrever no mesmo tópico.

  4. Executar testes sem TLS

    Publicar e receber 100 mensagens de tamanho fixo (por exemplo, 256 bytes) e registrar o tempo de ida e volta de cada mensagem.

    mqtt-benchmark pub -h <broker> -t test -n 100 -s 256
  5. Executar testes com TLS

    Repetir o teste anterior com TLS ativado.

    mqtt-benchmark pub -h <broker> -t test -n 100 -s 256 --tls
  6. Repetir cada teste 5 vezes

    Executar cada cenário (com e sem TLS) cinco vezes para obter variabilidade.

Planilha de coleta

cenario ((sem_tls|com_tls))tamanho_mensagem_bytes (bytes)latencia_ms (milissegundos)repeticao (número)
EXEMPLO: com_tls,256,37.2,3

Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.

Análise

Calcule a média, mediana e desvio padrão da latência para cada cenário. Compare os valores entre com_tls e sem_tls. Analise se a diferença é consistente e significativa.

Critérios de decisão

  • A diferença de latência média entre os cenários deve ser superior à variação natural (desvio padrão) para ser considerada relevante.
  • Resultados só são válidos se todas as repetições apresentarem variação inferior a 10% entre si.

Fontes de erro e mitigação

  • Variações de carga na rede local podem afetar a latência; mitigue testando em horários de baixo uso.
  • Aquecimento de CPU pode influenciar resultados; reinicie os dispositivos antes dos testes.
  • Certifique-se de que nenhum outro tráfego relevante ocorra na rede durante o experimento.

Referências

  1. Documentação oficial do Mosquitto
  2. Especificação MQTT OASIS