CoAPはMQTTよりもフットプリントが低いですか?


8

最近、CoAPとMQTTのどちらがより軽量であるかについてのQuoraの質問を読みましたが、回答は特に満足のいくものではなく、すべてが矛盾しています:上の回答はMQTTのリソース使用量が少なく、別の回答はCoAPの要求が少ないことを示しています。

私が見つけたものから、という意味になるだろうCoAPがより厳しい少ないだろうMQTT CoAPはUDPのみを必要とするため、およびそのメッセージは、主ファイア・アンド・フォーゲットですMQTTとは異なり、TCP上のどの機能(ひいてははるかになり、関与)。

どのプロトコルが機能するために最小限のリソースを必要としますか?


リソースごとに、私は主に、必要なプロセッサー能力、RAM、および送信されるデータについて考えています。たとえば、私がリンクしたQuoraの質問で、トップの回答は、80MHzのプロセッサと1MB未満のRAMしか持たないシンプルなESP8266チップでMQTTを実行できることを示しています。CoAPがこのようなもので実行できるのか、それともさらに制約のある環境で実行できるのかについて知りたいです。

私が想定している種類のユースケースは、デバイスが主に別のデバイスからデータを受信する場合です(たとえば、オン/オフを切り替えるコマンド)が、まれに(おそらく1時間に数回)デバイスのステータスで更新を送信する必要がある場合があります。 。デバイスのコストを削減するために、できるだけ少ない処理能力を使用し、電力使用量を可能な限り削減するために、比較的低い頻度で送信したいと思います。


1
リンゴとオレンジの比較を避けるには、非常に具体的なユースケースをレイアウトできると便利です。比較の基準としてどのタスクを使用しますか?
1

@gooberingより具体的な使用例についての詳細を編集しました。さらに必要な場合はお知らせください。
Aurora0001

サーバー/ハブ、またはエンドポイントで?例のデバイスは、制約されたエンドポイントに対して仕様を大幅に超えているようです。
Sean Houlihane 2017年

@SeanHoulihaneエンドポイント。ハブで必要なリソースは、私の質問ではそれほど重要ではありません。エンドポイントのリソースを最小限にすることだけを目的としています。
Aurora0001

回答:


7

CoAPとMQTTのRAM使用量はどちらも同じで、10kビットで測定されます[1]

CPUとネットワークの使用方法に違いがあります:[2]

すべてのクライアントはTCPをサポートし、ブローカーへの接続を開いたままにします。

したがって、CoAPはフットプリントが少なく、ユースケース全体(たまに小さなデータ)によると、それが最良の選択のようです。

ご指摘のとおり、CoAPはUDPを使用します。データの配信を保証するものではありません。それでも、MQTTは「良い」だけですが、損失の多い状況では「優れた」性能を発揮します。だから、私はそんなに心配しません。

出典:

[1] http://embedded-computing.com/articles/internet-things-requirements-protocols/

[2] http://www.altencalsoftlabs.com/blogs/2016/08/08/analyzing-mqtt-vs-coap/


あなたのリファレンスはあなたの結論を裏付けるようには見えません:「TCPにアップグレードするための追加の20 KBのフラッシュと8 KBのRAM」。10kビット、さらには10kBに丸める場合、それは、CoAPとMQTTのRAM使用量の差が無視できないことを意味します。
Gilles「SO-邪悪なことをやめなさい」

TCPが選択基準かどうかによって異なります。これは、プロトコルの通常のケースであるUDPに対抗します。CoAPを使用することは、UDPを受け入れることを意味します。
mico
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.