O privire de ansamblu asupra protocoalelor de rețea și a protocoalelor de schimb de mesaje pentru IoT

Bună, habrăușii! Primul curs online IoT-dezvoltator din Rusia începe la OTUS în octombrie. În acest moment, înscrierea pentru curs este deschisă, motiv pentru care continuăm să împărtășim cu voi materiale utile.

O privire de ansamblu asupra protocoalelor de rețea și a protocoalelor de schimb de mesaje pentru IoT

Internetul lucrurilor (IoT, Internet of Things) va fi construit pe baza infrastructurii de rețea existentă, a tehnologiilor și protocoalelor folosite în prezent în case, birouri și pe internet, și va oferi multe altele.

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

Notă. Trebuie să aveți cunoștințe de bază despre tehnologiile de rețea.

rețelele IoT

IoT va funcționa în rețelele existente TCP/IP.

TCP/IP folosește un model cu patru straturi cu protocoale specifice la fiecare nivel. Vedeți înțelegerea modelului TCP/IP cu 4 straturi (înțelegerea modelului cu patru straturi TCP/IP).

În diagrama de mai jos este comparată protocoalele folosite în prezent și cele care, cel mai probabil, vor fi utilizate pentru IoT.

O privire de ansamblu asupra protocoalelor de rețea și a protocoalelor de schimb de mesaje pentru IoT

Note pentru diagramă:

  1. Dimensiunea fontului reflectă gradul de popularitate al protocolului. De exemplu, în partea stângă, IPv4 este mai mare, deoarece este mult mai popular în internetul modern. Totuși, în partea dreaptă este mai mic, deoarece se așteaptă ca IPv6 să devină mai popular în IoT.

  2. Nu sunt prezentate toate protocoalele.

  3. Cele mai multe schimbări vor avea loc la nivelurile de legătură (nivelurile 1 și 2) și celor aplicație (nivelul 4).

  4. Nivelurile de rețea și transport vor rămâne cel mai probabil neschimbate.

Protocoalele nivelului de legătură

La nivelul de legătură (Data Link), trebuie să conectați dispozitivele între ele. Acestea pot fi aproape unele de altele, de exemplu, în rețele locale (local networks) sau la distanțe mari, în rețele urbane (metropolitan area networks) și globale (wide area networks).

În prezent, la acest nivel în rețelele de acasă și birouri (LAN) sunt utilizate Ethernet și Wi-Fi, iar în cele mobile (WAN) - 3G / 4G. Totuși, multe dispozitive IoT au un consum redus de energie, de exemplu, senzorii, și se alimentează doar de la baterii. În aceste cazuri, Ethernet nu este adecvat, dar se pot folosi Wi-Fi cu consum redus de energie și Bluetooth cu consum redus de energie.

Deși pentru conectarea acestor dispozitive se vor folosi în continuare tehnologiile wireless existente (Wi-Fi, Bluetooth, 3G / 4G), este de asemenea important să se acorde atenție noilor tehnologii, special concepute pentru aplicațiile IoT, popularitate cărora, cel mai probabil, va crește.

Printre acestea:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Mai multe detalii sunt descrise în articol O prezentare generală a tehnologiilor wireless IoT (o prezentare generală a tehnologiilor wireless IoT).

Nivelul de rețea

La nivel de rețea (Networking), pe termen lung, va domina protocolul IPv6. Este puțin probabil să fie folosit IPv4, dar ar putea juca un anumit rol în etapele inițiale. Cele mai multe dispozitive IoT pentru acasă, cum ar fi becurile smart, folosesc în prezent IPv4.

Nivelul de transport 

La nivel de transport (Transport), TCP domină internetul și web-ul. Este utilizat atât în HTTP, cât și în multe alte protocoale populare de pe internet (SMTP, POP3, IMAP4 etc.).

MQTT, care, după cum îmi imaginez, va deveni unul dintre principalele protocoale de nivel aplicație pentru mesagerie, folosește în prezent TCP.

Totuși, în viitor, datorită costurilor mai reduse, mă aștept ca UDP să devină mai popular pentru IoT. Este probabil să devină mai răspândit MQTT-SN, funcționând pe UDP. Consultați articolul despre comparația TCP vs UDP .

