Protokol seçimi IoT projesinde sandığınızdan çok daha belirleyici. Pil ömrünüzü saatler değil günler farkıyla değiştirebiliyor; veri merkezindeki sunucu yükünü on katına çıkarabiliyor. Üstelik bu seçim sonradan değiştirildiğinde cihaz firmware'inden mobil uygulamaya kadar zincirleme iş çıkarıyor.
Aşağıda en çok kullanılan üç protokolü (MQTT, CoAP, HTTP) çalışma şekilleri, güçlü-zayıf yönleri ve hangi senaryoda hangisinin doğru olduğu üzerinden ele aldık.
Bu yazıda her protokolü mimari yapısı, performans karakteristiği ve uygulama senaryolarıyla karşılaştırıyor; doğru seçimi yapabilmeniz için pratik bir karar çerçevesi sunuyoruz.
Hızlı Karşılaştırma Tablosu
| Özellik | MQTT | CoAP | HTTP |
|---|---|---|---|
| Mimari | Publish/Subscribe | Request/Response | Request/Response |
| Taşıyıcı | TCP | UDP | TCP |
| Header Boyutu | ~2 byte | ~4 byte | ~200+ byte |
| Bağlantı | Sürekli | Bağlantısız | İstek başına |
| Güvenlik | TLS | DTLS | TLS (HTTPS) |
| QoS Seviyeleri | 0, 1, 2 | Confirmable/NC | Yok |
| Tipik Kullanım | IoT, M2M | Kısıtlı cihazlar | Web, REST API |
MQTT (Message Queuing Telemetry Transport)
1999'da IBM tarafından, petrol boru hatlarındaki düşük bant genişlikli SCADA sistemleri için geliştirilen MQTT, bugün IoT dünyasının fiili standardı haline gelmiştir.
Nasıl Çalışır?
MQTT publish/subscribe (yayın/abonelik) modeline dayanır. Cihazlar mesajları doğrudan birbirine göndermez; bir broker (aracı sunucu) üzerinden topic'lere yayınlar veya abone olur. Bir sıcaklık sensörü 'ev/salon/sicaklik' topic'ine veri yayınlar; ekrandaki uygulama bu topic'e abone olur.
Güçlü Yanları
- Çok düşük bant genişliği kullanımı (~2 byte header)
- Üç farklı QoS seviyesi (0: en fazla bir kez, 1: en az bir kez, 2: tam olarak bir kez)
- Last Will and Testament: cihaz bağlantısı koparsa otomatik bilgilendirme
- Binlerce cihazı aynı broker üzerinden yönetebilir
- Mosquitto, HiveMQ, EMQX gibi olgun broker seçenekleri
Zayıf Yanları
- TCP üzerinde çalışır; her cihaz sürekli bağlantı tutar
- Broker tek nokta hata noktası; HA mimarisi karmaşık olabilir
- Bağlantı kurulumu UDP'ye göre daha pahalı
Ne Zaman Kullanılır?
Çok sayıda cihazın merkezi bir sisteme veri akıttığı her senaryoda MQTT idealdir. Akıllı ev cihazları, endüstriyel telemetre, filo takip sistemleri ve genel olarak IoT'nin tipik kullanım senaryoları MQTT için yapılmıştır.
CoAP (Constrained Application Protocol)
CoAP, IETF tarafından çok kısıtlı cihazlar (8-bit MCU'lar, sensörler, batarya ile çalışan IoT modülleri) için tasarlandı. HTTP'nin REST mimarisine benzer ama UDP üzerinde çalışır.
Nasıl Çalışır?
CoAP, HTTP'deki GET/POST/PUT/DELETE metodlarını UDP üzerinde sunar. İki tür mesaj vardır: Confirmable (onay bekler) ve Non-Confirmable (gönderir, unutur). Bu yapı, hem güvenilirlik hem de düşük güç tüketimi arasında esneklik sağlar.
Güçlü Yanları
- UDP üzerinde çalışır, bağlantı tutmaya gerek yok
- Çok düşük güç tüketimi; pille çalışan sensörler için ideal
- Multicast desteği var; bir mesaj birçok cihaza gidebilir
- Observer pattern ile MQTT'ye benzer abonelik mekanizması
Zayıf Yanları
- UDP nedeniyle NAT/firewall arkasında ek konfigürasyon gerekir
- MQTT'ye göre ekosistem ve kütüphane çeşitliliği daha az
- Bulut platformlarının çoğunda native destek MQTT'ye göre sınırlı
Ne Zaman Kullanılır?
Pille çalışan, çok az veri gönderen, donanım kaynağı kısıtlı cihazlarda CoAP daha uygundur. Akıllı tarım sensörleri, çevre izleme istasyonları, kentsel altyapı sensörleri (akıllı park yeri, atık konteyner sensörleri) tipik CoAP senaryolarıdır.
HTTP / HTTPS
Web'in temel protokolü olan HTTP, IoT için tasarlanmış olmasa da gücünü olgun ekosistem ve evrensel desteğinden alır. REST API'lar üzerinden çalışan IoT cihazları HTTP üzerinden veri alışverişi yapar.
Güçlü Yanları
- Her platformda native destek; geliştirme hızı yüksek
- Güvenlik standartları olgun (TLS 1.3, OAuth, JWT)
- Mevcut web altyapısıyla doğrudan uyum
- Debug ve test araçları çok zengin (Postman, curl, vb.)
Zayıf Yanları
- Header boyutu büyük (~200-500 byte); küçük telemetre paketleri için verimsiz
- Her istek için TCP+TLS handshake; pil tüketimi yüksek
- Sunucudan cihaza push gönderemezsiniz (long polling/WebSocket gerekir)
Ne Zaman Kullanılır?
Cihaz şebekeye bağlı, güç sorunu olmayan, nispeten az sıklıkta veri gönderen senaryolarda HTTP en pratik seçimdir. Yazıcılar, IP kameralar, akıllı buzdolabı gibi sürekli güç beslemeli cihazlar; firmware güncellemeleri (OTA) ve büyük dosya transferleri için HTTP idealdir.
Pratik Karar Çerçevesi
| Senaryo | Önerilen Protokol |
|---|---|
| Pille çalışan tarım sensörü | CoAP veya MQTT-SN |
| Akıllı ev cihazları (priz, lamba) | MQTT |
| Endüstriyel telemetre (binlerce cihaz) | MQTT |
| IP kamera / yazıcı | HTTP |
| Cihaz firmware güncellemesi | HTTP/HTTPS |
| Düşük gecikmeli mesajlaşma | MQTT (QoS 0) |
| Akıllı şehir sensörleri (LoRaWAN üstünde) | CoAP |
| Web tabanlı dashboard | HTTP/WebSocket |
Hibrit Mimariler
Gerçek dünyadaki çoğu IoT projesi tek protokole bağlı kalmaz. Tipik bir hibrit yaklaşım şöyledir:
- Cihazdan broker'a veri akışı: MQTT (düşük gecikme, sürekli bağlantı)
- Broker'dan bulut analitik servisine: HTTP REST API (toplu veri yükleme)
- Web/mobil uygulama dashboard'u: WebSocket veya HTTP polling
- Cihaz firmware güncellemesi: HTTPS dosya indirme
Bu yaklaşım her protokolün güçlü olduğu yeri kullanır ve sistemin geneli daha verimli çalışır.
Güvenlik Notları
Hangi protokolü seçerseniz seçin, üretim ortamında düz metin (plain) versiyonunu asla kullanmayın. MQTT için TLS, CoAP için DTLS, HTTP için HTTPS kullanımı zorunludur. Cihaz kimlik doğrulaması için sertifika tabanlı (mTLS) yöntemler, statik şifreden çok daha güvenlidir.
Sonuç
Doğru protokol seçimi; cihazınızın güç bütçesine, ağ koşullarına, mesaj sıklığına ve sistem mimarinize bağlıdır. MQTT IoT için en yaygın ve dengeli seçim, CoAP çok kısıtlı cihazlar için optimize edilmiş bir alternatif, HTTP ise web entegrasyonu kolay ama IoT için verimsiz bir tercihtir.
EA ARGE olarak, müşterilerimizin IoT projelerinde gereksinim analizi yapıp uygun protokol kombinasyonunu öneriyor; broker tarafından (Mosquitto, EMQX) cihaz tarafına (ESP32, STM32 firmware) kadar uçtan uca çözümler geliştiriyoruz.
Pratik tavsiye
Çoğu gerçek projede tek protokol değil hibrit kullanım var. Cihaz tarafı MQTT ile telemetri yollar, mobil/web panel ise aynı verilere HTTP API üzerinden ulaşır; kısıtlı senaryolarda CoAP devreye girer. Hangisini hangi katmanda kullanacağınızı baştan netleştirmek, sonradan REST mı pub/sub mu tartışmasından kurtarıyor.