Yleiskatsaus IoT:n verkko- ja viestintäprotokolliin
Hei Khabrovites! Venäjän ensimmäinen verkkokurssi IoT-kehittäjä käynnistyy OTUSissa lokakuussa. Ilmoittautuminen kurssille on nyt auki, minkä yhteydessä jatkamme hyödyllisten materiaalien jakamista kanssasi.
Esineiden internet (IoT, Internet of Things) rakennetaan nykyisen kodeissa/toimistoissa ja Internetissä käytettävän verkkoinfrastruktuurin, teknologioiden ja protokollien päälle, ja se tarjoaa paljon enemmän.
Tämän oppaan tarkoituksena on antaa lyhyt yleiskatsaus IoT:n verkko- ja sovellusprotokolliin.
TCP/IP käyttää nelikerroksista mallia, jossa kullakin tasolla on erityisprotokollat. cm. TCP/IP 4 -kerrosmallin ymmärtäminen (Ymmärrämme TCP / IP:n nelikerroksisen mallin).
Alla oleva kaavio näyttää vertailun tällä hetkellä käytössä olevista protokollista, joita todennäköisimmin käytetään IoT:ssä.
Kaavion muistiinpanot:
Fonttikoko ilmaisee protokollan suosion. Esimerkiksi vasemmalla IPv4 on suurempi, koska se on paljon suositumpi nykyaikaisessa Internetissä. Se on kuitenkin pienempi oikealla, koska IPv6:n odotetaan olevan suositumpi IoT:ssä.
Kaikkia protokollia ei näytetä.
Suurin osa kaikista muutoksista on kanavalla (tasot 1 ja 2) ja sovellustasoilla (taso 4).
Verkko- ja kuljetuskerrokset pysyvät todennäköisesti ennallaan.
Linkkikerroksen protokollat
Datalinkkitasolla (Data Link) sinun on yhdistettävä laitteet toisiinsa. Ne voivat olla sekä lähellä, esimerkiksi paikallisissa verkoissa (paikallisverkot) että suurella etäisyydellä toisistaan: kaupungeissa (pääkaupunkiseutuverkot) ja globaaleissa verkoissa (laajaverkot).
Tällä hetkellä koti- ja toimistoverkot (LAN) käyttävät Ethernet- ja Wi-Fi-yhteyttä ja mobiiliverkot (WAN) käyttävät 3G/4G-yhteyttä. Monet IoT-laitteet, kuten anturit, ovat kuitenkin vähätehoisia, ja ne saavat virtaa vain paristoista. Näissä tapauksissa Ethernet ei sovellu, mutta pienitehoista Wi-Fi-yhteyttä ja pienitehoista Bluetoothia voidaan käyttää.
Vaikka olemassa olevia langattomia teknologioita (Wi-Fi, Bluetooth, 3G/4G) käytetään jatkossakin näiden laitteiden yhdistämiseen, kannattaa myös tutustua uusiin, erityisesti IoT-sovelluksiin suunniteltuihin teknologioihin, joiden suosio todennäköisesti kasvaa.
Verkkokerroksessa (Networking) protokolla hallitsee pitkällä aikavälillä IPv6. IPv4:n käyttö on epätodennäköistä, mutta sillä voi olla merkitystä alkuvaiheessa. Useimmat kodin IoT-laitteet, kuten älykkäät hehkulamput, käyttävät tällä hetkellä IPv4:ää.
Kuljetuskerros
Kuljetuskerroksessa (Transport) Internetiä ja verkkoa hallitsevat TCP. Sitä käytetään sekä HTTP:ssä että monissa muissa suosituissa Internet-protokollissa (SMTP, POP3, IMAP4 jne.).
MQTT, josta odotan tulevan yhdeksi tärkeimmistä sovelluskerroksen protokollista viestien välittämiseen, käyttää tällä hetkellä TCP:tä.
Odotan kuitenkin, että tulevaisuudessa UDP:n suosio kasvaa IoT:ssä alhaisempien yleiskustannusten takia. Todennäköisesti yleisempää MQTT-SN, toimii UDP:n yli. Katso vertailuartikkeli TCP vs. UDP .
Sovelluskerros ja viestintäprotokollat
IoT-protokollien tärkeitä ominaisuuksia:
Nopeus - siirretyn tiedon määrä sekunnissa.
Latenssi on aika, joka kuluu viestin lähettämiseen.
Virrankulutus
Turvallisuus.
Ohjelmiston saatavuus.
Tällä hetkellä tällä tasolla käytetään aktiivisesti kahta pääprotokollaa: HTTP ja MQTT.
HTTP on luultavasti tunnetuin tämän tason protokolla verkon (WWW) taustalla. Se on jatkossakin tärkeä IoT:lle, koska sitä käytetään REST API:ssa, joka on tärkein verkkosovellusten ja -palveluiden välisen vuorovaikutuksen mekanismi. Suuren ylikuormituksen vuoksi HTTP:stä ei kuitenkaan todennäköisesti tule IoT:n pääprotokollaa, vaikka sitä käytetään edelleen laajasti Internetissä.
MQTT:stä (Message Queuing Telemetry Transport) on tullut IoT:n tärkein viestintäprotokolla sen keveyden ja helppokäyttöisyyden ansiosta. Katso artikkeli Johdatus MQTT:hen aloittelijoille (Johdatus MQTT:hen aloittelijoille).
HTTP:n ja MQTT:n vertailu IoT:lle
MQTT:stä on nopeasti tulossa IoT-sovellusten tosiasiallinen standardi. Tämä johtuu sen keveydestä ja nopeudesta verrattuna HTTP:hen sekä siitä, että se on yksi-moneen-protokolla eikä yksi-yhteen (HTTP).
Monet nykyaikaiset verkkosovellukset käyttäisivät mielellään MQTT:tä HTTP:n sijaan, jos se olisi saatavilla niiden kehityshetkellä.
Hyvä esimerkki on tietojen lähettäminen useille asiakkaille, kuten junien/linja-autojen/lentokoneiden saapumis- ja lähtötiedot. Tässä skenaariossa yksi-yhteen-protokollalla, kuten HTTP:llä, on paljon yleiskustannuksia ja se kuormittaa paljon verkkopalvelimia. Näiden verkkopalvelimien skaalaaminen voi olla vaikeaa. MQTT:n avulla asiakkaat muodostavat yhteyden välittäjään, joka voidaan helposti lisätä kuormituksen tasapainotusta varten. Katso siitä opetusvideo Julkaise HTML-tiedot uudelleen MQTT:n kautta (esimerkki lentojen saapumisesta) ja artikkeli MQTT vs HTTP IOT:lle.
Muut viestintäprotokollat
HTTP:tä ei ole suunniteltu IoT-sovelluksiin, mutta kuten mainittiin, se tulee olemaan laajalti käytössä jonkin aikaa johtuen sen laajasta käytöstä API.
Lähes kaikki IoT-alustat tukevat sekä HTTP:tä että MQTT:tä.
On kuitenkin muitakin harkitsemisen arvoisia protokollia.
Pöytäkirjat
MQTT - (Message Queuing Telemetry Transport). Käyttää TCP/IP:tä. Julkaise-tilaa -malli vaatii viestinvälittäjän.
AMQP - (Advanced Message Queuing Protocol). Käyttää TCP/IP:tä. Julkaisija-tilaaja- ja Point-to-Point-mallit.
COAP - (Constrained Application Protocol). Käyttää UDP:tä. Suunniteltu erityisesti IoT:lle, käyttää pyyntö-vastausmallia kuten HTTP:ssä. RFC 7252.
Tässä статье pääprotokollia ja niiden sovelluksia tarkastellaan. Tämän artikkelin johtopäätös on, että IoT käyttää protokollia niiden käyttötarkoituksen mukaan.
Kuitenkin, jälkikäteen katsottuna, Internetin alkuvuosina hallitsevaksi tullut HTTP-protokolla oli vain yksi monista protokollista.
Vaikka HTTP:tä ei alun perin suunniteltu tiedostojen ja sähköpostien siirtoon, sitä käytetään nykyään molempiin.
Odotan saman tapahtuvan IoT:n viestiprotokollien kanssa: useimmat palvelut käyttävät yhtä hallitsevaa protokollaa.
Alla on Google Trends -kaavioita, jotka osoittavat, kuinka MQTT:n, COAP:n ja AMQP:n suosio on muuttunut muutaman viime vuoden aikana.
Suurin osa kaikista muutoksista on kanavalla (tasot 1 ja 2) ja sovellustasoilla (taso 4).
Verkko- ja kuljetuskerrokset pysyvät todennäköisesti ennallaan.
Sovelluskerroksessa IoT-komponentit käyttävät viestintäprotokollia. Vaikka olemme vielä IoT-kehityksen alkuvaiheessa, on todennäköistä, että yksi tai ehkä kaksi viestinvälitysprotokollaa erottuu joukosta.
Viime vuosien aikana MQTT:stä on tullut suosituin, ja juuri siihen olen nyt keskittynyt tälle sivustolle.
HTTP:n käyttöä jatketaan myös, koska se on jo hyvin sisäänrakennettu olemassa oleviin IoT-alustoihin.