Prezentare generală a protocoalelor de rețea și mesagerie pentru IoT

Bună, Khabroviți! Primul dezvoltator IoT de curs online din Rusia se lansează în OTUS în octombrie. Înscrierile la curs sunt deschise chiar acum, în legătură cu care continuăm să vă împărtășim materiale utile.

Prezentare generală a protocoalelor de rețea și mesagerie pentru IoT

Internetul Lucrurilor (IoT, Internetul Lucrurilor) va fi construit pe deasupra infrastructurii de rețea existente, tehnologiilor și protocoalelor utilizate în prezent în case/birouri și pe Internet și va oferi mult mai mult.

Scopul acestui ghid este de a oferi o scurtă prezentare generală a protocoalelor de rețea și de aplicație pentru IoT.

Notă. Trebuie să ai cunoștințe bazele tehnologiilor de rețea.

Rețele IoT

IoT va rula pe rețelele TCP/IP existente.

TCP/IP utilizează un model cu patru straturi cu protocoale specifice la fiecare nivel. Cm. înțelegerea modelului TCP/IP cu 4 straturi (înțelegem modelul cu patru straturi de TCP / IP).

Diagrama de mai jos arată o comparație a protocoalelor utilizate în prezent și a celor mai probabil să fie utilizate pentru IoT.

Prezentare generală a protocoalelor de rețea și mesagerie pentru IoT

Note de diagramă:

  1. Dimensiunea fontului indică popularitatea protocolului. De exemplu, în stânga, IPv4 este mai mare, deoarece este mult mai popular pe internetul modern. Cu toate acestea, este mai mic în partea dreaptă, deoarece se așteaptă ca IPv6 să fie mai popular în IoT.

  2. Nu sunt afișate toate protocoalele.

  3. Cele mai multe modificări sunt la nivel de canal (nivelele 1 și 2) și de aplicație (nivelul 4).

  4. Straturile de rețea și de transport sunt probabil să rămână neschimbate.

Protocoale de nivel de legătură

La nivel de legătură de date (Legătură de date), trebuie să conectați dispozitivele între ele. Ele pot fi atât apropiate, de exemplu, în rețelele locale (rețele locale), cât și la mare distanță una de cealaltă: în rețelele urbane (rețele metropolitane) și globale (rețelele de zonă largă).

În prezent, la acest nivel, rețelele de acasă și de birou (LAN) folosesc Ethernet și Wi-Fi, iar mobilele (WAN) folosesc 3G / 4G. Cu toate acestea, multe dispozitive IoT au o putere redusă, cum ar fi senzorii, și sunt alimentate doar de baterii. În aceste cazuri, Ethernet nu este potrivit, dar pot fi utilizate Wi-Fi cu putere redusă și Bluetooth cu putere redusă.

În timp ce tehnologiile wireless existente (Wi-Fi, Bluetooth, 3G/4G) vor continua să fie folosite pentru a conecta aceste dispozitive, merită să ne uităm și la noile tehnologii special concepute pentru aplicațiile IoT care ar putea crește în popularitate.

Printre acestea:

  • BLE - Bluetooth Low Energy

  • LoRaWAN - WAN cu rază lungă

  • Sig Fox

  • LTE-M

Ele sunt descrise mai detaliat în articol. O prezentare generală a tehnologiilor wireless IOT (prezentare generală a tehnologiilor IoT wireless).

stratul de rețea

La nivelul rețelei (Networking), protocolul va domina pe termen lung IPv6. Este puțin probabil ca IPv4 să fie utilizat, dar poate juca un rol în stadiile incipiente. Majoritatea dispozitivelor IoT de acasă, cum ar fi becurile inteligente, utilizează în prezent IPv4.

strat de transport 

La nivelul transportului (Transport), Internetul și web-ul sunt dominate de TCP. Este folosit atât în ​​HTTP, cât și în multe alte protocoale populare de Internet (SMTP, POP3, IMAP4 etc.).

MQTT, despre care mă aștept să devină unul dintre principalele protocoale de nivel de aplicație pentru mesagerie, utilizează în prezent TCP.

Cu toate acestea, în viitor, din cauza cheltuielilor generale mai mici, mă aștept ca UDP să devină mai popular pentru IoT. Probabil mai răspândit MQTT-SN, rulând peste UDP. Vezi articolul de comparație TCP vs UDP .

Stratul de aplicație și protocoale de mesagerie

Caracteristici importante pentru protocoalele IoT:

  • Viteză - cantitatea de date transferată pe secundă.

  • Latența este timpul necesar pentru a trimite un mesaj.

  • Consumul de energie

  • Securitate.

  • Disponibilitatea software-ului.

În prezent, două protocoale principale sunt utilizate în mod activ la acest nivel: HTTP și MQTT.

HTTP este probabil cel mai cunoscut protocol de acest nivel care stă la baza web-ului (WWW). Va continua să fie important pentru IoT, deoarece este folosit pentru API-ul REST - principalul mecanism de interacțiune între aplicațiile web și serviciile. Cu toate acestea, din cauza supraîncărcării mari, este puțin probabil ca HTTP să devină principalul protocol IoT, deși va fi încă utilizat pe scară largă pe Internet.

MQTT (Message Queuing Telemetry Transport) a devenit principalul protocol de mesagerie în IoT datorită ușurinței și ușurinței sale de utilizare. Vezi articolul Introducere în MQTT pentru începători (Introducere în MQTT pentru începători).

Comparație între HTTP și MQTT pentru IoT

MQTT devine rapid standardul de facto pentru aplicațiile IoT. Acest lucru se datorează ușurinței și vitezei sale în comparație cu HTTP și faptului că este un protocol unu-la-mulți, mai degrabă decât unul-la-unu (HTTP).

Multe aplicații web moderne ar folosi cu plăcere MQTT în loc de HTTP dacă ar fi disponibil în momentul dezvoltării lor.

Un bun exemplu este trimiterea de informații către mai mulți clienți, cum ar fi sosiri și plecări de trenuri/autobuze/avioane. În acest scenariu, un protocol unu-la-unu precum HTTP are multă sarcină generală și solicită multă sarcină serverelor web. Scalarea acestor servere web poate fi dificilă. Cu MQTT, clienții se conectează la un broker, care poate fi adăugat cu ușurință pentru echilibrarea sarcinii. Urmărește tutorialul video despre asta Republicați datele HTML prin MQTT (Exemplu de sosiri de zboruri) si articol MQTT vs HTTP pentru IOT.

Alte protocoale de mesagerie

HTTP nu a fost proiectat pentru aplicații IoT, dar, așa cum am menționat, va fi utilizat pe scară largă de ceva timp datorită utilizării sale pe scară largă în API.

Aproape toate platformele IoT acceptă atât HTTP, cât și MQTT.

Cu toate acestea, există și alte protocoale care merită luate în considerare.

protocoale

  • MQTT - (Message Queuing Telemetry Transport). Utilizează TCP/IP. Modelul de publicare-abonare necesită un broker de mesaje.

  • AMQP - (Protocol avansat de așteptare a mesajelor). Utilizează TCP/IP. Modele editor-abonat și punct la punct.

  • COAP - (Constrained Application Protocol). Utilizează UDP. Proiectat special pentru IoT, utilizează modelul cerere-răspuns ca în HTTP. RFC 7252.

  • DDS - (Serviciul de distribuție a datelor) 

In acest articol sunt luate în considerare principalele protocoale și aplicațiile acestora. Concluzia acestui articol este că IoT va folosi un set de protocoale, în funcție de utilizarea preconizată.

Cu toate acestea, retrospectiv, în primii ani ai Internetului, protocolul HTTP care avea să devină dominant a fost doar unul dintre multele protocoale.

Deși HTTP nu a fost conceput inițial pentru transferul de fișiere și e-mail, astăzi este folosit pentru ambele.

Mă aștept să se întâmple același lucru cu protocoalele de mesagerie în IoT: majoritatea serviciilor vor folosi un protocol predominant.

Mai jos sunt diagrame Google Trends care arată cum sa schimbat popularitatea MQTT, COAP și AMQP în ultimii câțiva ani.

Prezentare generală a Google Trends 

Prezentare generală a protocoalelor de rețea și mesagerie pentru IoT

Suport protocol pe platformă

  • Microsoft Azure - MQTT, AMQP, HTTP și HTTPS

  • AWS - MQTT, HTTPS, MQTT prin websocket-uri

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Rezumat

Cele mai multe modificări sunt la nivel de canal (nivelele 1 și 2) și de aplicație (nivelul 4).

Straturile de rețea și de transport sunt probabil să rămână neschimbate.

La nivelul aplicației, componentele IoT vor folosi protocoale de mesagerie. Deși suntem încă într-un stadiu incipient al dezvoltării IoT, este probabil ca unul sau poate două protocoale de mesagerie să iasă în evidență.

În ultimii ani, MQTT a devenit cel mai popular și tocmai pe acesta mă concentrez acum pe acest site.

HTTP va continua să fie utilizat, deoarece este deja bine integrat în platformele IoT existente.

Asta e tot. Vă invităm să vă înscrieți pentru o lecție demo gratuită pe această temă „Chatbot pentru comenzi rapide către dispozitiv”.

Citeste mai mult:

Sursa: www.habr.com

Adauga un comentariu