ProHoster > Blog > Uprava > Pregled omrežnih in sporočilnih protokolov za IoT
Pregled omrežnih in sporočilnih protokolov za IoT
Pozdravljeni, Khabrovci! Prvi ruski spletni tečaj IoT razvijalec lansira v OTUS oktobra. Vpis na tečaj je že odprt, v zvezi s čimer še naprej z vami delimo koristne materiale.
Internet stvari (IoT, Internet of Things) bo zgrajen nad obstoječo omrežno infrastrukturo, tehnologijami in protokoli, ki se trenutno uporabljajo v domovih/pisarnah in internetu, in bo ponujal veliko več.
Namen tega vodnika je zagotoviti kratek pregled omrežnih in aplikacijskih protokolov za IoT.
TCP/IP uporablja štiriplastni model s posebnimi protokoli na vsaki plasti. Cm. razumevanje 4-plastnega modela TCP/IP (razumemo štirislojni model TCP/IP).
Spodnji diagram prikazuje primerjavo protokolov, ki so trenutno v uporabi, in tistih, ki bodo najverjetneje uporabljeni za IoT.
Opombe na grafikonu:
Velikost pisave kaže na priljubljenost protokola. Na primer, na levi je IPv4 večji, saj je veliko bolj priljubljen v sodobnem internetu. Vendar pa je manjši na desni, saj naj bi bil IPv6 bolj priljubljen v IoT.
Vsi protokoli niso prikazani.
Največ sprememb je na nivoju kanala (1. in 2. nivo) in aplikacijskem (4. nivo).
Omrežna in transportna plast bosta verjetno ostala nespremenjena.
Protokoli sloja povezav
Na ravni podatkovne povezave (Data Link) morate med seboj povezati naprave. Lahko so blizu, na primer v lokalnih omrežjih (lokalna omrežja) in na veliki razdalji drug od drugega: v mestnih (metropolitanskih omrežjih) in globalnih omrežjih (široka omrežja).
Trenutno na tej ravni domača in pisarniška omrežja (LAN) uporabljajo Ethernet in Wi-Fi, mobilna (WAN) pa 3G / 4G. Vendar pa je veliko naprav IoT nizke porabe energije, kot so senzorji, in se napajajo le iz baterij. V teh primerih Ethernet ni primeren, lahko pa uporabite Wi-Fi z nizko porabo energije in Bluetooth z nizko porabo energije.
Medtem ko se bodo obstoječe brezžične tehnologije (Wi-Fi, Bluetooth, 3G/4G) še naprej uporabljale za povezovanje teh naprav, je vredno pogledati tudi nove tehnologije, posebej zasnovane za aplikacije IoT, ki bodo verjetno postajale vse bolj priljubljene.
Na omrežni plasti (Networking) bo dolgoročno prevladoval protokol IPv6. Malo verjetno je, da bo IPv4 uporabljen, vendar lahko igra vlogo v zgodnjih fazah. Večina domačih IoT naprav, kot so pametne žarnice, trenutno uporablja IPv4.
Transportna plast
Na transportni ravni (Transport) v internetu in spletu prevladuje TCP. Uporablja se v HTTP in številnih drugih priljubljenih internetnih protokolih (SMTP, POP3, IMAP4 itd.).
MQTT, za katerega pričakujem, da bo postal eden glavnih protokolov aplikacijskega sloja za sporočanje, trenutno uporablja TCP.
Vendar pričakujem, da bo UDP v prihodnosti zaradi nižjih režijskih stroškov postal bolj priljubljen za IoT. Verjetno bolj razširjeno MQTT-SN, ki deluje prek UDP. Glej primerjalni članek TCP proti UDP .
Aplikacijska plast in protokoli za sporočanje
Pomembne značilnosti za IoT protokole:
Hitrost - količina prenesenih podatkov na sekundo.
Zakasnitev je čas, potreben za pošiljanje sporočila.
Poraba energije
Varnost.
Razpoložljivost programske opreme.
Trenutno se na tej ravni aktivno uporabljata dva glavna protokola: HTTP in MQTT.
HTTP je verjetno najbolj znan protokol te ravni, ki je osnova spleta (WWW). Še naprej bo pomemben za IoT, saj se uporablja za REST API – glavni mehanizem za interakcijo med spletnimi aplikacijami in storitvami. Vendar zaradi visokih stroškov HTTP verjetno ne bo postal glavni protokol IoT, čeprav se bo še vedno pogosto uporabljal na internetu.
MQTT (Message Queuing Telemetry Transport) je zaradi svoje lahkosti in enostavne uporabe postal glavni protokol za sporočanje v IoT. Glej članek Uvod v MQTT za začetnike (Uvod v MQTT za začetnike).
Primerjava HTTP in MQTT za IoT
MQTT hitro postaja de facto standard za aplikacije IoT. To je posledica njegove lahkotnosti in hitrosti v primerjavi s HTTP ter dejstva, da je protokol ena proti mnogo in ne ena proti ena (HTTP).
Številne sodobne spletne aplikacije bi z veseljem uporabljale MQTT namesto HTTP, če bi bil na voljo v času njihovega razvoja.
Dober primer je pošiljanje informacij več strankam, kot so prihodi in odhodi vlakov/avtobusov/letal. V tem scenariju ima protokol ena proti ena, kot je HTTP, veliko dodatnih stroškov in močno obremeni spletne strežnike. Skaliranje teh spletnih strežnikov je lahko težavno. Z MQTT se stranke povežejo s posrednikom, ki ga je mogoče enostavno dodati za uravnoteženje obremenitve. Oglejte si video vadnico o tem Ponovna objava podatkov HTML prek MQTT (primer prihodov letov) in članek MQTT proti HTTP za IOT.
Drugi protokoli za sporočanje
HTTP ni bil zasnovan za aplikacije IoT, a kot že omenjeno, se bo še nekaj časa široko uporabljal zaradi široke uporabe v API.
Skoraj vse platforme IoT podpirajo tako HTTP kot MQTT.
Vendar pa obstajajo še drugi protokoli, ki jih je vredno upoštevati.
Protokoli
MQTT - (Transport telemetrije s čakalno vrsto sporočil). Uporablja TCP/IP. Model objave in naročanja zahteva posrednika sporočil.
AMQP - (Advanced Message Queuing Protocol). Uporablja TCP/IP. Modeli založnik-naročnik in od točke do točke.
COAP - (Protokol omejene aplikacije). Uporablja UDP. Zasnovan posebej za IoT, uporablja model zahteva-odgovor kot v HTTP. RFC 7252.
V tem članek obravnavajo se glavni protokoli in njihove aplikacije. Zaključek tega članka je, da bo IoT uporabljal niz protokolov, odvisno od njihove predvidene uporabe.
Vendar pa je v retrospektivi, v zgodnjih letih interneta, protokol HTTP, ki je postal prevladujoč, le eden od mnogih protokolov.
Čeprav HTTP prvotno ni bil zasnovan za prenos datotek in elektronske pošte, se danes uporablja za oboje.
Pričakujem, da se bo isto zgodilo s protokoli za sporočanje v IoT: večina storitev bo uporabljala en prevladujoč protokol.
Spodaj so grafikoni Google Trends, ki prikazujejo, kako se je priljubljenost MQTT, COAP in AMQP spremenila v zadnjih nekaj letih.
Največ sprememb je na nivoju kanala (1. in 2. nivo) in aplikacijskem (4. nivo).
Omrežna in transportna plast bosta verjetno ostala nespremenjena.
Na aplikacijski ravni bodo komponente IoT uporabljale protokole za sporočanje. Čeprav smo še vedno na zgodnji stopnji razvoja IoT, je verjetno, da bosta izstopala eden ali morda dva protokola za sporočanje.
V zadnjih nekaj letih je MQTT postal najbolj priljubljen in nanj se zdaj osredotočam na tej strani.
Tudi HTTP se bo še naprej uporabljal, saj je že dobro vgrajen v obstoječe platforme IoT.