MQTT nedir? IoT cihazlarında neden tercih edilir? QoS seviyelerini açıklayın.
Cevap
MQTT, TCP üzerinde çalışan, broker tabanlı hafif bir publish/subscribe mesajlaşma protokolüdür. Cihazlar birbirine doğrudan bağlanmaz; mesajları bir topic'e publish eder, o topic'e subscribe olan istemciler mesajı broker üzerinden alır.
Neden IoT'de tercih edilir?
- Başlığı çok küçüktür (en az 2 byte); düşük bant genişliği ve düşük güç için uygundur.
- Cihaz sadece dışarıya bağlantı açar; NAT veya firewall arkasında çalışır.
- Publisher ve subscriber birbirini tanımaz (gevşek bağlılık).
- Kesintili bağlantılar için retained mesaj, oturum kalıcılığı ve Last Will özellikleri vardır.
QoS seviyeleri
| QoS | Garanti | Mekanizma | Kullanım |
|---|---|---|---|
| 0 | En fazla bir kez | Gönder ve unut | Sık gelen sensör verisi |
| 1 | En az bir kez | PUBACK, gerekirse tekrar gönderim (kopya mesaj olabilir) | Alarm, olay |
| 2 | Tam olarak bir kez | 4 adımlı el sıkışma | Fatura, sayaç gibi kopyası istenmeyen veriler |
Diğer önemli özellikler
- Topic hiyerarşisi ve wildcard:
fabrika/hat1/sicaklik;+tek seviye,#çok seviye eşleşir. - Retained mesaj: Broker topic'in son değerini saklar ve yeni abone olana hemen gönderir.
- Last Will and Testament (LWT): Cihaz bağlantısı beklenmedik şekilde koparsa broker önceden tanımlanmış bir mesaj yayınlar (ör.
durum = offline). - Keep alive: Belirli aralıklarla PINGREQ gönderilerek bağlantının canlı olduğu anlaşılır.
- MQTT 5: Reason code'lar, mesaj süresi (expiry), user property, shared subscription.
Güvenlik ve araçlar
Port 1883 düz TCP, 8883 TLS'tir. Üretimde TLS ve cihaz başına sertifika veya kimlik bilgisi kullanılmalıdır. Broker olarak Mosquitto, EMQX, HiveMQ veya AWS IoT Core; gömülü istemci olarak coreMQTT, Eclipse Paho Embedded C veya lwIP MQTT kullanılabilir.
mosquitto_sub -h broker.local -t "cihaz/+/sicaklik" -v
mosquitto_pub -h broker.local -t "cihaz/42/sicaklik" -m "23.5" -q 1 -rTCP olmayan, UDP veya Zigbee gibi ağlar için MQTT-SN, istek/cevap modeli için ise CoAP alternatiftir.
İlgili Haberleşme Protokolleri soruları
- UART, SPI ve I2C arasındaki farklar nelerdir?
- CAN bus nasıl çalışır? Arbitration, hata yönetimi ve CAN FD farkını açıklayın.
- SPI'da CPOL ve CPHA nedir? Dört SPI modu arasındaki fark nasıl açıklanır?
- I2C protokolü nasıl çalışır? Adresleme, ACK/NACK ve clock stretching nedir?
- UART'ta baud rate, frame yapısı ve parity nedir? RS-485 UART'tan nasıl farklıdır?
- USB nasıl çalışır? Enumeration süreci, endpoint'ler ve transfer tipleri nelerdir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.