Az IoT hálózati és üzenetküldési protokolljainak áttekintése
Sziasztok Habrovszk lakosai! Oroszország első online tanfolyama IoT fejlesztő októberben indul az OTUS-on. A kurzusra való jelentkezés most indul, ezért továbbra is hasznos anyagokat osztunk meg veletek.
A dolgok internete (IoT) a meglévő hálózati infrastruktúrára, az otthonokban/irodákban és az interneten jelenleg használt technológiákra és protokollokra fog épülni, és sokkal többet kínál majd.
Ennek az útmutatónak az a célja, hogy rövid áttekintést nyújtson az IoT hálózati és alkalmazási protokolljairól.
A TCP/IP négyrétegű modellt használ, minden rétegben meghatározott protokollokkal. Cm. a TCP/IP 4 rétegmodell megértése (a négyrétegű TCP/IP modellt értjük).
Az alábbi diagram a jelenleg használt és az IoT-hez legvalószínűbb protokollok összehasonlítását mutatja.
Megjegyzések a diagramhoz:
A betűméret a protokoll népszerűségét tükrözi. Például a bal oldalon több az IPv4, mivel sokkal népszerűbb a modern interneten. A jobb oldalon azonban kisebb, mivel az IPv6 várhatóan népszerűbbé válik az IoT területén.
Nem minden protokoll jelenik meg.
A legtöbb változás a csatorna (1. és 2. szint) és az alkalmazási szinteken (4. szint) történik.
A hálózati és szállítási rétegek valószínűleg változatlanok maradnak.
Linkréteg protokollok
Az adatkapcsolati rétegben eszközöket kell csatlakoztatnia egymáshoz. Elhelyezkedhetnek a közelben, például a helyi hálózatokban, vagy egymástól nagy távolságra: nagyvárosi hálózatokban és nagy kiterjedésű hálózatokban.
Jelenleg ezen a szinten az otthoni és irodai hálózatok (LAN) Ethernetet és Wi-Fi-t, a mobilhálózatok (WAN) pedig 3G/4G-t használnak. Sok IoT-eszköz azonban alacsony fogyasztású, például érzékelők, és csak akkumulátorról táplálkoznak. Ezekben az esetekben az Ethernet nem megfelelő, de alacsony fogyasztású Wi-Fi és alacsony fogyasztású Bluetooth használható.
Bár a meglévő vezeték nélküli technológiákat (Wi-Fi, Bluetooth, 3G/4G) továbbra is használni fogják ezeknek az eszközöknek a csatlakoztatására, érdemes megnézni a kifejezetten az IoT-alkalmazásokhoz tervezett új technológiákat is, amelyek népszerűsége valószínűleg növekedni fog.
Hálózati szinten (Networking) hosszú távon a protokoll dominál IPv6. Nem valószínű, hogy az IPv4-et használni fogják, de a kezdeti szakaszban szerepet játszhat. A legtöbb otthoni IoT-eszköz, például az intelligens izzók jelenleg IPv4-et használnak.
Szállítási réteg
A TCP uralja a szállítási réteget az interneten és a weben. A HTTP-ben és sok más népszerű internetes protokollban is használják (SMTP, POP3, IMAP4 stb.).
Az MQTT, amely várhatóan az egyik fő alkalmazási réteg protokoll lesz az üzenetkezelésben, jelenleg TCP-t használ.
A jövőben azonban az alacsonyabb rezsi miatt arra számítok, hogy az UDP népszerűbb lesz az IoT számára. Valószínűleg egyre elterjedtebb lesz MQTT-SN, amely az UDP tetején fut. Lásd az összehasonlító cikket TCP vs UDP .
Alkalmazási réteg és üzenetküldési protokollok
Az IoT protokollok fontos jellemzői:
Sebesség - a másodpercenként átvitt adatmennyiség.
A késleltetés az üzenet továbbításához szükséges idő.
Teljesítményfelvétel
Biztonság.
A szoftver elérhetősége.
Jelenleg két fő protokollt használnak aktívan ezen a szinten: a HTTP és az MQTT.
A HTTP valószínűleg a legismertebb protokoll ezen a szinten, amely a Web (WWW) hátterében áll. Továbbra is fontos lesz az IoT számára, mert a REST API-khoz használják, amelyek a webalkalmazások és -szolgáltatások interakciójának alapvető mechanizmusa. Magas terhelése miatt azonban nem valószínű, hogy a HTTP lesz az elsődleges IoT-protokoll, bár továbbra is széles körben használják majd az interneten.
Az MQTT (Message Queuing Telemetry Transport) az IoT domináns üzenetkezelési protokolljává vált könnyűsége és egyszerű használhatósága miatt. Lásd a cikket Bevezetés az MQTT-be kezdőknek (Bevezetés az MQTT-be kezdőknek).
A HTTP és az MQTT összehasonlítása az IoT-hez
Az MQTT gyorsan az IoT-alkalmazások de facto szabványává válik. Ez a HTTP-hez képest könnyűségének és sebességének köszönhető, valamint annak, hogy egy-a-többhöz protokollról van szó, nem pedig egy-egy protokollról (HTTP).
Sok modern webalkalmazás boldogan használta volna az MQTT-t a HTTP helyett, ha az elérhető lett volna a fejlesztésük idején.
Jó példa erre az információ küldése több ügyfélnek, például vonat/busz/repülő érkezéséről és indulásáról. Ebben a forgatókönyvben az egy az egyhez protokollnak, például a HTTP-nek magas a többletterhelése, és nagy terhelést jelent a webszerverekre. Ezeknek a webszervereknek a méretezése nehéz lehet. Az MQTT segítségével az ügyfelek egy brókerhez csatlakoznak, amely könnyen hozzáadható a terheléselosztáshoz. Nézze meg ezt az oktatóanyagot videóval HTML-adatok újbóli közzététele az MQTT-n keresztül (repülés érkezési példája) és cikk MQTT vs HTTP az IOT számára.
Egyéb üzenetküldési protokollok
A HTTP-t nem az IoT-alkalmazásokhoz tervezték, de mint már említettük, a széles körben elterjedt alkalmazása miatt még egy ideig széles körben használják. API.
Szinte az összes IoT platform támogatja a HTTP-t és az MQTT-t is.
Vannak azonban más protokollok is, amelyeket érdemes figyelembe venni.
protokollok
MQTT — (Üzenetsoros telemetriai átvitel). TCP/IP-t használ. A kiadó-előfizető modellhez üzenetközvetítőre van szükség.
COAP - (Korlátozott alkalmazási protokoll). UDP-t használ. Kifejezetten az IoT számára készült, és a HTTP-hez hasonló kérés-válasz modellt használ. RFC 7252.
Ebben cikk A fő protokollokat és azok alkalmazását tárgyaljuk. A cikk következtetése az, hogy az IoT a tervezett alkalmazástól függően protokollkészletet fog használni.
Ha azonban visszatekintünk, az internet kezdeti éveiben a HTTP, amely később az uralkodó protokoll lett, csak egy volt a sok protokoll közül.
Bár a HTTP-t eredetileg nem fájlátvitelre vagy e-mailre tervezték, ma már mindkettőre használják.
Ugyanez várható az IoT üzenetküldési protokolljaival: a legtöbb szolgáltatás egyetlen domináns protokollt fog használni.
Az alábbiakban a Google Trends grafikonjai mutatják be, hogyan változott az MQTT, a COAP és az AMQP népszerűsége az elmúlt néhány évben.
A legtöbb változás a csatorna (1. és 2. szint) és az alkalmazási szinteken (4. szint) történik.
A hálózati és szállítási rétegek valószínűleg változatlanok maradnak.
Az alkalmazási rétegben az IoT-komponensek üzenetküldési protokollokat fognak használni. Bár még az IoT fejlesztésének korai szakaszában járunk, valószínű, hogy egy vagy talán két üzenetküldő protokoll fog megjelenni.
Az elmúlt néhány évben az MQTT lett a legnépszerűbb, és jelenleg is erre összpontosítok ezen az oldalon.
A HTTP-t is továbbra is használni fogják, mivel már jól beépült a meglévő IoT-platformokba.