İçeriğe geç
IoT

MQTT

MQTT, IoT için hafif ve güvenilir bir mesajlaşma protokolüdür. Cihazlar merkezi bir broker üzerinden konu bazlı yayınla-abone ol modeliyle haberleşir.

Açılımı: Message Queuing Telemetry Transport (historical name)

MQTT'yi 1999'da Andy Stanford-Clark (IBM) ve Arlen Nipper uydu bağlantılı boru hattı telemetrisi için geliştirdi. Bugün bir OASIS standardıdır: v3.1.1 (2014, aynı zamanda ISO/IEC 20922) ve v5.0 (2019). TCP üzerinde çalışır (1883, TLS ile 8883). Tarayıcılar WebSocket üzerinden de bağlanabilir. Sabit başlığı yalnızca 2 bayttan başladığı için düşük bant genişliğine ve kararsız bağlantılara uygundur.

Yayınla-abone ol modelinde istemciler birbirini tanımaz. Yayıncı mesajı bir konuya (topic, ör. fabrika/hat1/sicaklik) gönderir. Broker da mesajı bu konuya abone olan tüm istemcilere iletir. Aboneliklerde + tek seviyeli, # çok seviyeli joker karakterdir. Retained (saklı) mesaj özelliğiyle bir konudaki son değer yeni abonelere hemen iletilir. Last Will and Testament ise bağlantısı beklenmedik biçimde kopan bir cihaz adına broker'ın önceden tanımlı bir mesaj yayınlamasıdır. Cihazın çevrimdışı olduğunu anlamak için kullanılır.

Üç hizmet kalitesi seviyesi vardır: QoS 0 en fazla bir kez (onaysız), QoS 1 en az bir kez (mesaj tekrar gelebilir), QoS 2 tam olarak bir kez (dört adımlı el sıkışma, en maliyetli). Kalıcı oturumlarda istemci çevrimdışıyken QoS 1 ve 2 mesajları broker'da bekletilir. MQTT 5 ile ayrıntılı hata kodları, kullanıcı özellikleri, yük dengeleme için paylaşımlı abonelikler ve mesaj ömrü gibi özellikler geldi. Yaygın broker yazılımları arasında Eclipse Mosquitto, EMQX ve HiveMQ var.

Güvenlik için TLS, istemci başına kimlik doğrulama (kullanıcı adı/şifre veya istemci sertifikası) ve konu bazlı erişim kuralları (ACL) şarttır. Anonim erişime açık broker'lar sık rastlanan bir güvenlik açığıdır. Konu hiyerarşisi baştan tutarlı tasarlanmalıdır (ör. müşteri/saha/cihaz/ölçüm). IoT sistemlerinde Modbus cihazlarından ağ geçidiyle okunan veriler ve LoRaWAN ağ sunucularından gelen sensör verileri çoğunlukla MQTT ile platforma aktarılır. Çok kısıtlı sensör ağları için MQTT-SN varyantı vardır.

Bir projeniz mi var?

Ne kurmak istediğinizi kısaca yazın ya da arayın. Talebinizi ilgili ekibe biz iletelim.