ProHoster > Blog > uprava > Pregled mrežnih protokola i protokola za razmjenu poruka za IoT
Pregled mrežnih protokola i protokola za razmjenu poruka za IoT
Pozdrav, Khabrovci! Prvi ruski online tečaj IoT programer lansira u OTUS-u u listopadu. Upisi na tečaj su upravo otvoreni, s tim u vezi nastavljamo s vama dijeliti korisne materijale.
Internet stvari (IoT, Internet of Things) izgradit će se na postojećoj mrežnoj infrastrukturi, tehnologijama i protokolima koji se trenutno koriste u domovima/uredima i na internetu te će nuditi puno više.
Svrha ovog vodiča je pružiti kratak pregled mrežnih i aplikacijskih protokola za IoT.
TCP/IP koristi četveroslojni model sa specifičnim protokolima na svakom sloju. Cm. razumijevanje TCP/IP 4 slojnog modela (mi razumijemo četveroslojni model TCP/IP).
Donji dijagram prikazuje usporedbu protokola koji se trenutno koriste i onih koji će se najvjerojatnije koristiti za IoT.
Bilješke na grafikonu:
Veličina fonta ukazuje na popularnost protokola. Na primjer, s lijeve strane, IPv4 je veći, jer je puno popularniji na modernom Internetu. Međutim, manji je s desne strane jer se očekuje da će IPv6 biti popularniji u IoT-u.
Nisu prikazani svi protokoli.
Najviše promjena je na razini kanala (razine 1 i 2) i aplikacijske razine (razina 4).
Mrežni i transportni slojevi vjerojatno će ostati nepromijenjeni.
Protokoli sloja veze
Na razini podatkovne veze (Data Link) morate međusobno povezati uređaje. Mogu biti 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 ovoj razini, kućne i uredske mreže (LAN) koriste Ethernet i Wi-Fi, a mobilne (WAN) koriste 3G / 4G. Međutim, mnogi IoT uređaji imaju malu potrošnju energije, poput senzora, i napajaju se samo iz baterija. U tim slučajevima Ethernet nije prikladan, ali se mogu koristiti Wi-Fi i Bluetooth slabog napajanja.
Dok će se postojeće bežične tehnologije (Wi-Fi, Bluetooth, 3G/4G) i dalje koristiti za povezivanje ovih uređaja, također vrijedi pogledati nove tehnologije posebno dizajnirane za IoT aplikacije koje će vjerojatno rasti u popularnosti.
Na mrežnom sloju (umrežavanje), dugoročno će dominirati protokol IPv6. Malo je vjerojatno da će se IPv4 koristiti, ali bi mogao igrati ulogu u ranim fazama. Većina kućnih IoT uređaja, kao što su pametne žarulje, trenutno koriste IPv4.
transportni sloj
Na transportnom sloju (Transport), Internetom i webom dominira TCP. Koristi se u HTTP-u i mnogim drugim popularnim internetskim 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. Vjerojatno rašireniji MQTT-SN, radi preko UDP-a. Vidi usporedni članak TCP protiv UDP-a .
Aplikacijski sloj i protokoli za razmjenu poruka
Važne karakteristike za IoT protokole:
Brzina - količina podataka prenesenih u sekundi.
Latencija je vrijeme potrebno za slanje poruke.
Potrošnja energije.
Sigurnost.
Dostupnost softvera.
Trenutno se na ovoj razini aktivno koriste dva glavna protokola: HTTP i MQTT.
HTTP je vjerojatno najpoznatiji protokol ove razine 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 vjerojatno 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).
Usporedba 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 usporedbi s HTTP-om i činjenice da je to protokol jedan-na-više, a ne jedan-na-jedan (HTTP).
Mnoge moderne web aplikacije rado bi koristile MQTT umjesto HTTP-a da je bio dostupan u vrijeme njihovog razvoja.
Dobar primjer je slanje informacija mnogim klijentima, kao što su dolasci i odlasci vlakova/autobusa/zrakoplova. U ovom scenariju, protokol jedan-na-jedan kao što je HTTP ima mnogo opterećenja i dosta opterećuje web poslužitelje. Skaliranje ovih web poslužitelja može biti teško. Uz MQTT, klijenti se povezuju s brokerom, koji se može jednostavno dodati za uravnoteženje opterećenja. Pogledajte video tutorial o tome Ponovno objavljivanje HTML podataka putem MQTT-a (primjer dolazaka letova) i članak MQTT u odnosu na HTTP za IOT.
Ostali protokoli za razmjenu poruka
HTTP nije dizajniran za IoT aplikacije, ali kao što je spomenuto, još će neko vrijeme biti u širokoj upotrebi zbog široke upotrebe u API.
Gotovo sve IoT platforme podržavaju i HTTP i MQTT.
Međutim, postoje i drugi protokoli koje vrijedi razmotriti.
protokoli
MQTT - (Telemetrijski prijenos poruka u redu čekanja). Koristi TCP/IP. Model objavljivanja i pretplate zahtijeva brokera poruka.
AMQP - (Advanced Message Queuing Protocol). Koristi TCP/IP. Modeli izdavač-pretplatnik i točka-točka.
COAP - (Protokol ograničene aplikacije). Koristi UDP. Dizajniran posebno za IoT, koristi model zahtjev-odgovor kao u HTTP-u. RFC 7252.
U ovome č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, u retrospektivi, u ranim godinama Interneta, HTTP protokol koji će postati dominantan bio je samo jedan od mnogih protokola.
Iako HTTP izvorno nije zamišljen za prijenos datoteka i e-pošte, danas se koristi za oboje.
Očekujem da će se ista stvar dogoditi s protokolima za razmjenu poruka u IoT-u: većina će usluga koristiti jedan prevladavajući protokol.
Ispod se nalaze grafikoni Google trendova koji pokazuju kako se popularnost MQTT-a, COAP-a i AMQP-a promijenila u posljednjih nekoliko godina.
Najviše promjena je na razini kanala (razine 1 i 2) i aplikacijske razine (razina 4).
Mrežni i transportni slojevi vjerojatno će ostati nepromijenjeni.
Na aplikacijskom sloju, IoT komponente će koristiti protokole za razmjenu poruka. Iako smo još uvijek u ranoj fazi razvoja IoT-a, vjerojatno će se istaknuti jedan ili možda dva protokola za razmjenu poruka.
Tijekom proteklih nekoliko godina MQTT je postao najpopularniji i 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.