Pregled protokola za umrežavanje i razmjenu poruka za IoT

Zdravo, Khabrovci! Prvi ruski onlajn programer IoT kurseva lansira u OTUS-u u oktobru. Trenutno je otvoren upis za kurs, u vezi sa kojim nastavljamo da delimo korisne materijale sa vama.

Pregled protokola za umrežavanje i razmjenu poruka za IoT

Internet stvari (IoT, Internet of Things) će biti izgrađen na vrhu postojeće mrežne infrastrukture, tehnologija i protokola koji se trenutno koriste u domovima/kancelarijama i Internetu, te će ponuditi mnogo više.

Svrha ovog vodiča je da pruži kratak pregled mrežnih i aplikacijskih protokola za IoT.

Bilješka. Morate imati znanje osnove mrežnih tehnologija.

IoT mreže

IoT će raditi na postojećim TCP/IP mrežama.

TCP/IP koristi četvoroslojni model sa specifičnim protokolima na svakom sloju. Cm. razumijevanje modela TCP/IP 4 sloja (razumijemo četveroslojni model TCP/IP).

Dijagram ispod prikazuje poređenje protokola koji se trenutno koriste i onih koji će se najvjerovatnije koristiti za IoT.

Pregled protokola za umrežavanje i razmjenu poruka za IoT

Bilješke na grafikonu:

  1. Veličina fonta ukazuje na popularnost protokola. Na primjer, na lijevoj strani, IPv4 je veći, jer je mnogo popularniji na modernom Internetu. Međutim, on je manji na desnoj strani jer se očekuje da će IPv6 biti popularniji u IoT-u.

  2. Nisu prikazani svi protokoli.

  3. Većina promjena je na nivou kanala (nivoi 1 i 2) i nivoa aplikacije (nivo 4).

  4. Mrežni i transportni slojevi će vjerovatno ostati nepromijenjeni.

Protokoli sloja veze

Na nivou podatkovne veze (Data Link), morate međusobno povezati uređaje. Mogu biti i blizu, na primjer, u lokalnim mrežama (lokalne mreže) i na velikoj udaljenosti jedna od druge: u urbanim (mreže gradskih područja) i globalnim mrežama (mreže širokog područja).

Trenutno, na ovom nivou, kućne i kancelarijske mreže (LAN) koriste Ethernet i Wi-Fi, a mobilne (WAN) koriste 3G / 4G. Međutim, mnogi IoT uređaji su male snage, kao što su senzori, i napajaju se samo iz baterija. U ovim slučajevima, Ethernet nije prikladan, ali se mogu koristiti Wi-Fi sa malom snagom i Bluetooth.

Iako će se postojeće bežične tehnologije (Wi-Fi, Bluetooth, 3G/4G) i dalje koristiti za povezivanje ovih uređaja, također je vrijedno pogledati nove tehnologije posebno dizajnirane za IoT aplikacije koje će vjerojatno rasti u popularnosti.

Među njima:

  • BLE – Bluetooth niske energije

  • LoRaWAN - Long Range WAN

  • SigFox

  • LTE-M

Oni su detaljnije opisani u članku. Pregled IOT bežičnih tehnologija (pregled bežičnih IoT tehnologija).

mrežni sloj

Na mrežnom sloju (Networking), protokol će dominirati na duge staze IPv6. Malo je vjerovatno da će se IPv4 koristiti, ali može igrati ulogu u ranim fazama. Većina kućnih IoT uređaja, kao što su pametne sijalice, trenutno koriste IPv4.

transportni sloj 

Na transportnom sloju (Transport), internetom i webom dominira TCP. Koristi se u HTTP i mnogim drugim popularnim internet protokolima (SMTP, POP3, IMAP4, itd.).

MQTT, za koji očekujem da će postati jedan od glavnih protokola aplikacijskog sloja za razmjenu poruka, trenutno koristi TCP.

Međutim, u budućnosti, zbog nižih troškova, očekujem da će UDP postati popularniji za IoT. Vjerovatno rašireniji MQTT-SN, trčanje preko UDP-a. Pogledajte uporedni članak TCP vs UDP .

Aplikacijski sloj i protokoli za razmjenu poruka

Važne karakteristike za IoT protokole:

  • Brzina - količina prenesenih podataka u sekundi.

  • Latencija je vrijeme potrebno za slanje poruke.

  • Potrošnja energije

  • Sigurnost.

  • Dostupnost softvera.

Trenutno se na ovom nivou aktivno koriste dva glavna protokola: HTTP i MQTT.

