MQTT (Message Queuing Telemetry Transport), hafif ve verimli bir mesajlaşma protokolü olup, düşük bant genişliğine ve gücün kısıtlı olduğu cihazlar arasında haberleşmeyi sağlamak için tasarlanmıştır. Gömülü sistemler, Nesnelerin İnterneti (IoT) cihazları ve endüstriyel otomasyon sistemlerinde yaygın olarak kullanılan bu protokol, istemci-sunucu modeline dayanmaktadır.
MQTT'nin Genel Yapısı
MQTT, istemci ve sunucu (broker) arasında mesajlaşma mantığına dayanarak çalışır. Bu yapıda mesajlar belirli bir konu başlığı (topic) üzerinden yayınlanır ve aboneler tarafından alınır. Bu mekanizma "publish/subscribe" (yayınla/abone ol) modeli olarak adlandırılır.
Broker (Aracı)
Broker, MQTT mesajlarının iletilmesini yöneten merkezidir. Yayınlanan mesajları ilgili abonelere ulaştırmakla görevlidir. Broker, istemcilerin birbiriyle doğrudan iletişime geçmesini engelleyerek, ağ trafiğini optimize eder ve veri akışını düzenler.
İstemci
MQTT istemcileri, broker ile haberleşen ve mesaj yayınlayarak ya da mesajlara abone olarak çalışan uygulamalardır. İstemciler genellikle IoT cihazları, sensörler, mobil uygulamalar veya masaüstü programlar olabilir.
MQTT'nin Temel Bileşenleri
Mesaj Yayınlama ve Abonelik
MQTT, "publish/subscribe" modeline dayanarak haberleşme sağlar. Bir istemci belirli bir konuya mesaj yayınladığında, o konuya abone olan diğer istemciler bu mesajı alır.
MQTT protokolünün nasıl çalıştığını gösteren bir diyagram. (YZ ile çizilmiştir)
Kalite Seviyeleri (QoS)
MQTT, mesaj iletiminde üç farklı kalite seviyesi sunar:
- QoS 0: "En iyi çaba" seviyesi, mesajın ulaşıp ulaşmadığı garantilenmez.
- QoS 1: "En az bir kez" seviyesi, mesajın en az bir kez ulaşması garanti edilir.
- QoS 2: "Tam olarak bir kez" seviyesi, mesajın yalnızca bir kez ulaşması garanti edilir.
Kalıcı Bağlantılar
MQTT, istemcilerin bağlantısını sürekli açık tutmak yerine, "clean session" ve "persistent session" özellikleri ile bağlantı durumlarını esnek hale getirir.
Kullanım Alanları
MQTT, çeşitli endüstrilerde yaygın olarak kullanılır:
- Nesnelerin İnterneti (IoT): Sensörler, akıllı ev sistemleri, endüstriyel IoT cihazları.
- Otomotiv: Araç içi haberleşme ve telemetri sistemleri.
- Sağlık Teknolojileri: Uzaktan hasta izleme sistemleri ve tıbbi cihaz haberleşmesi.
- Akıllı Şehirler: Trafik kontrolü, enerji yönetimi ve kamu altyapısının izlenmesi.
Avantajlar ve Kısıtlamalar
MQTT'nin avantajları arasında bant genişliği dostu yapısı, basit mesajlaşma modeli ve güvenlik desteği bulunur. Bununla birlikte, ağ güvenliği ve ölçeklenebilirlik gibi bazı kısıtlamaları da vardır. MQTT'nin güvenli kullanılabilmesi için TLS/SSL gibi ek önlemler alınmalıdır.