Hallo, Habr-lezers! begint in oktober bij OTUS. De inschrijving voor de cursus is nu geopend, en daarom blijven we nuttige materialen met jullie delen.

Het Internet der Dingen (IoT, Internet of Things) zal worden gebouwd op de bestaande netwerk infrastructuur, technologieën en protocollen die momenteel in huizen/kantoren en op het internet worden gebruikt, en biedt veel meer.
Het doel van deze gids is om een kort overzicht te geven van netwerken en applicatie protocollen voor IoT.
Opmerking. Je moet kennis hebben van .
IoT-netwerken
IoT zal functioneren binnen bestaande TCP/IP-netwerken.
TCP/IP gebruikt een vierlagenmodel met bepaalde protocollen op elk niveau. Zie (begrijp het vierlagenmodel van TCP/IP).
In de onderstaande diagram wordt een vergelijking getoond van de momenteel gebruikte protocollen en de protocollen die waarschijnlijk voor IoT zullen worden gebruikt.

Opmerkingen bij de diagram:
De lettergrootte toont de populariteit van het protocol. Bijvoorbeeld, links is IPv4 groter omdat het veel populairder is in het moderne Internet. Aan de andere kant is het rechts kleiner omdat verwacht wordt dat IPv6 populairder zal zijn in IoT.
Niet alle protocollen zijn weergegeven.
De meeste veranderingen vinden plaats op de datalinklayer (laag 1 en 2) en de applicatielaag (laag 4).
De netwerk- en transportlagen zullen waarschijnlijk onveranderd blijven.
De protocollen van de datalinklaag
Op de datalinklaag moet je apparaten met elkaar verbinden. Ze kunnen dicht bij elkaar zijn, bijvoorbeeld in lokale netwerken, of ver van elkaar verwijderd: in stedelijke en wereldwijde netwerken.
Op dit moment worden op dit niveau Ethernet en Wi-Fi gebruikt in thuis- en kantoornetwerken (LAN), en in mobiele netwerken (WAN) 3G / 4G. Veel IoT-apparaten zijn echter low-power, zoals sensoren, en worden alleen op batterijvoeding aangedreven. In deze gevallen is Ethernet niet geschikt, maar low powered Wi-Fi en low powered Bluetooth kunnen worden gebruikt.
Hoewel bestaande draadloze technologieën (Wi-Fi, Bluetooth, 3G / 4G) nog steeds gebruikt zullen worden voor de verbinding van deze apparaten, is het ook de moeite waard om aandacht te besteden aan nieuwe technologieën die speciaal zijn ontwikkeld voor IoT-toepassingen, waarvan de populariteit naar alle waarschijnlijkheid zal toenemen.
Onder hen:
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Ze worden uitgebreider beschreven in het artikel (overzicht van draadloze IoT-technologieën).
Netwerklaag
Op netwerklaag (Networking) zal op de lange termijn het protocol domineren . Het is onwaarschijnlijk dat IPv4 gebruikt zal worden, maar het kan een bepaalde rol spelen in de beginfase. De meeste slimme apparaten voor thuis, zoals slimme lampen, gebruiken momenteel IPv4.
Transportlaag
Op transportlaag (Transport) domineert TCP op het internet en het web. Het wordt gebruikt in zowel HTTP als veel andere populaire internetprotocollen (SMTP, POP3, IMAP4, enz.).
MQTT, dat ik verwacht dat het een van de belangrijkste applicatieprotocollen voor gegevensuitwisseling zal worden, gebruikt momenteel TCP.
Echter, in de toekomst verwacht ik dat UDP populairder zal worden voor IoT vanwege de lagere overhead. Vermoedelijk zal er meer verbreiding zijn van , dat werkt bovenop UDP. Zie het artikel over de vergelijking .
Applicatielaag en berichtenprotocollen
Belangrijke kenmerken voor IoT-protocollen:
Snelheid — de hoeveelheid verzonden gegevens per seconde.
Vertraging — de tijd die nodig is om een bericht te verzenden.
Verbruikte energie.
Beveiliging.
Beschikbaarheid van softwaretools.
Momenteel worden op dit niveau twee belangrijke protocollen actief gebruikt: HTTP en MQTT.
HTTP is waarschijnlijk het bekendste protocol op dit niveau, dat de basis vormt van het web (WWW). Het zal nog steeds belangrijk zijn voor IoT, omdat het wordt gebruikt voor REST API's — het belangrijkste mechanisme voor interactie tussen webapplicaties en diensten. Echter, door de hoge overhead zal HTTP waarschijnlijk niet het belangrijkste IoT-protocol worden, hoewel het nog steeds veel gebruikt zal worden op het internet.
MQTT (Message Queuing Telemetry Transport) is het belangrijkste berichtenprotocol in IoT geworden, dankzij de lichtheid en het gebruiksgemak. Zie het artikel (Introductie tot MQTT voor beginners).
Vergelijking van HTTP en MQTT voor IoT
MQTT wordt snel de de facto standaard voor IoT-toepassingen. Dit komt door de lichtheid en de snelheid in vergelijking met HTTP, en omdat het een 'one-to-many'-protocol is, in plaats van 'one-to-one' (HTTP).
Veel moderne webapplicaties zouden graag MQTT in plaats van HTTP gebruiken, als het beschikbaar was geweest op het moment van ontwikkeling.
Een goed voorbeeld is het verzenden van informatie naar meerdere klanten, bijvoorbeeld over aankomst en vertrek van treinen / bussen / vliegtuigen. In dit scenario heeft het 'one-to-one'-protocol, zoals HTTP, grote overheadkosten en genereert het een aanzienlijke belasting voor webservers. Het schalen van deze webservers kan problematisch zijn. Met MQTT verbinden klanten zich met een broker, die gemakkelijk kan worden toegevoegd voor load balancing. Bekijk deze tutorial met video. en het artikel .
Andere berichtenprotocollen
HTTP is niet ontworpen voor IoT-toepassingen, maar, zoals eerder vermeld, zal het nog een tijdje veel worden gebruikt vanwege de uitgebreide toepassing in .
Bijna alle IoT-platforms ondersteunen zowel HTTP als MQTT.
Er zijn echter ook andere protocollen die het overwegen waard zijn.
Protocollen
— (Message Queuing Telemetry Transport). Gebruikt TCP/IP. Voor het 'publisher-subscriber'-model is een berichtenbroker vereist.
— (Advanced Message Queuing Protocol). Gebruikt TCP/IP. 'Publisher-subscriber'- en 'point-to-point'-modellen.
— (Constrained Application Protocol). Gebruikt UDP. Speciaal ontwikkeld voor IoT, gebruikt een verzoek-antwoordmodel zoals in HTTP. .
— (Data Distribution Service)
In dit worden de belangrijkste protocollen en hun toepassingen besproken. De conclusie van dit artikel is dat IoT een reeks protocollen zal gebruiken, afhankelijk van hun beoogde toepassing.
Echter, als we terugkijken, was HTTP in de eerste jaren van het bestaan van het internet, dat uiteindelijk dominant werd, slechts een van de vele protocollen.
Hoewel HTTP aanvankelijk niet bedoeld was voor bestandsoverdracht en e-mail, wordt het tegenwoordig voor beide gebruikt.
Ik verwacht dat hetzelfde zal gebeuren in IoT met berichtenprotocollen: de meeste diensten zullen één dominante protocol gebruiken.
Hieronder staan de Google Trends-diagrammen die laten zien hoe de populariteit van MQTT, COAP en AMQP in de afgelopen jaren is veranderd.
Google Trends Overzicht

Ondersteuning van protocollen per platform
— MQTT, AMQP, HTTP en HTTPS
— MQTT, HTTPS, MQTT via websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— MQTT, HTTPS, MQTT, AMQP
Samenvatting
De meeste veranderingen vinden plaats op de datalinklayer (laag 1 en 2) en de applicatielaag (laag 4).
De netwerk- en transportlagen zullen waarschijnlijk onveranderd blijven.
Op toepassingsniveau zullen IoT-componenten gebruikmaken van berichtenprotocollen. Hoewel we nog steeds in een vroeg stadium van de ontwikkeling van IoT zijn, is het goed mogelijk dat er één of misschien twee berichtenprotocollen zullen opduiken.
In de afgelopen jaren is MQTT de populairste geworden, en daar concentreer ik me momenteel op deze site.
HTTP zal ook nog steeds worden gebruikt, aangezien het al goed is geïntegreerd in bestaande IoT-platforms.
Dat is alles. We nodigen je uit om je in te schrijven voor een gratis demo les over het onderwerp .
Lees meer:
Bron: habr.com
