ProHoster > Blog > podávání > Přehled síťových protokolů a protokolů zasílání zpráv pro IoT
Přehled síťových protokolů a protokolů zasílání zpráv pro IoT
Ahoj, Khabrovite! První ruský online kurz pro vývojáře IoT startuje v OTUS v říjnu. Přihlašování do kurzu je otevřeno právě teď, v souvislosti s tím s vámi nadále sdílíme užitečné materiály.
Internet věcí (IoT, Internet of Things) bude postaven na stávající síťové infrastruktuře, technologiích a protokolech, které se v současnosti používají v domácnostech/kancelářích a na internetu, a nabídne mnohem více.
Účelem této příručky je poskytnout stručný přehled síťových a aplikačních protokolů pro IoT.
TCP/IP používá čtyřvrstvý model se specifickými protokoly na každé vrstvě. Cm. pochopení 4vrstvého modelu TCP/IP (chápeme čtyřvrstvý model TCP/IP).
Níže uvedený diagram ukazuje srovnání aktuálně používaných protokolů a protokolů, které budou nejpravděpodobněji používány pro IoT.
Poznámky ke grafu:
Velikost písma označuje oblíbenost protokolu. Například vlevo je IPv4 větší, protože je mnohem populárnější na moderním internetu. Napravo je však menší, protože se očekává, že IPv6 bude v IoT populárnější.
Nejsou zobrazeny všechny protokoly.
Většina změn je na úrovni kanálu (úroveň 1 a 2) a na úrovni aplikace (úroveň 4).
Síťové a transportní vrstvy pravděpodobně zůstanou nezměněny.
Protokoly spojové vrstvy
Na úrovni datového spoje (Data Link) je potřeba vzájemně propojit zařízení. Mohou být jak blízko, například v lokálních sítích (lokální sítě), tak ve velké vzdálenosti od sebe: v městských (metropolitní sítě) a globálních sítích (rozlehlé sítě).
V současné době na této úrovni domácí a kancelářské sítě (LAN) využívají Ethernet a Wi-Fi a mobilní sítě (WAN) využívají 3G / 4G. Mnoho zařízení IoT má však nízkou spotřebu, jako jsou senzory, a jsou napájeny pouze bateriemi. V těchto případech není Ethernet vhodný, ale lze použít Wi-Fi s nízkou spotřebou a Bluetooth s nízkou spotřebou.
Zatímco stávající bezdrátové technologie (Wi-Fi, Bluetooth, 3G/4G) budou i nadále využívány pro připojení těchto zařízení, stojí za to se také poohlédnout po nových technologiích speciálně navržených pro IoT aplikace, které pravděpodobně porostou v oblibě.
Na síťové vrstvě (Networking) bude protokol dlouhodobě dominovat IPv6. Je nepravděpodobné, že se bude používat IPv4, ale může hrát roli v raných fázích. Většina domácích IoT zařízení, jako jsou chytré žárovky, v současnosti využívá IPv4.
transportní vrstva
Na transportní vrstvě (Transport), Internetu a webu dominuje TCP. Používá se jak v HTTP, tak v mnoha dalších populárních internetových protokolech (SMTP, POP3, IMAP4 atd.).
MQTT, od kterého očekávám, že se stane jedním z hlavních protokolů aplikační vrstvy pro zasílání zpráv, v současnosti používá TCP.
V budoucnu však vzhledem k nižší režii očekávám, že UDP bude pro IoT populárnější. Asi rozšířenější MQTT-SN, běžící přes UDP. Viz srovnávací článek TCP vs UDP .
Aplikační vrstva a protokoly zasílání zpráv
Důležité vlastnosti pro IoT protokoly:
Rychlost - množství přenesených dat za sekundu.
Latence je doba potřebná k odeslání zprávy.
Spotřeba energie.
Security.
Dostupnost softwaru.
V současné době se na této úrovni aktivně používají dva hlavní protokoly: HTTP a MQTT.
HTTP je pravděpodobně nejznámější protokol této úrovně, který je základem webu (WWW). Pro IoT bude i nadále důležitý, protože se používá pro REST API – hlavní mechanismus interakce mezi webovými aplikacemi a službami. Kvůli vysoké režii se však HTTP pravděpodobně nestane hlavním IoT protokolem, i když na internetu bude stále hojně využíván.
MQTT (Message Queuing Telemetry Transport) se stal hlavním protokolem pro zasílání zpráv v IoT díky své lehkosti a snadnému použití. Viz článek Úvod do MQTT pro začátečníky (Úvod do MQTT pro začátečníky).
Srovnání HTTP a MQTT pro IoT
MQTT se rychle stává de facto standardem pro aplikace IoT. To je způsobeno jeho lehkostí a rychlostí ve srovnání s HTTP a skutečností, že se jedná spíše o protokol one-to-many než one-to-one (HTTP).
Mnoho moderních webových aplikací by s radostí používalo MQTT místo HTTP, pokud by byl dostupný v době jejich vývoje.
Dobrým příkladem je zasílání informací více klientům, jako jsou příjezdy a odjezdy vlaků/autobusů/letadel. V tomto scénáři má protokol typu one-to-one, jako je HTTP, velkou režii a hodně zatěžuje webové servery. Škálování těchto webových serverů může být obtížné. Pomocí MQTT se klienti připojují k brokerovi, kterého lze snadno přidat pro vyrovnávání zátěže. Podívejte se na videonávod o tom Znovu publikovat data HTML přes MQTT (Příklad letů) a článek MQTT vs HTTP pro IOT.
Další protokoly zasílání zpráv
HTTP nebyl navržen pro aplikace IoT, ale jak již bylo zmíněno, bude nějakou dobu široce používán díky svému širokému použití v API.
Téměř všechny platformy IoT podporují HTTP i MQTT.
Existují však i další protokoly, které stojí za zvážení.
Protokoly
MQTT - (Přenos telemetrie ve frontě zpráv). Používá TCP/IP. Model publikování-odběr vyžaduje zprostředkovatele zpráv.
AMQP - (Advanced Message Queuing Protocol). Používá TCP/IP. Modely Publisher-Subscriber a Point-to-Point.
COAP - (Constrained Application Protocol). Používá UDP. Navrženo speciálně pro IoT, používá model požadavek-odpověď jako v HTTP. RFC 7252.
V tomhle článek jsou zvažovány hlavní protokoly a jejich aplikace. Závěrem tohoto článku je, že IoT bude využívat sadu protokolů v závislosti na jejich zamýšleném použití.
Avšak zpětně, v prvních letech internetu byl protokol HTTP, který se stal dominantním, pouze jedním z mnoha protokolů.
Ačkoli HTTP nebyl původně koncipován pro přenos souborů a e-mailů, dnes se používá pro obojí.
Očekávám, že totéž se stane s protokoly zasílání zpráv v IoT: většina služeb bude používat jeden převládající protokol.
Níže jsou grafy Google Trends, které ukazují, jak se za posledních několik let změnila popularita MQTT, COAP a AMQP.
Většina změn je na úrovni kanálu (úroveň 1 a 2) a na úrovni aplikace (úroveň 4).
Síťové a transportní vrstvy pravděpodobně zůstanou nezměněny.
Na aplikační vrstvě budou komponenty IoT používat protokoly pro zasílání zpráv. I když jsme stále v rané fázi vývoje IoT, je pravděpodobné, že jeden nebo možná dva protokoly pro zasílání zpráv vyniknou.
Za posledních pár let se MQTT stalo nejoblíbenějším a právě na něj se nyní zaměřuji na tomto webu.
HTTP se bude také nadále používat, protože je již dobře zabudován do stávajících platforem IoT.