Ich würde nicht erwarten, dass der Unterschied zu groß ist, sobald die Verbindung hergestellt ist .
Eine Aufschlüsselung des Overheads, den TLS im Allgemeinen erzeugt , finden Sie hier . Die wichtigen Bits sind:
- Der Gesamtaufwand für die Einrichtung einer neuen TLS-Sitzung beträgt durchschnittlich 6,5 KB
- Der Gesamtaufwand für die Wiederaufnahme einer vorhandenen TLS-Sitzung beträgt durchschnittlich etwa 330 Byte
- Der Gesamtaufwand für die verschlüsselten Daten beträgt ca. 40 Byte (20 + 15 + 5).
- Es ist einfach, die obigen Berechnungen zu ändern, um die Besonderheiten einer Umgebung genauer widerzuspiegeln. Daher sollte dies als Grundlage für den TLS-Overhead und nicht als maßgebliche Antwort auf die gestellte Frage betrachtet werden.
Es lohnt sich zu lesen, wie diese Zahlen berechnet wurden. Sie sollten besser verstehen, wie TLS mit all dem funktioniert. Wie in anderen Antworten erwähnt, ist die Funkübertragung wahrscheinlich einer der größten Energieverbrauchswerte, was im Internet der Dinge häufig eine Einschränkung darstellt. Sobald die Sitzung eingerichtet ist, ist der Overhead nicht allzu hoch, insbesondere wenn es sich um Nachrichten handelt nicht trivial kurz.
Wie von HiveMQ im Artikel erwähnt Wie wirkt sich TLS auf die MQTT-Leistung aus? ::
Die gute Nachricht ist, dass ein MQTT-Client nur einmal pro Sitzung eine Verbindung herstellen muss - im Gegensatz zu Protokollen wie HTTP, bei denen bei jeder Anforderung eine Verbindung wiederhergestellt werden muss (wenn kein Keep-Alive verwendet wird oder andere Techniken wie Long Umfragen sind vorhanden). Sobald die Verbindung zum Broker hergestellt ist, kann der Client Nachrichten ohne zusätzlichen Handshake-Aufwand senden und empfangen. Bei Verwendung von TLS müssen zusätzliche Puffer zugewiesen werden, sodass der RAM-Verbrauch pro MQTT-Verbindung ebenfalls geringfügig höher ist.
Sie bieten auch ein Diagramm der CPU-Auslastung auf dem Broker, wenn 50.000 Clients eine Verbindung herstellen:
Bildquelle: HiveMQ (siehe oben verlinkten Artikel)
Beachten Sie, dass dies mit ziemlicher Sicherheit kein typisches Verwendungsmuster ist, die Daten jedoch interessant sind. Wie Sie sehen können, gibt es einen großen Overhead, während die Handshakes ausgeführt werden, aber danach ist der CPU-Overhead nahezu identisch. Ähnliches würde ich vom Kunden erwarten.
Der allgemeine Ratschlag hier ist jedoch richtig: Ein erfundener Benchmark liefert Ihnen nicht die Informationen, die Sie wirklich benötigen. Um zu wissen, wie sich TLS auf Ihren Anwendungsfall auswirkt, müssen Sie es in ... Ihrem Anwendungsfall testen !