Pregled mrežnih protokola i protokola razmjene poruka za IoT

Pozdrav, Habr-ovci! Prvi online tečaj IoT programera u Rusiji započinje u OTUS-u već u listopadu. Trenutno je otvorena prijava za tečaj, stoga nastavljamo dijeliti korisne materijale s vama.

Pregled mrežnih protokola i protokola razmjene poruka za IoT

Internet stvari (IoT, Internet of Things) bit će izgrađen na postojećoj mrežnoj infrastrukturi, tehnologijama i protokolima koji se trenutno koriste u domovima/uredima i na internetu, te će ponuditi mnogo više.

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

Napomena. Trebate imati znanje osnova mrežnih tehnologija.

IoT mreža

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

TCP/IP koristi četveroslojni model s određenim protokolima na svakom sloju. Vidi understanding the TCP/IP 4 layer model (razumijevanje četveroslojnog TCP/IP modela).

Na dijagramu ispod prikazano je usporedba protokola koji se trenutno koriste i onih koji će se najvjerojatnije koristiti za IoT.

Pregled mrežnih protokola i protokola razmjene poruka za IoT

Napomene uz dijagram:

  1. Veličina fonta prikazuje razinu popularnosti protokola. Na primjer, lijevo IPv4 je veći jer je mnogo popularniji u suvremenom internetu. Međutim, desno je manji, jer će IPv6 vjerojatno biti popularniji u IoT.

  2. Nisu prikazani svi protokoli.

  3. Najveće promjene bit će na razini veze (sloj 1 i 2) i aplikacijskim razinama (sloj 4).

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

Protokoli razine veze

Na razini veze (Data Link) trebate povezati uređaje međusobno. Oni se mogu nalaziti blizu jedni drugih, poput lokalnih mreža, ili na velikoj udaljenosti: u urbanim (metropolitanskim) i globalnim mrežama.

Trenutno se na ovom nivou u kućnim i uredskim mrežama (LAN) koriste Ethernet i Wi-Fi, dok u mobilnim (WAN) — 3G/4G. Međutim, mnogi IoT uređaji su niskoenergetski, poput senzora, i napajaju se isključivo iz baterija. U ovom slučaju Ethernet nije prikladan, ali se može koristiti niskoenergetski Wi-Fi i niskoenergetski Bluetooth.

Iako će se za povezivanje ovih uređaja i dalje koristiti postojeće bežične tehnologije (Wi-Fi, Bluetooth, 3G/4G), vrijedi obratiti pažnju i na nove tehnologije posebno razvijene za IoT aplikacije, čija će popularnost vjerojatno rasti.

Među njima su:

  • BLE – Bluetooth Low Energy

  • LoRaWAN – Long Range WAN

  • SigFox

  • LTE-M

Detaljnije su opisani u članku Pregled bežičnih tehnologija IoT (overview of IoT wireless technologies).

Mrežna razina

Na mrežnom nivou (Networking) dugoročno će dominirati protokol IPv6. Malo je verovatno da će se koristiti IPv4, ali on može igrati određenu ulogu u ranim fazama. Većina IoT uređaja za domaćinstvo, kao što su pametne sijalice, trenutno koristi IPv4.

Transportni nivo 

Na transportnom nivou (Transport) u Internetu i vebu dominira TCP. Koristi se i u HTTP-u kao i u mnogim drugim popularnim internet protokolima (SMTP, POP3, IMAP4 itd.).

MQTT, za koji očekujem da će postati jedan od osnovnih protokola aplikacionog nivoa za razmenu poruka, trenutno koristi TCP.

Međutim, u budućnosti, zbog nižih troškova, očekujem da će UDP postati popularniji za IoT. Verovatno će se širiti MQTT-SN, koji radi preko UDP-a. Pogledajte članak o poređenju TCP vs UDP .

Aplikativni nivo i protokoli za razmenu poruka

Bitne karakteristike za IoT protokole:

  • Brzina — količina prenesenih podataka u sekundi.

  • Kašnjenje — vreme potrebno za prenos poruke.

  • Potrošnja energije.

  • Sigurnost.

  • Dostupnost softverskih alata.

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

