Apakah CoAP memiliki jejak yang lebih rendah daripada MQTT?

8

Saya baru-baru ini membaca pertanyaan Quora tentang apakah CoAP atau MQTT lebih ringan, tetapi jawabannya tampaknya tidak terlalu memuaskan dan semua saling bertentangan: jawaban teratas mengatakan MQTT membutuhkan sumber daya yang lebih sedikit, dan yang lain di bawahnya mengatakan CoAP kurang menuntut.

Dari apa yang saya temukan, akan masuk akal bahwa CoAP akan lebih sedikit menuntut daripada MQTT , karena CoAP hanya membutuhkan UDP, dan pesan-pesannya terutama api-dan-lupa, tidak seperti MQTT yang berfungsi melalui TCP (dan karenanya akan jauh lebih banyak terlibat).

Protokol mana yang membutuhkan sumber daya paling sedikit untuk berfungsi?


Dari sumber daya, saya terutama memikirkan daya prosesor, RAM, dan data yang diperlukan untuk dikirim. Misalnya, dalam pertanyaan Quora yang ditautkan, jawaban teratas menunjukkan bahwa chip ESP8266 sederhana dapat menjalankan MQTT, yang hanya memiliki prosesor 80MHz dan RAM kurang dari 1MB. Saya ingin tahu apakah CoAP dapat berjalan pada sesuatu seperti ini, atau lingkungan yang bahkan lebih terbatas.

Jenis penggunaan yang saya bayangkan adalah di mana perangkat sebagian besar akan menerima data dari perangkat lain (misalnya perintah untuk menghidupkan / mematikan), tetapi mungkin perlu jarang (mungkin beberapa kali dalam satu jam) mengirim pembaruan dengan status perangkat . Saya ingin menggunakan daya pemrosesan sesedikit mungkin untuk mengurangi biaya perangkat, dan mengirimkan frekuensi yang relatif jarang untuk mengurangi penggunaan daya sebanyak mungkin.

Aurora0001
sumber
1
Untuk menghindari perbandingan apel dan jeruk, akan sangat berguna jika Anda bisa membuat case use yang sangat spesifik. Tugas apa yang ingin Anda gunakan sebagai dasar untuk perbandingan?
goobering
@goobering Saya telah mengedit dengan beberapa info lebih lanjut tentang kasus penggunaan yang lebih konkret; beri tahu saya jika Anda membutuhkan sesuatu yang lebih.
Aurora0001
Di server / hub, atau titik akhir? Perangkat contoh Anda tampaknya terlalu spesifik untuk titik akhir terbatas.
Sean Houlihane
@SeanHoulihane Di titik akhir. Sumber daya yang dibutuhkan di hub tidak begitu menjadi faktor dalam pertanyaan saya; hanya bertujuan untuk meminimalkan sumber daya titik akhir.
Aurora0001

Jawaban:

7

CoAP dan MQTT memiliki penggunaan RAM yang sama, diukur dalam 10kbits [1].

Perbedaan ada pada penggunaan cpu dan jaringan: [2]

Setiap klien mendukung TCP dan membuka koneksi ke broker.

Jadi, CoAP memiliki cetakan kaki lebih sedikit dan sesuai dengan seluruh kasus penggunaan (data kecil sesekali) tampaknya menjadi pilihan terbaik Anda.

Seperti yang Anda rujuk, CoAP menggunakan UDP. Itu tidak menjamin pengiriman data. Tetap tampil 'luar biasa' dalam kondisi lossy, sementara MQTT hanya 'bagus'. Jadi, saya tidak akan terlalu khawatir tentang itu.

Sumber:

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

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

mico
sumber
Referensi Anda tampaknya tidak mendukung kesimpulan Anda: "20 KB flash tambahan dan 8 KB RAM untuk ditingkatkan ke TCP". Jika Anda membulatkan ke 10kbits, atau bahkan ke 10kB, itu berarti bahwa perbedaan dalam penggunaan RAM antara CoAP dan MQTT tidak dapat diabaikan.
Gilles 'SANGAT berhenti menjadi jahat'
Tergantung jika TCP adalah kriteria seleksi. Ini menentang kasus normal untuk protokol, yaitu UDP. Mengambil CoAP hampir berarti menerima UDP.
mico