Bună, habrăușii! î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.

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 .
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 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.

Note pentru diagramă:
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.
Nu sunt prezentate toate protocoalele.
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.
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).
Nivelul de rețea
La nivel de rețea (Networking), pe termen lung, va domina protocolul . 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 , funcționând pe UDP. Consultați articolul despre comparația .
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).
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. și articolul .
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 .
Aproape toate platformele IoT suportă atât HTTP, cât și MQTT.
Cu toate acestea, există și alte protocoale care merită considerate.
Protocole
— (Message Queuing Telemetry Transport). Folosește TCP/IP. Pentru modelul „publisher-subscriber” este nevoie de un broker de mesaje.
— (Advanced Message Queuing Protocol). Folosește TCP/IP. Modelele „publisher-subscriber” și „point-to-point”.
— (Constrained Application Protocol). Folosește UDP. A fost dezvoltat special pentru IoT, utilizează modelul solicitare-răspuns ca în HTTP. .
— (Data Distribution Service)
În această 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

Suport pentru protocoale pe platforme
— MQTT, AMQP, HTTP și HTTPS
— MQTT, HTTPS, MQTT prin websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— 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 .
Citește mai mult:
Sursa: habr.com