Nivelul aplicației și protocoalele de mesagerie

Caracteristicile importante pentru protocoalele IoT:

  • Viteza — cantitatea de date transmise pe secundă.

  • Întârzierea — timpul necesar pentru a transmite un mesaj.

  • Consumul de putere.

  • Securitate.

  • Disponibilitatea instrumentelor software.

În prezent, la acest nivel sunt utilizate activ două protocoale principale: 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 utilizat pentru REST API — principalul mecanism de interacțiune între aplicațiile web și servicii. Cu toate acestea, din cauza costurilor ridicate, este puțin probabil ca HTTP să devină protocolul principal pentru IoT, deși va fi în continuare utilizat pe scară largă pe internet.

MQTT (Message Queuing Telemetry Transport) a devenit protocolul principal de mesagerie în IoT, datorită ușurinței și simplității sale de utilizare. Consultați articolul Introducere în MQTT pentru începători (Introducere în MQTT pentru începători).

Compararea 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 „unul la mulți”, nu „unul la unul” (HTTP).

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

Un exemplu bun este trimiterea de informații către mai mulți clienți, cum ar fi despre sosirea și plecarea trenurilor / autobuzelor / avioanelor. În acest scenariu, protocolul „unu-la-unu”, cum ar fi HTTP, are cheltuieli generale mari și generează o sarcină mare pe serverele web. Scalarea acestor servere web poate fi dificilă. Cu MQTT, clienții se conectează la broker, care pot fi adăugați cu ușurință pentru a echilibra sarcina. Consultați acest tutorial cu video. Republish HTML Data Over MQTT (Exemplu sosiri zboruri) și articolul MQTT vs HTTP pentru IoT.

Alte protocoale de schimb de mesaje

HTTP nu a fost dezvoltat pentru aplicații IoT, dar, așa cum am menționat, va continua să fie utilizat pe scară largă pentru o vreme datorită utilizării sale extinse în API.

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

Cu toate acestea, există și alte protocoale care merită considerate.

Protocole

  • MQTT — (Message Queuing Telemetry Transport). Folosește TCP/IP. Pentru modelul „publisher-subscriber” este nevoie de un broker de mesaje.

  • AMQP — (Advanced Message Queuing Protocol). Folosește TCP/IP. Modelele „publisher-subscriber” și „point-to-point”.

  • COAP — (Constrained Application Protocol). Folosește UDP. A fost dezvoltat special pentru IoT, utilizează modelul solicitare-răspuns ca în HTTP. RFC 7252.

  • DDS — (Data Distribution Service) 

În această pe care l-ați citit se discută principalele protocoale și aplicațiile lor. Concluzia acestui articol este că IoT va utiliza un set de protocoale, în funcție de aplicația lor preconizată.

Cu toate acestea, dacă ne uităm înapoi, în primii ani de existență a Internetului, protocolul HTTP, care mai târziu a devenit dominant, era doar unul dintre numeroasele protocoale.

Deși HTTP nu a fost gândit inițial pentru transmiterea de fișiere și e-mail, astăzi este folosit și pentru aceste scopuri.

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

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

Prezentarea Google Trends 

O privire de ansamblu asupra protocoalelor de rețea și a protocoalelor de schimb de mesaje pentru IoT

Suport pentru protocoale pe platforme

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

  • AWS — MQTT, HTTPS, MQTT prin websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Rezumat

Cele mai multe schimbări vor avea loc la nivelurile de legătură (nivelurile 1 și 2) și celor aplicație (nivelul 4).

Nivelurile de rețea și transport vor rămâne cel mai probabil neschimbate.

La nivel aplicativ, componentele IoT vor utiliza protocoale de schimb de mesaje. Deși suntem încă într-o etapă timpurie a dezvoltării IoT, este foarte probabil că se va distinge unul sau, poate, două protocoale de schimb de mesaje.

În ultimii câțiva ani, MQTT a devenit cel mai popular, iar acum mă concentrez pe acesta pe acest site.

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

Asta e tot. Te invităm să te înscrii la un curs de demonstrație gratuit pe tema „Chatbotul pentru comenzi rapide ale dispozitivului”.

Citește mai mult:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster