• Cart0
    Ialt 0,00 DKK
    Your shopping cart is empty!
    Tax:
    Discount:
    Total:
tirsdag, 26 april 2022 14:00

MQTT - Message Queue Telemetry Protocol

Skrevet af JHB
Bedøm denne artikel
(0 bedømmelser)

Dataudveksling uden direkte forbindelse

Det særlige ved MQTT er, at to kommunikationspartnere, der udveksler data med hinanden, aldrig gør det via en direkte forbindelse.

I stedet er der en central dataformidler, mægleren. Mægleren accepterer data fra en MQTT-bruger og distribuerer dem til andre.


MQTT - Transmission på netværksniveau

MQTT bruger TCP som grundprotokol og fungerer således efter klient/server princippet.



Mægleren er den server, der som standard kan acceptere forbindelser på TCP-port 1883. MQTT-brugerne fungerer som TCP-klienter og opretter forbindelse til mægleren, når det kræves.




MQTT - Dataudveksling på protokolniveau

Med MQTT er der to roller, som en klient kan påtage sig.

Publisher
Som udgiver sender klienten data til mægleren. Dette kan være måleværdier, koblingstilstande eller andre procesdata. Udover læsbart tekstindhold tillader MQTT også binære data. Om udgiveren sender sine data til mægleren, når der er en ændring eller cyklisk, afhænger af applikationen.

Abonnent
Abonnenten accepterer data fra mægleren. I rollen som abonnent fortæller klienten mægleren, hvilke data den gerne vil modtage eller abonnere på, efter at forbindelsen er etableret.

Hver MQTT-klient kan være en udgiver, abonnent eller begge dele. Så der er ikke noget obligatorisk master/slave-princip som med andre industrielle protokoller. Alle MQTT-slutenheder eller -klienter er oprindeligt lige på MQTT-niveau. Hvem der leverer data, og hvem der modtager dem, bestemmes udelukkende af ansøgningen gennem udgiver-/abonnentopgaven.

Emne
MQTT-mægleren administrerer de data, der skal udveksles i henhold til dataendepunkter. Dataendepunkterne navngives ved hjælp af emner. Det er strenge, altså karakterkæder, som kan struktureres på samme måde som URL'en, når hjemmesiden kaldes op.

Eksempel:

Et W&T web termo-hygrobarometer måler temperatur, luftfugtighed og lufttryk i W&T-virksomhedens serverrum. Hver af de tre værdier repræsenterer et dataendepunkt.

Emnerne for dette kunne se sådan ud:

wut/serverraum/temperatur
wut/serverraum/luftfeuchte
wut/serverraum/luftdruck


Web-termohygrobarometeret overfører de målte værdier som en nyttelast, altså som dataindhold, under disse emner til MQTT-mægleren via MQTT publish.

Enhver MQTT-klient kan nu sende et abonnement med det ønskede emne til MQTT-mægleren. Her sender MQTT-klienten et Subscribe wut/serverraum/temperaturog abonnerer dermed på temperaturværdien af ​​web-termohygrobarometeret.



Så længe pc'en er tilsluttet mægleren som en MQTT-klient, modtager den automatisk værdien sendt af web-termohygrobarometeret via publicering.

Abonnenten kan arbejde med jokertegn "#", når de angiver emnerne.

Beispiel: wut/serverraum/# abonniert Temperatur, Luftfeuchte und Luftdruck für den Serverraum.

Ud over "#" er der også "+" som jokertegn. Hvis du indtaster "+", er det kun slutemner på det tilsvarende niveau, der abonnerer på - emner fra efterfølgende niveauer ignoreres.

Hver abonnent værdi har sin egen dataudsendelse.

 

Overførslen af ​​dataene er byte-orienteret og derfor binært gennemsigtig - så ethvert indhold kan overføres. For alt tekstindhold er UTF8 angivet som format for standardisering.

 


MQTT - Særlige funktioner

MQTT tilbyder nogle specielle muligheder for transport og udveksling af data, som kan indstilles ved hjælp af flag for hver forbindelse eller abonnement.

 

Quality of Service – QoS-
værdier mellem 0 og 2 bestemmer pålideligheden, med hvilken en publiceringsmeddelelse sendes til mægleren.

 

  1. ud og glemme
    MQTT-klienten forventer ingen bekræftelse for sendte data.
    Denne metode er usikker, men meget hurtig.

  2. mindst én gang
    MQTT-klienten kan sende dataene flere gange,
    indtil den modtager en bekræftelse på modtagelsen fra MQTT-mægleren.
    Denne procedure sikrer, at dataene kommer frem til mægleren, men
    om nødvendigt flere gange.

  3. nøjagtig én gang
    . Hver datatransmission skal udtrykkeligt bekræftes af MQTT-mægleren.
    Dette sikrer, at intet sendes to gange.
    Denne metode er den sikreste, men også den langsomste.

Med QoS1 og 2 opstår spørgsmålet ved første øjekast, hvorfor en enkelt datatransmission er mere sikker end flere transmissioner. Baggrunden bliver dog hurtigt klar ud fra to eksempler.

Handler det om at sende en målt værdi - f.eks. B. en temperatur - det er lige meget om værdien kommer flere gange til en abonnent. Men hvis den vinkel, der overføres, er, at en robotarm skal bevæge sig - f.eks. B. 5° - og datatransmissionen ankommer til abonnenten tre gange, ville robotarmen bevæge sig 15°, hvilket kan få fatale konsekvenser.

Sidste vilje og testamente
En udgiver kan specificere, at mægleren sender en specifik besked til abonnenten(e) i stedet for de abonnerede værdier/data i tilfælde af, at MQTT-forbindelsen mistes.

Beholdte meddelelse
Ved at indstille dette flag instruerer udgiveren mægleren om midlertidigt at gemme den sidst sendte værdi/data og straks sende den til en abonnent, der genopretter forbindelsen.

Alle tre funktioner er særligt nyttige, når transmissionen ikke altid er pålidelig (f.eks. mobilnetværk).


Funktioner og fordele ved MQTT

MQTT betragtes som transmissionsprotokollen for "Internet of Things" og tilbyder forskellige fordele, især for dataudveksling via internettet:

 

  • Da alle slutenheder, der bruger MQTT, fungerer som klienter, er det normalt muligt at overvinde firewalls og sikkerhedsforanstaltninger med ringe eller ingen indsats (ingen portfrigivelser og ingen NAT-routing/portvideresendelse skal konfigureres i firewalls).
  • Udgiveren skal ikke bekymre sig om, hvilke modtagere der rent faktisk modtager de oplyste data.
  • I modsætning til andre internetbaserede protokoller kan binære data overføres uden Base64 eller anden kodning.

Egenskaber og ulemper

 

  • Dataleverandøren ved ikke, hvem der rent faktisk modtager hans data (ingen ende-til-ende-bekræftelse).
  • Ingen realtidskapacitet
Læst 69 gange Senest ændret tirsdag, 26 april 2022 14:31

Skriv en kommentar