Ahoj, Habráci! startuje v OTUS už v říjnu. Právě teď je otevřen nábor na kurz, a proto s vámi pokračujeme v sdílení užitečných materiálů.

Internet věcí (IoT, Internet of Things) bude vybudován na stávající síťové infrastruktuře, technologiích a protokolech, které jsou momentálně používány v domácnostech/kanzelná a na internetu, a nabídne mnohem více.
Cílem tohoto průvodce je poskytnout stručný přehled síťových a aplikačních protokolů pro IoT.
Poznámka. Musíte mít znalosti .
IoT sítě
IoT bude fungovat v existujících TCP/IP sítích.
TCP/IP používá čtyřúrovňový model s určenými protokoly na každé úrovni. Viz (rozumíme čtyřúrovňovému modelu TCP/IP).
Na diagramu níže je uvedeno srovnání protokolů, které se v současnosti používají, a těch, které pravděpodobně budou použity pro IoT.

Poznámky k diagramu:
Velikost písma zobrazuje úroveň popularity protokolu. Například vlevo je IPv4 větší, protože je mnohem populárnější v současném internetu. Na pravé straně je ale menší, protože se očekává, že IPv6 bude populárnější v IoT.
Některé protokoly nejsou zobrazeny.
Nejvíce změn se očekává na kanálové (úrovně 1 a 2) a aplikační úrovni (úroveň 4).
Síťové a transportní úrovně pravděpodobně zůstanou beze změny.
Protokoly kanálové úrovně
Na kanálové úrovni (Data Link) potřebujete propojit zařízení. Mohou být blízko sebe, například v lokálních sítích (local networks), nebo na velkou vzdálenost od sebe: ve městských (metropolitan area networks) a globálních sítích (wide area networks).
V současnosti se na této úrovni v domácích a kancelářských sítích (LAN) používá Ethernet a Wi-Fi, a v mobilních (WAN) – 3G/4G. Nicméně mnohá IoT zařízení mají nízkou spotřebu energie, například senzory, a napájí se pouze z baterií. V těchto případech Ethernet nevyhovuje, ale lze použít low powered Wi-Fi a low powered Bluetooth.
Ačkoli k připojení těchto zařízení bude stále používána existující bezdrátová technologie (Wi-Fi, Bluetooth, 3G/4G), stojí také za to věnovat pozornost novým technologiím, které byly speciálně navrženy pro IoT aplikace, jejichž popularita pravděpodobně poroste.
Mezi ně patří:
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Podrobnosti jsou uvedeny v článku. (přehled bezdrátových technologií IoT).
Síťová úroveň
Na síťové úrovni (Networking) v dlouhodobém horizontu bude dominovat protokol. Je málo pravděpodobné, že se používání IPv4 udrží, ale může hrát určitou roli v počátečních fázích. Většina domácích IoT zařízení, například chytré žárovky, v současnosti používá IPv4.
Transportní úroveň
Na transportní úrovni (Transport) dominuje TCP jak na internetu, tak ve webu. Používá se jak v HTTP, tak v mnoha jiných oblíbených internetových protokolech (SMTP, POP3, IMAP4 atd.).
MQTT, který očekávám, že se stane jedním z hlavních protokolů aplikační úrovně pro zasílání zpráv, v současnosti používá TCP.
Nicméně v budoucnu očekávám, že díky nižším režijním nákladům bude UDP populárnější pro IoT. Pravidelněji se pravděpodobně rozšíří. , fungující nad UDP. Viz článek o srovnání. .
Aplikační úroveň a protokoly pro zasílání zpráv
Důležité charakteristiky pro protokoly IoT:
Rychlost – množství přenesených dat za sekundu.
Zpoždění – doba potřebná k přenosu zprávy.
Spotřeba energie.
Bezpečnost.
Dostupnost softwarových nástrojů.
V současnosti jsou na této úrovni aktivně využívány dva hlavní protokoly: HTTP a MQTT.
HTTP je pravděpodobně nejznámější protokol této úrovně, ležící v základu webu (WWW). I nadále bude mít důležitý význam pro IoT, neboť se používá pro REST API – hlavní mechanismus interakce webových aplikací a služeb. Nicméně kvůli vysokým režijním nákladům se HTTP pravděpodobně nestane hlavním protokolem IoT, i když bude stále široce používané na internetu.
MQTT (Message Queuing Telemetry Transport) se stal hlavním protokolem pro zasílání zpráv v IoT, díky své lehkosti a jednoduchosti použití. Viz článek. (Úvod do MQTT pro začátečníky).
Srovnání HTTP a MQTT pro IoT
MQTT rychle získává postavení de facto standardu pro IoT aplikace. Děje se tak díky jeho lehkosti a rychlosti ve srovnání s HTTP a tomu, že je to protokol „jeden ke mnoha“, nikoli „jeden k jednomu“ (HTTP).
Mnoho moderních webových aplikací by s radostí využilo MQTT místo HTTP, kdyby byl k dispozici v okamžiku jejich vývoje.
Dobré příklady zahrnují odesílání informací více klientům, například o příjezdech a odjezdech vlaků / autobusů / letadel. V tomto scénáři protokol „jeden k jednomu“, jako je HTTP, má velké režijní náklady a vytváří značnou zátěž na webové servery. Škálování těchto webových serverů může být obtížné. S MQTT se klienti připojují k brokerovi, které lze snadno přidávat pro vyvažování zátěže. Podívejte se na tento tutoriál s videem. a článek .
Další protokoly pro zasílání zpráv
HTTP nebylo navrženo pro IoT aplikace, ale jak již bylo zmíněno, bude široce používáno ještě nějakou dobu díky jeho rozšířenému použití v .
Téměř všechny IoT platformy podporují jak HTTP, tak MQTT.
Existují však i jiné protokoly, které stojí za zvážení.
Protokoly
– (Message Queuing Telemetry Transport). Používá TCP/IP. Pro model „publikátor-odběratel“ je potřeba broker s zprávami.
– (Advanced Message Queuing Protocol). Používá TCP/IP. Modely „publikátor-odběratel“ a „bod-bod“.
– (Constrained Application Protocol). Používá UDP. Bylo navrženo speciálně pro IoT, používá model dotazu-odpovědi jako v HTTP. .
– (Data Distribution Service)
V této se zkoumají hlavní protokoly a jejich aplikace. Závěr tohoto článku je, že IoT bude používat soubor protokolů, v závislosti na jejich zamýšleném použití.
Pokud se však podíváme zpět, v prvních letech existence Internetu byl protokol HTTP, který se stal dominantním, jen jedním z mnoha protokolů.
Ačkoliv HTTP nebylo původně navrženo pro přenos souborů a e-mailu, dnes se používá pro obojí.
Očekávám, že v IoT s protokoly pro zasílání zpráv se stane totéž: většina služeb bude používat jeden převládající protokol.
Níže jsou grafy Google Trends, které ukazují, jak se měnila popularita MQTT, COAP a AMQP v posledních několika letech.
Přehled Google Trends

Podpora protokolů na platformách
– MQTT, AMQP, HTTP a HTTPS
– MQTT, HTTPS, MQTT přes websockets
IBM Bluemix – MQTT, HTTPS, MQTT
– MQTT, HTTPS, MQTT, AMQP
Shrnutí
Nejvíce změn se očekává na kanálové (úrovně 1 a 2) a aplikační úrovni (úroveň 4).
Síťové a transportní úrovně pravděpodobně zůstanou beze změny.
Na aplikační úrovni budou komponenty IoT používat protokoly pro výměnu zpráv. I když jsme stále na začátku vývoje IoT, je velmi pravděpodobné, že se vyčlení jeden nebo možná dva protokoly pro výměnu zpráv.
Během posledních několika let se MQTT stal nejpopulárnějším a na něj se nyní zaměřuji na této stránce.
HTTP také zůstane v používání, protože je již dobře integrován do existujících IoT platforem.
To je vše. Zveme vás, abyste se přihlásili na bezplatnou demo lekci na téma .
Číst víc:
Zdroj: habr.com
