MQTT Nedir? |MQTT (Message Queuing Telemetry Transport) düşük bant genişliği olan, gecikme süresi yüksek olan veya güvenilir olmayan ağlar ve kısıtlı cihazlar için tasarlanmış son derece basit ve hafif bir mesajlaşma protokolüdür. Tasarım ilkeleri, ağ bant genişliğini ve cihaz kaynak gereksinimlerini en aza indirirken güvenilirlik ve teslimat güvencesi sağlamaya çalışır. Bu ilkeler aynı zamanda MQTT protokolünü, “makineden makineye” (M2M) veya “Nesnelerin İnterneti” (IoT) dünyası için ideal hale getirmektedir.

MQTT Nedir

MQTT Nedir?

MQTT Nedir

MQTT Nedir

MQTT Mimarisi | MQTT Nedir?

MQTT Nedir

MQTT, PUSH / SUBSCRIBE topolojisi kullanılarak TCP / IP’nin üstünde çalışır. MQTT mimarisinde iki tür sistem vardır: istemciler(client) ve sunucular. Sunucu, istemcilerin birbirleri arasında veri alma veya gönderme taleplerini karşılamaktan sorumlu olan taraftır.

MQTT sunucusuna “Broker” adı verilir ve istemciler Broker’a bağlı aygıtlardır.

  • Bir aygıt (istemci) Broker’a veri göndermek istediğinde, bu işleme “publish” diyoruz.
  • Bir aygıt (istemci) Broker’dan veri almak istediğinde, bu işleme “subscribe” diyoruz.

İstemciler doğrudan birbirleriyle iletişim kurmazlar, bunun yerine Broker’a bağlanırlar. Her istemci bir Publisher(yayıncı), Subscriber(abone) veya her ikisi de olabilir. Publisherlar verileri belli bir “Topic” adıyla yayınlar ve Subscriberlar bu Topic adı aracılığıyla Broker’a abone olarak verileri alır.

MQTT olay güdümlü bir protokoldür. Periyodik veya devam eden bir veri iletimi yoktur. Bu durum veri trafiğini minimumda tutar. İstemci yalnızca gönderilecek bilgi olduğunda yayınlar ve Broker yalnızca yeni veriler geldiğinde abonelere gönderir.

MQTT Nedir?

MQTT Nedir

Elimizde bir sıcaklık sensörü olsun. Sensör, okuduğu verileri Broker’a göndermek istemektedir. Diğer taraftan, bir telefon veya masaüstü uygulaması bu sıcaklık değerini almak istemektedir.

Sensör, yayınlamak için Topic tanımlar, örneğin: “temp” olsun. Ardından “sıcaklık değeri” mesajını yayınlar.

Telefon / masaüstü uygulaması “temp” adlı Topic’e abone olur ve sensörün yayınladığı mesajı, yani sıcaklık değerini alır.

Burada Broker’ın rolü “sıcaklık değeri” mesajını almak ve telefon / masaüstü uygulamasına teslim etmektir.

MQTT Nedir?

Mesaj Mimarisi | MQTT Nedir?

MQTT’ nin veri trafiğini en aza indirmesinin bir başka sebebi de küçük mesaj yapısıdır. Her mesajın yalnızca 2 baytlık sabit bir başlığı vardır. Mesaj içeriği maksimum 256 MB’ a çıkabilir. Ağ tasarımcılarının veri trafiğini en aza indirmek ya da güvenilirliği en üst düzeye çıkarmak arasında seçim yapmalarını sağlayan üç farklı Hizmet Kalitesi (Quality of Service – QoS) seviyesi bulunmaktadır.

QoS 0 – Minimum veri aktarımı sağlanır. Bu seviyede her mesaj bir Subscriber’a iletilir ve mesajın ulaştığına dair onay alınmaz.  Subscriber’ların mesajı alıp almadıklarını bilmenin bir yolu yoktur. Bu yönteme “fire and forget” veya “at most once delivery” (en fazla bir kez teslim) denir. Broker mesajı gönderdiğinde teslimatın tamamlandığını varsaydığı için mesajı saklamaz. Bu sebeple, Broker mesajı gönderdiği sırada çevrimdışı olan Subscriber olursa tekrar bağlandığında o mesajı kaçırmış olur.

QoS 1 – Broker mesajı iletmeyi dener ve ardından Subscriber’dan bir onay yanıtı bekler. Belirtilen bir zaman dilimi içinde onay alınmazsa, mesaj tekrar gönderilir. Subscriber, onay yanıtını belirtilen zamanda gönderemezse bu mesajı birden fazla kez alabilir. Bu yönteme “at least once delivery” (en az bir kez teslim) denir.

QoS 2 – Broker, Subscriber’ın mesajı aldığından ve yalnızca bir kez alındığından emin olmak için iki onay alır. Bu yönteme “tam olarak bir kez teslim” olarak adlandırılır.

İletişimin güvenilir ancak sınırlı olduğu durumlarda, QoS 0 en iyi seçenek olabilir. İletişim güvenilir olmadığı ancak kaynak olarak sınırın olmadığı durumlarda, QoS 2 en iyi seçenek olacaktır. QoS 1 ise en iyi çözümü sunar, ancak verileri alan uygulamanın kopyaların nasıl işleneceğini bilmesini gerektirir.

Hem QoS 1 hem de QoS 2 için, çevrimdışı olan ve kalıcı bir oturumu olan Subscriber’lar için mesajlar kaydedilir veya sıraya alınır. İstemci yeniden çevrimiçi olduğunda bu mesajlar QoS düzeyine göre yeniden gönderilir.

“Last Will and Testament” | MQTT Nedir?

İletişimin güvenilir olmadığı durumlarda, bir Publisher’ın uyarı yapmadan çevrimdışı olması mümkündür. Bir Publisher, beklenmedik bir şekilde bağlantısının kesilmesi durumunda Subscriber’lara gönderilecek bir mesaj kaydedebilir, bu “Last will and testament” (son vasiyet) olarak adlandırılır. Bu mesaj, Broker’da önbelleğe alınır ve Publisher’ın bağlantısının düzgün şekilde kesilmesi durumunda Subscriber’lara gönderilir. Tipik olarak, böyle bir mesaj, uygun eylemlerin yapılabilmesi için bağlantısı kesilmiş Publisher’ın belirlenmesine izin veren bilgiler içerir.

Güvenlik

MQTT protokolünün asıl amacı ucuz ve güvenilir olmayan iletişim hatlarında mümkün olan en küçük ve en verimli veri iletimini sağlamaktı. Bu nedenle, MQTT’nin tasarımı ve uygulanması sırasında güvenlik birincil bir endişe değildi. Bununla birlikte bazı güvenlik seçenekleri mevcuttur.

  • Ağ güvenliği – Ağın güvenliği sağlanabilirse, güvenli olmayan MQTT verileri sorun teşkil etmez. Bu durumda, güvenlik sorunlarının ağın içinden, belki de kötü bir aktör ya da başka bir ağ penetrasyonu yoluyla ortaya çıkması beklenir.
  • Kullanıcı adı ve şifre – MQTT, bir istemcinin Broker ile bağlantı kurması için kullanıcı adı ve parola kullanılmasına izin verir. Çoğunlukla kullanıcı adı ve parola, kötü niyetli aktörlere karşı koruma olarak değil, istem dışı bağlantılardan kaçınmanın bir yolu olarak kullanılır.
  • SSL / TLS –  İstemciler ve Broker arasındaki iletimlerin güvenliğini sağlamak için bariz bir çözüm olan TCP / IP üzerinde çalışan SSL / TLS uygulamasıdır. Maalesef bu hafif iletişimlere önemli ölçüde ek yük getirir.

IoT Platformu

Nesnelerin İnterneti ( Internet of Things) ‘ nin en önemli bileşenlerinden biri IoT platformudur. Platform cihazları birbirine bağlamaktan sorumludur. Kullanıcının bağlı cihazlarını kontrol etmesine ve izlemesine izin vermek için bir Broker sunucu ve GUI  (grafik arayüzü) içeren bulut tabanlı bir yazılımdır. Bu nedenle, MQTT Broker IoT platformunun içine dolaylı olarak dahil edilmiştir.

IoSphere IoT Platformu, veri toplama, analiz, görselleştirme ve cihaz yönetimi imkanı sunar ve MQTT protokolünü destekler.

error: