Je ne m'attendrais pas à ce que la différence soit trop importante, une fois la connexion établie .
Une ventilation des frais généraux produits par TLS en général peut être trouvée ici . Les bits importants sont:
- La surcharge totale pour établir une nouvelle session TLS s'élève à environ 6,5 k octets en moyenne
- Le temps système total pour reprendre une session TLS existante s'élève à environ 330 octets en moyenne
- La surcharge totale des données cryptées est d'environ 40 octets (20 + 15 + 5)
- Il est facile de modifier les calculs ci-dessus pour refléter plus précisément les spécificités d'un environnement, donc cela devrait être considéré comme une base pour les frais généraux TLS et non comme la réponse faisant autorité à la question posée.
Cela vaut la peine d'être lu pour voir comment ces chiffres ont été calculés - vous devriez mieux comprendre comment TLS fonctionne avec tout cela. Comme indiqué dans d'autres réponses, la transmission radio est probablement l'une des plus grandes utilisations de l'énergie, ce qui est souvent une contrainte dans l'IoT, donc une fois la session établie, les frais généraux ne sont pas trop importants, surtout si vos messages sont pas trivialement court.
Comme indiqué par HiveMQ dans l'article Comment TLS affecte-t-il les performances MQTT? :
La bonne nouvelle est qu'un client MQTT n'a besoin d'établir une connexion qu'une seule fois par session - contrairement aux protocoles comme HTTP, qui doit rétablir une connexion à chaque demande (si aucun maintien en vie n'est utilisé ou d'autres techniques comme Long Les sondages sont en place). Une fois connecté au courtier, le client peut envoyer et recevoir des messages sans surcharge de prise de contact supplémentaire. L'utilisation de TLS doit allouer des tampons supplémentaires, de sorte que la consommation de RAM est également légèrement plus élevée par connexion MQTT.
Ils fournissent également un graphique de l'utilisation du processeur sur le courtier lorsque 50 000 clients se connectent:
Source de l'image: HiveMQ (voir l'article lié ci-dessus)
Notez que ce n'est certainement pas un modèle d'utilisation typique, mais les données sont néanmoins intéressantes. Comme vous pouvez le voir, il y a une surcharge importante pendant que les poignées de main sont en cours, mais après cela, la surcharge du processeur est presque identique. Je m'attendrais à une chose similaire sur le client.
Pourtant, les conseils généraux ici sont corrects: une référence artificielle ne vous donnera pas les informations dont vous avez vraiment besoin; pour savoir comment TLS affectera votre cas d'utilisation, vous devez le tester dans ... votre cas d'utilisation !