Overzicht van netwerk- en berichtenprotocollen voor IoT

Hallo, Khabrovieten! Ruslands eerste online cursus IoT-ontwikkelaar wordt in oktober gelanceerd in OTUS. De inschrijving voor de cursus is momenteel geopend, in verband waarmee we nuttig materiaal met u blijven delen.

Overzicht van netwerk- en berichtenprotocollen voor IoT

Het Internet of Things (IoT, Internet of Things) zal worden gebouwd bovenop de bestaande netwerkinfrastructuur, technologieën en protocollen die momenteel worden gebruikt in woningen/kantoren en op het internet, en zal nog veel meer bieden.

Het doel van deze handleiding is om een ​​kort overzicht te geven van netwerk- en applicatieprotocollen voor IoT.

Opmerking. Je moet kennis hebben basisprincipes van netwerktechnologieën.

IoT-netwerken

IoT zal draaien op bestaande TCP/IP-netwerken.

TCP/IP maakt gebruik van een vierlagenmodel met specifieke protocollen op elke laag. Cm. inzicht in het TCP/IP 4-lagenmodel (we begrijpen het vierlaags TCP/IP-model).

Het onderstaande diagram toont een vergelijking van de protocollen die momenteel in gebruik zijn en de protocollen die het meest waarschijnlijk voor IoT zullen worden gebruikt.

Overzicht van netwerk- en berichtenprotocollen voor IoT

Opmerkingen over de grafiek:

  1. De lettergrootte weerspiegelt de populariteit van het protocol. Aan de linkerkant is IPv4 bijvoorbeeld groter, omdat het veel populairder is op het moderne internet. Aan de rechterkant is het echter kleiner, omdat verwacht wordt dat IPv6 populairder zal zijn in IoT.

  2. Niet alle protocollen worden getoond.

  3. De meeste veranderingen bevinden zich op kanaal- (niveau 1 en 2) en applicatieniveau (niveau 4).

  4. De netwerk- en transportlagen zullen waarschijnlijk ongewijzigd blijven.

Link Layer-protocollen

Op datalinkniveau (Datalink) moet je apparaten met elkaar verbinden. Ze kunnen zich zowel dichtbij bevinden, bijvoorbeeld in lokale netwerken (lokale netwerken) als op grote afstand van elkaar: in stedelijke (stedelijke netwerken) en mondiale netwerken (Wide Area Networks).

Momenteel gebruiken thuis- en kantoornetwerken (LAN's) op dit niveau Ethernet en Wi-Fi, en mobiele netwerken (WAN's) 3G / 4G. Veel IoT-apparaten hebben echter een laag stroomverbruik, zoals sensoren, en worden alleen gevoed door batterijen. In deze gevallen is Ethernet niet geschikt, maar kunnen Wi-Fi met laag vermogen en Bluetooth met laag vermogen worden gebruikt.

Hoewel bestaande draadloze technologieën (Wi-Fi, Bluetooth, 3G/4G) zullen blijven worden gebruikt om deze apparaten met elkaar te verbinden, is het ook de moeite waard om te kijken naar nieuwe technologieën die specifiek zijn ontworpen voor IoT-toepassingen en die waarschijnlijk in populariteit zullen toenemen.

Gemiddeld niveau:

  • BLE – Bluetooth Lage Energie

  • LoRaWAN - WAN over lange afstand

  • Sig Fox

  • LTE-M

Ze worden in het artikel gedetailleerder beschreven. Een overzicht van draadloze IoT-technologieën (overzicht van draadloze IoT-technologieën).

netwerklaag

Op de netwerklaag (Networking) zal op termijn het protocol domineren IPv6. Het is onwaarschijnlijk dat IPv4 zal worden gebruikt, maar het kan in de beginfase een rol spelen. De meeste IoT-apparaten voor thuis, zoals slimme lampen, gebruiken momenteel IPv4.

transport laag 

Op de transportlaag (Transport) worden internet en internet gedomineerd door TCP. Het wordt gebruikt in zowel HTTP als vele andere populaire internetprotocollen (SMTP, POP3, IMAP4, enz.).

MQTT, waarvan ik verwacht dat het een van de belangrijkste applicatielaagprotocollen voor berichtenuitwisseling zal worden, maakt momenteel gebruik van TCP.

Door de lagere overhead verwacht ik echter dat UDP in de toekomst populairder zal worden voor IoT. Waarschijnlijk meer verspreid MQTT-SN, via UDP. Zie vergelijkingsartikel TCP versus UDP .

Applicatielaag en berichtenprotocollen

Belangrijke kenmerken voor IoT-protocollen:

  • Snelheid - de hoeveelheid gegevens die per seconde wordt overgedragen.

  • Latentie is de tijd die nodig is om een ​​bericht te verzenden.

  • Stroomverbruik.

  • Beveiliging.

  • Beschikbaarheid van software.

Momenteel worden op dit niveau twee hoofdprotocollen actief gebruikt: HTTP en MQTT.

HTTP is waarschijnlijk het meest bekende protocol van deze laag die ten grondslag ligt aan het web (WWW). Het zal belangrijk blijven voor IoT, omdat het wordt gebruikt voor de REST API – het belangrijkste mechanisme voor interactie tussen webapplicaties en services. Vanwege de hoge overhead is het echter onwaarschijnlijk dat HTTP het belangrijkste IoT-protocol zal worden, hoewel het nog steeds op grote schaal op internet zal worden gebruikt.

MQTT (Message Queuing Telemetry Transport) is het belangrijkste berichtenprotocol in het IoT geworden vanwege zijn lichtheid en gebruiksgemak. Zie artikel Inleiding tot MQTT voor beginners (Inleiding 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 snelheid in vergelijking met HTTP en het feit dat het een één-op-veel-protocol is in plaats van één-op-één (HTTP).

Veel moderne webapplicaties zouden graag MQTT gebruiken in plaats van HTTP als dit beschikbaar was ten tijde van hun ontwikkeling.

Een goed voorbeeld is het versturen van informatie naar meerdere klanten, zoals aankomst en vertrek van treinen/bussen/vliegtuigen. In dit scenario heeft een één-op-één-protocol zoals HTTP veel overhead en belast het de webservers. Het schalen van deze webservers kan lastig zijn. Met MQTT maken klanten verbinding met een makelaar, die eenvoudig kan worden toegevoegd voor taakverdeling. Bekijk de video-tutorial hierover HTML-gegevens opnieuw publiceren via MQTT (voorbeeld van vluchtaankomst) en artikel MQTT versus HTTP voor IoT.

Andere berichtprotocollen

HTTP is niet ontworpen voor IoT-toepassingen, maar zal, zoals gezegd, de komende tijd op grote schaal worden gebruikt vanwege het wijdverbreide gebruik ervan in de wereld API.

Bijna alle IoT-platforms ondersteunen zowel HTTP als MQTT.

Er zijn echter nog andere protocollen die het overwegen waard zijn.

Protocollen

  • MQTT - (Berichtenwachtrij telemetrietransport). Maakt gebruik van TCP/IP. Voor het publicatie-abonneermodel is een berichtenmakelaar vereist.

  • AMQP - (Geavanceerd Message Queuing Protocol). Maakt gebruik van TCP/IP. Uitgever-abonnee- en point-to-point-modellen.

  • COAP - (Beperkt toepassingsprotocol). Maakt gebruik van UDP. Specifiek ontworpen voor IoT, maakt gebruik van het request-response-model zoals in HTTP. RFC 7252.

  • DDS - (Gegevensdistributiedienst) 

In deze статье De belangrijkste protocollen en hun toepassingen worden besproken. De conclusie van dit artikel is dat het IoT een reeks protocollen zal gebruiken, afhankelijk van het beoogde gebruik ervan.

Maar achteraf gezien, in de beginjaren van het internet, was het HTTP-protocol dat dominant zou worden slechts een van de vele protocollen.

Hoewel HTTP oorspronkelijk niet bedoeld was voor de overdracht van bestanden en e-mail, wordt het tegenwoordig voor beide gebruikt.

Ik verwacht dat hetzelfde zal gebeuren met berichtenprotocollen in IoT: de meeste diensten zullen één overheersend protocol gebruiken.

Hieronder vindt u Google Trends-grafieken die laten zien hoe de populariteit van MQTT, COAP en AMQP de afgelopen jaren is veranderd.

Overzicht van Google Trends 

Overzicht van netwerk- en berichtenprotocollen voor IoT

Protocolondersteuning per platform

  • Microsoft Azure - MQTT, AMQP, HTTP en HTTPS

  • AWS - MQTT, HTTPS, MQTT via websockets

  • IBM Bluemix - MQTT,HTTPS,MQTT

  • Dingworx — MQTT, HTTPS, MQTT, AMQP

Beknopt

De meeste veranderingen bevinden zich op kanaal- (niveau 1 en 2) en applicatieniveau (niveau 4).

De netwerk- en transportlagen zullen waarschijnlijk ongewijzigd blijven.

Op de applicatielaag zullen IoT-componenten berichtenprotocollen gebruiken. Hoewel we ons nog in een vroeg stadium van de IoT-ontwikkeling bevinden, is het waarschijnlijk dat één of misschien twee berichtenprotocollen zich zullen onderscheiden.

De afgelopen jaren is MQTT het populairst geworden, en daar concentreer ik me nu op deze site.

HTTP zal ook gebruikt blijven worden omdat het al goed is ingebouwd in bestaande IoT-platforms.

Dat is alles. Wij nodigen u uit om u aan te melden voor een gratis demoles over dit onderwerp "Chatbot voor snelle opdrachten naar het apparaat".

Lees verder:

Bron: www.habr.com

Voeg een reactie