HTTP je vjerovatno najpoznatiji protokol ovog sloja koji leži u osnovi weba (WWW). I dalje će biti važan za IoT, jer se koristi za REST API - glavni mehanizam za interakciju između web aplikacija i usluga. Međutim, zbog velikih troškova, malo je vjerovatno da će HTTP postati glavni IoT protokol, iako će se i dalje široko koristiti na Internetu.

MQTT (Message Queuing Telemetry Transport) postao je glavni protokol za razmjenu poruka u IoT-u zbog svoje lakoće i jednostavnosti korištenja. Vidi članak Uvod u MQTT za početnike (Uvod u MQTT za početnike).

Poređenje HTTP-a i MQTT-a za IoT

MQTT brzo postaje de facto standard za IoT aplikacije. To je zbog njegove lakoće i brzine u poređenju sa HTTP-om i činjenice da je to jedan-prema-više protokolu, a ne jedan-na-jedan (HTTP).

Mnoge moderne web aplikacije bi rado koristile MQTT umjesto HTTP da je bio dostupan u vrijeme njihovog razvoja.

Dobar primjer je slanje informacija većem broju klijenata, kao što su dolasci i odlasci vozova/autobusa/aviona. U ovom scenariju, jedan-na-jedan protokol kao što je HTTP ima mnogo dodatnih troškova i stavlja veliko opterećenje na web servere. Skaliranje ovih web servera može biti teško. Sa MQTT, klijenti se povezuju na brokera, koji se lako može dodati za balansiranje opterećenja. Pogledajte video tutorijal o tome Ponovno objavite HTML podatke preko MQTT-a (primjer dolaska letova) i članak MQTT vs HTTP za IOT.

Ostali protokoli za razmjenu poruka

HTTP nije dizajniran za IoT aplikacije, ali kao što je spomenuto, neko vrijeme će se široko koristiti zbog njegove široke upotrebe u API.

Gotovo sve IoT platforme podržavaju HTTP i MQTT.

Međutim, postoje i drugi protokoli koje vrijedi razmotriti.

Protokoli

  • MQTT - (Transport telemetrije u redu čekanja poruka). Koristi TCP/IP. Model objave-pretplate zahtijeva posrednika poruka.

  • AMQP - (Advanced Message Queuing Protocol). Koristi TCP/IP. Modeli izdavač-pretplatnik i od tačke do tačke.

  • COAP - (Protokol ograničene aplikacije). Koristi UDP. Dizajniran posebno za IoT, koristi model zahtjev-odgovor kao u HTTP-u. RFC 7252.

  • DDS - (Usluga distribucije podataka) 

U ovom članak razmatraju se glavni protokoli i njihove primjene. Zaključak ovog članka je da će IoT koristiti skup protokola, ovisno o njihovoj namjeni.

Međutim, retrospektivno, u prvim godinama interneta, HTTP protokol koji je postao dominantan bio je samo jedan od mnogih protokola.

Iako HTTP izvorno nije bio zamišljen za prijenos datoteka i e-pošte, danas se koristi za oba.

Očekujem da će se ista stvar dogoditi s protokolima za razmjenu poruka u IoT-u: većina usluga će koristiti jedan preovlađujući protokol.

Ispod su grafikoni Google Trends koji pokazuju kako se popularnost MQTT, COAP i AMQP promijenila u posljednjih nekoliko godina.

Pregled Google Trendova 

Pregled protokola za umrežavanje i razmjenu poruka za IoT

Podrška protokola po platformi

  • Microsoft Azure - MQTT, AMQP, HTTP i HTTPS

  • AWS - MQTT, HTTPS, MQTT preko websocketa

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Rezime

Većina promjena je na nivou kanala (nivoi 1 i 2) i nivoa aplikacije (nivo 4).

Mrežni i transportni slojevi će vjerovatno ostati nepromijenjeni.

Na sloju aplikacije, IoT komponente će koristiti protokole za razmjenu poruka. Iako smo još u ranoj fazi razvoja IoT-a, vjerovatno će se izdvojiti jedan ili možda dva protokola za razmjenu poruka.

U proteklih nekoliko godina, MQTT je postao najpopularniji, i upravo na njega se sada fokusiram na ovoj stranici.

HTTP će se također nastaviti koristiti jer je već dobro ugrađen u postojeće IoT platforme.

To je sve. Pozivamo vas da se prijavite za besplatnu demo lekciju na ovu temu "Chatbot za brze komande uređaju".

Čitaj više:

izvor: www.habr.com

Dodajte komentar