PROTOCOL MQTT DAN PERANCANGANNYA

 PROTOKOL MQTT

Protokol MQTT digunakan dalam Internet of Things (IoT) dengan model komunikasi publish-subscribe. Terdapat tiga komponen utama: publisher, subscriber, dan message broker. Publisher mengirimkan data sensor, subscriber berlangganan data, dan message broker menyampaikan data antara keduanya. Dalam MQTT, pesan dikirim ke broker dengan topik yang relevan, lalu broker mengirimkannya ke subscriber yang berlangganan topik tersebut. Model ini memungkinkan komunikasi efisien dalam skala besar dalam lingkungan IoT. Cara kerja MQTT dapat dilihat pada gambar berikut:






Jadi MQTT sebenarnya adalah suatu protokol yang biasa digunakan untuk komunikasi lewat internet. Beberapa istilah penting dalam MQTT adalah

  1. Publish dan Subscribe
  2. Topic
  3. Messages
  4. Broker

1. Publish dan Subscribe

Jika anda tau tentang model server client, MQTT tidak menggunakan model itu. MQTT menggunakan model Publish Subscribe. Singkatnya ada 2 bagian pada MQTT yakni Publisher yang dapat melakukan Publish dan Subscriber yang dapat melakukan subscribe. Publish artinya membagikan suatu “topic”. Sedangkan Subscribe berlangganan suatu “topic”. Jadi, Publish dan Topic ini bisa dibilang seperti tipe data khusus untuk membagikan atau berlangganan suatu topic. Jadi dalam penggunaannya pada protokol MQTT, akan dideklarasikan terlebih dahulu suatu variabel misalkan Subscriber SensorSuhu yang artinya membuat suatu Subscriber bernama SensorSuhu

2. Topic

Bila dianalogikan dengan berlangganan suatu majalah atau koran, topic adalah koran atau majalah tersebut. Misalkan, jika anda berlangganan koran Pikiran Rakyat, tapi anda tidak berlangganan koran Tempo. Artinya anda tidak tahu apa isi koran tempo. Subscribe pun demikian, ketika mensubscribe suatu topic A, maka topic B tidak anda ketahui. Topik adalah suatu string dan dipisahkan dengan tanda “/” untuk sub sub topiknya sehingga tanda “/” menunjukkan level topic. Lalu perlu diingat kalau topic ini bersifat Case Sensitive yang artinya kapital tidaknya huruf akan berpengaruh. misalkan “Suhu” dan “suhu” adalah suatu hal yang berbeda.

3. Messages

Messages adalah isi dari suatu topik, bisa berisi suatu data, misal nilai temperatur 25 derajat Celcius. Bisa juga berisi suatu perintah misalkan menyalakan lampu atau mematikan lampu. Seperti halnya berlangganan koran, anda akan mendapatkan koran tiap harinya, demikian juga pada protokol ini, jika sudah subscribe suatu topic misalnya topic suhu. Maka subscriber akan mendapatkan nilai suhu dari topic tersebut setiap jangka waktu tertentu, misalnya tiap 5 detik, subscriber akan menerima data suhu. Jangka waktu ini kemudian bisa diatur di program.

4. Broker

Broker berfungsi untuk menerima semua pesan, lalu mengolah atau menyaring semua pesan tersebut agar pesan-pesan hanya sampai pada subscriber topik yang bersesuaian.

Beberapa server broker online yang gratis adalah iot.eclipse.org, broker.hivemq.com, test.mosquitto.org. 


Komponen Protokol MQTT

Dalam MQTT ada beberapa komponen yang mendukung, apa saja? berikut adalah penjelasan selengkapnya!

  • Klien MQTT

Klien MQTT merupakan setiap perangkat dari server ke mikrokontroler yang menjalankan proses MQTT, apabila klien mengirim pesan maka ia akan bertindak sebagai penerbit. Sedangkan apabila klien menerima pesan maka ia akan berperan sebagai penerima.

  • Broker MQTT

Seperti yang telah dijelaskan sebelumnya bahwa broker merupakan sistem backend yang mengkoordinasikan pesan antara klien yang berbeda. Broker memiliki tanggung jawab untuk menerima dan memfilter pesan, juga mengidentifikasi klien , serta mengirimkan pesan pada klien.

  • Koneksi MQTT

Koneksi MQTT adalah komponen protokol MQTT yang menghubungkan antara klien dan broker yang melakukan komunikasi. Koneksi akan mengirimkan pesan connect ke broker MQTT, yang kemudian disampaikan kepada klien. Mereka tidak akan terhubung satu sama lain jika tidak ada koneksi.

Cara Kerja Protokol MQTT

Protokol MQTT bekerja dengan gambaran sebagai berikut: Pertama, Klien MQTT mengawali proses dengan membuat koneksi dengan broker MQTT, kemudian berlanjut pada proses berikutnya setelah koneksi tersebut terhubung. Setelah itu klien bisa mempublikasikan pesan yang ingin disampaikan , dengan berlangganan pesan tertentu atau bisa juga dengan melakukan keduanya. Ketika broker MQTT menerima pesan, broker memiliki tugas untuk meneruskan pesan yang ingin disampaikan oleh klien kepada para pelanggan yang tertarik.

Kelebihan MQTT

  • Overhead bandwidth yang rendah : MQTT memiliki overhead bandwidth yang rendah sehingga sangat sesuai untuk digunakan pada jaringan IoT yang memiliki keterbatasan bandwith.
  • Keterbatasan sumber daya : MQTT dapat berjalan pada perangkat dengan sumber daya terbatas seperti microcontroller.
  • Keandalan koneksi : MQTT menggunakan sistem publish-subscribe sehingga memastikan bahwa pesan akan diterima meskipun ada kesalahan jaringan.
  • Mudah dipelajari dan digunakan : MQTT memiliki syntax yang mudah dipahami dan sederhana sehingga mudah untuk dipelajari dan digunakan.

Kekurangan MQTT

  • Keamanan : MQTT tidak memiliki enkripsi bawaan sehingga membutuhkan solusi tambahan untuk menjamin keamanan data.
  • Skalabilitas : MQTT tidak memiliki fitur skalabilitas yang baik sehingga mungkin menjadi masalah saat digunakan pada jaringan yang besar.
  • Latensi tinggi : MQTT memiliki latensi yang lebih tinggi dibandingkan dengan protokol komunikasi lain seperti HTTP.
  • Ketergantungan broker : MQTT sangat bergantung pada broker untuk mengirimkan dan menerima pesan sehingga menjadi masalah saat broker tidak tersedia.

Sebagai kesimpulan, MQTT memiliki beberapa kelebihan dan kekurangan yang harus dipertimbangkan saat digunakan pada aplikasi IoT. Kelebihan MQTT seperti overhead bandwidth yang rendah dan keandalan koneksi sangat penting untuk aplikasi IoT, sementara kekurangan seperti keamanan dan skalabilitas perlu diatasi dengan solusi tambahan.

Perancangan protokol MQTT

Perancangan protokol MQTT secara umum:

Header Protokol:

Fixed Header: Bagian tetap yang berisi informasi tentang jenis pesan, flag, dan panjang pesan.

Variable Header: Informasi tambahan yang berubah tergantung pada jenis pesan.

Jenis Pesan:

CONNECT: Pesan inisiasi koneksi antara klien dan broker.

CONNACK: Balasan dari broker terhadap pesan CONNECT.

PUBLISH: Mengirim data dari klien ke broker atau dari broker ke klien.

PUBACK, PUBREC, PUBREL, PUBCOMP: Konfirmasi penerimaan pesan PUBLISH.

SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK: Untuk mengatur langganan dan berhenti berlangganan.

PINGREQ, PINGRESP: Untuk menjaga agar koneksi tetap terbuka.

DISCONNECT: Pesan untuk memutus koneksi.

Quality of Service (QoS):

Level 0: Fire and forget, tanpa konfirmasi penerimaan.

Level 1: Setidaknya sekali untuk konfirmasi penerimaan.

Level 2: Pasti sekali dan hanya sekali untuk konfirmasi penerimaan.

Topik (Topic):

Struktur hierarki untuk klasifikasi pesan.

Contoh: "home/living-room/temperature".

Payload:

Bagian pesan yang berisi data yang sebenarnya.

Bisa berupa teks, JSON, atau format data lainnya.

Session State:

Menyimpan status koneksi untuk klien yang sudah terhubung sebelumnya.

Menjaga pesan yang belum terkirim ketika koneksi terputus dan kemudian dipulihkan.

Keamanan:

Penggunaan TLS/SSL untuk enkripsi data.

Autentikasi dengan username dan password.

Mekanisme otentikasi lainnya sesuai kebutuhan.

Retained Messages:

Broker menyimpan pesan terakhir untuk setiap topik, sehingga klien baru dapat menerima informasi terkini saat mereka terhubung.

Will Message:

Pesan yang dikirimkan oleh broker jika koneksi klien terputus tanpa memberikan pemberitahuan yang benar.

Clean Session:

Klien dapat memilih apakah ingin memulai sesi bersih (tidak menyimpan status sebelumnya) atau sesi yang berkelanjutan.

Keep Alive:

Periode waktu di mana klien dan broker harus saling bertukar pesan PING untuk menjaga agar koneksi tetap aktif.

Mekanisme Retry:

Klien dapat mencoba kembali mengirim pesan jika tidak ada konfirmasi penerimaan.

REFERENSI

https://doi.org/10.23960/

https://medium.com/ristex/protokol-mqtt-sebagai-protokol-sederhana-untuk-mendalami-iot-97cfc33b584f

https://dosenit.com/jaringan-komputer/protokol-mqtt

https://www.initialboard.com/apa-itu-prokol-mqtt#gsc.tab=0

Komentar

Postingan populer dari blog ini

TEKNIK DIGITAL

SEVEN SEGMENT

MULTIPLEXER DAN DEMULTIPLEXER