いったん接続が確立されると、違いがあまりにも大きくなるとは思わないでしょう。
TLSが一般的に生成するオーバーヘッドの内訳は、こちらで確認できます。重要なビットは次のとおりです。
- 新しいTLSセッションを確立するための総オーバーヘッドは、平均で約6.5kバイトになります。
- 既存のTLSセッションを再開するための合計オーバーヘッドは、平均で約330バイトになります。
- 暗号化されたデータのオーバーヘッドの合計は約40バイト(20 + 15 + 5)
- 環境の詳細をより正確に反映するように上記の計算を変更するのは簡単なので、これはTLSオーバーヘッドの基礎と見なされるべきであり、提起された質問に対する信頼できる回答ではありません。
これらの数値がどのように計算されたかを確認することは一読の価値があります。TLSがこれらすべてでどのように機能するかをより深く理解する必要があります。他の回答で述べたように、無線送信はエネルギーの最大の使用の1つである可能性が高く、これは多くの場合IoTの制約であるため、セッションが確立されると、特にメッセージがさほど短くはない。
記事のHiveMQで述べられているように、TLSはMQTTのパフォーマンスにどのように影響しますか?:
良い知らせは、MQTTクライアントは、セッションごとに1回だけ接続を確立する必要があることです。HTTPなどのプロトコルとは異なり、すべてのリクエストで接続を再確立する必要があります(キープアライブが使用されていない場合、またはLongのような他の手法の場合)ポーリングが実施されています)。ブローカーに接続すると、クライアントは追加のハンドシェイクオーバーヘッドなしでメッセージを送受信できます。TLSを使用するには、追加のバッファーを割り振る必要があるため、RAMの消費量もMQTT接続ごとにわずかに多くなります。
また、50,000のクライアントが接続したときのブローカーのCPU使用率のグラフも提供します。
画像ソース:HiveMQ(上記のリンクされた記事を参照)
これはほとんどの場合典型的な使用パターンではありませんが、それでもデータは興味深いことに注意してください。ご覧のとおり、ハンドシェイクの進行中は大きなオーバーヘッドがありますが、その後はCPUオーバーヘッドはほとんど同じです。クライアントにも同様のことが期待されます。
それでも、ここでの一般的なアドバイスは正しいです。人為的なベンチマークでは、本当に必要な情報は得られません。TLSがユースケースにどのように影響するかを知るには、それをテストする必要があります... ユースケース!