HTTP je verovatno najpoznatiji protokol ovog nivoa, koji leži u osnovi veba (WWW). I dalje će biti značajan za IoT, jer se koristi za REST API — osnovni mehanizam interakcije web aplikacija i servisa. Međutim, zbog visokih troškova, HTTP verovatno neće postati glavni protokol za IoT, iako će se i dalje široko koristiti na Internetu.

MQTT (Message Queuing Telemetry Transport) postao je osnovni protokol za razmenu poruka u IoT-u, zahvaljujući svojoj lakoći i jednostavnosti upotrebe. Pogledajte članak Introduction to MQTT for beginners (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 se dešava zbog njegove lakoće i brzine u poređenju sa HTTP-om i zato što je protokol "jedan prema mnogima", a ne "jedan prema jednom" (HTTP).

Mnoga savremena web aplikacija rado bi koristila MQTT umesto HTTP-a da je bio dostupan u trenutku njihove izrade.

Dobar primjer je slanje informacija brojnim klijentima, poput dolaska i odlaska vlakova / autobusa / aviona. U ovom scenariju protokol „jedan-na-jedan“, poput HTTP-a, ima velike troškove i stvara veliku opterećenost na web poslužiteljima. Skaliranje ovih web poslužitelja može biti otežano. S MQTT-om, klijenti se povezuju na posrednika, koji se lako mogu dodavati za ravnotežu opterećenja. Pogledajte ovaj tutorijal s videozapisom. Ponovno objavite HTML podatke preko MQTT-a (Primjer dolaska letova) i članak MQTT nasuprot HTTP-u za IoT.

Drugi protokoli razmjene poruka

HTTP nije razvijen za IoT aplikacije, ali, kao što je već spomenuto, široko će se koristiti neko vrijeme zbog svoje rasprostranjenosti u API.

Gotovo sve IoT platforme podržavaju i HTTP i MQTT.

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

Protokoli

  • MQTT — (Protokol za razmjenu telemetrijskih poruka). Koristi TCP/IP. Za model „izdavač-pretplatnik“ potrebna je brokerska usluga.

  • AMQP — (Protokol za naprednu razmjenu poruka). Koristi TCP/IP. Modeli „izdavač-pretplatnik“ i „točka-točka“.

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

  • DDS — (Usluga raspodjele podataka) 

U ovoj članku se razmatraju osnovni protokoli i njihove primjene. Zaključak ovog članka je da će IoT koristiti set protokola, ovisno o njihovoj namjeni.

Međutim, ako se osvrnemo na prošlost, u prvim godinama postojanja Interneta, protokol HTTP, koji je kasnije postao dominantan, bio je samo jedan od mnogih protokola.

Iako HTTP nije prvotno zamišljen za prijenos datoteka i e-pošte, danas se koristi i za jedno i za drugo.

Očekujem da će u IoT-u s protokolima razmjene poruka doći do slične situacije: većina usluga će koristiti jedan prevladavajući protokol.

U nastavku su grafikon Google Trends, koji prikazuje kako se popularnost MQTT-a, COAP-a i AMQP-a mijenjala tijekom posljednjih nekoliko godina.

Pregled Google Trends 

Pregled mrežnih protokola i protokola razmjene poruka za IoT

Podrška protokola po platformama

  • Microsoft Azure — MQTT, AMQP, HTTP i HTTPS

  • AWS — MQTT, HTTPS, MQTT preko websockets

  • IBM Bluemix – MQTT, HTTPS, MQTT

  • Thingworx — MQTT, HTTPS, MQTT, AMQP

Sažetak

Najveće promjene bit će na razini veze (sloj 1 i 2) i aplikacijskim razinama (sloj 4).

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

Na aplikacijskoj razini, IoT komponente će koristiti protokole za razmjenu poruka. Iako smo još uvijek u ranoj fazi razvoja IoT-a, vrlo je vjerojatno da će se istaknuti jedan ili dva protokola za razmjenu poruka.

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

HTTP će također ostati u upotrebi, budući da je već dobro integriran u postojeće IoT platforme.

Na tome je sve. Pozivamo vas da se prijavite za besplatni demo sat na temu „Chatbot za brze naredbe uređaju“.

Čitajte više:

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster