Bonjour, habitants de Habr ! Les inscriptions pour le cours sont ouvertes, c'est pourquoi nous continuons à partager avec vous des matériaux utiles.

L'Internet des objets (IoT, Internet des objets) sera construit sur la base de l'infrastructure réseau existante, des technologies et des protocoles utilisés actuellement dans les maisons/bureaux et sur Internet, et proposera beaucoup d'autres choses.
L'objectif de ce guide est de donner un aperçu des protocoles réseau et applicatifs pour IoT.
Remarque : Vous devez avoir des connaissances .
des réseaux IoT
L'IoT fonctionnera sur des réseaux TCP/IP existants.
TCP/IP utilise un modèle à quatre niveaux avec des protocoles spécifiques à chaque niveau. Voir (comprendre le modèle à quatre niveaux TCP/IP).
Le diagramme ci-dessous montre une comparaison des protocoles actuellement utilisés et de ceux qui seront probablement utilisés pour l'IoT.

Remarques sur le diagramme :
La taille de la police reflète le degré de popularité du protocole. Par exemple, à gauche, IPv4 est plus grand car il est beaucoup plus populaire sur Internet aujourd'hui. Cependant, à droite, il est plus petit, car on s'attend à ce qu'IPv6 soit plus populaire dans l'IoT.
Tous les protocoles ne sont pas affichés.
La plupart des changements se produisent au niveau de liaison (niveaux 1 et 2) et au niveau applicatif (niveau 4).
Les niveaux réseau et transport resteront probablement inchangés.
Les protocoles de niveau de liaison
Au niveau de liaison (Data Link), vous devez connecter les appareils entre eux. Ils peuvent se trouver à proximité, par exemple, dans des réseaux locaux, ou à grande distance les uns des autres : dans des réseaux métropolitains et des réseaux étendus.
Actuellement, les réseaux domestiques et de bureaux utilisent Ethernet et Wi-Fi à ce niveau, tandis que les réseaux mobiles utilisent 3G/4G. Cependant, de nombreux appareils IoT sont à faible consommation, par exemple, les capteurs, et fonctionnent uniquement sur batterie. Dans ces cas, Ethernet n'est pas adapté, mais vous pouvez utiliser du Wi-Fi à faible consommation et du Bluetooth à faible consommation.
Bien que les technologies sans fil existantes (Wi-Fi, Bluetooth, 3G/4G) continueront d'être utilisées pour connecter ces appareils, il convient également de prêter attention aux nouvelles technologies spécialement conçues pour les applications IoT, dont la popularité devrait croître.
Parmi eux :
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Plus de détails sont décrits dans l'article (overview des technologies sans fil IoT).
Niveau réseau
Au niveau réseau (Networking), le protocole qui dominera à long terme sera . Il est peu probable que IPv4 soit utilisé, mais il pourrait jouer un certain rôle dans les premières étapes. La plupart des appareils IoT domestiques, comme les ampoules intelligentes, utilisent actuellement IPv4.
Niveau de transport
Au niveau de transport (Transport), TCP domine sur Internet et le web. Il est utilisé à la fois dans HTTP et dans de nombreux autres protocoles Internet populaires (SMTP, POP3, IMAP4, etc.).
MQTT, qui, je m'attends, deviendra l'un des principaux protocoles de niveau application pour la messagerie, utilise actuellement TCP.
Cependant, à l'avenir, en raison des frais généraux inférieurs, je m'attends à ce que UDP devienne plus populaire pour l'IoT. Il est probable qu'une diffusion plus large soit obtenue par , fonctionnant par-dessus UDP. Voir l'article sur la comparaison .
Niveau application et protocoles de messagerie
Caractéristiques importantes pour les protocoles IoT :
Vitesse — quantité de données transmises par seconde.
Latence — temps nécessaire pour transmettre un message.
Puissance consommée.
Sécurité.
Disponibilité des outils logiciels.
Actuellement, deux protocoles principaux sont fortement utilisés à ce niveau : HTTP et MQTT.
HTTP est probablement le protocole le plus connu de ce niveau, qui sous-tend le web (WWW). Il continuera à être important pour l'IoT car il est utilisé pour les API REST — le mécanisme principal d'interaction entre les applications et services web. Cependant, en raison de ses frais généraux élevés, il est peu probable qu'HTTP devienne le protocole principal de l'IoT, bien qu'il soit encore largement utilisé sur Internet.
MQTT (Message Queuing Telemetry Transport) est devenu le protocole principal de messagerie dans l'IoT, grâce à sa légèreté et sa facilité d'utilisation. Voir l'article (Introduction à MQTT pour les débutants).
Comparaison entre HTTP et MQTT pour l'IoT
MQTT devient rapidement la norme de facto pour les applications IoT. Cela est dû à sa légèreté et sa rapidité par rapport à HTTP ainsi qu'à son caractère « un à plusieurs », contrairement à « un à un » (HTTP).
De nombreuses applications web modernes seraient ravies d'utiliser MQTT à la place d'HTTP si celui-ci avait été disponible au moment de leur développement.
Un bon exemple est l'envoi d'informations à de nombreux clients, par exemple sur les arrivées et départs de trains / bus / avions. Dans ce scénario, un protocole « un-à-un », comme HTTP, a de grandes surcharges et impose une lourde charge aux serveurs web. L'échelle de ces serveurs web peut être difficile à gérer. Avec MQTT, les clients se connectent à un courtier, qui peut facilement être ajouté pour l'équilibrage de charge. Consultez ce tutoriel avec vidéo. et un article. .
Autres protocoles de messagerie
HTTP n'a pas été conçu pour les applications IoT, mais, comme mentionné, il sera largement utilisé pendant un certain temps grâce à sa large adoption dans. .
Presque toutes les plateformes IoT prennent en charge HTTP et MQTT.
Cependant, il existe d'autres protocoles qui méritent d'être examinés.
Protocoles
— (Message Queuing Telemetry Transport). Utilise TCP/IP. Pour le modèle « éditeur-abonné », un courtier de messages est nécessaire.
— (Advanced Message Queuing Protocol). Utilise TCP/IP. Modèles « éditeur-abonné » et « point à point ».
— (Constrained Application Protocol). Utilise UDP. Conçu spécifiquement pour IoT, il utilise un modèle de demande-réponse similaire à HTTP. .
— (Data Distribution Service)
Dans cet article, les principaux protocoles et leurs applications sont examinés. La conclusion de cet article est que l'IOT utilisera une gamme de protocoles, en fonction de leur application prévue.
Cependant, en regardant en arrière, dans les premières années de l'Internet, le protocole HTTP, devenu dominant par la suite, n'était qu'un des nombreux protocoles.
Bien que HTTP n'ait pas été initialement conçu pour le transfert de fichiers et d'emails, il est aujourd'hui utilisé pour les deux.
Je m'attends à ce qu'il en soit de même pour l'IOT avec les protocoles de messagerie : la plupart des services utiliseront un protocole dominant.
Ci-dessous sont des graphiques Google Trends montrant comment la popularité de MQTT, COAP et AMQP a évolué au cours des dernières années.
Aperçu de Google Trends

Support des protocoles par plateforme
— MQTT, AMQP, HTTP et HTTPS
— MQTT, HTTPS, MQTT sur websockets
IBM Bluemix – MQTT, HTTPS, MQTT
— MQTT, HTTPS, MQTT, AMQP
Résumé
La plupart des changements se produisent au niveau de liaison (niveaux 1 et 2) et au niveau applicatif (niveau 4).
Les niveaux réseau et transport resteront probablement inchangés.
Au niveau applicatif, les composants IoT utiliseront des protocoles de messagerie. Bien que nous en soyons encore au stade précoce du développement de l'IoT, il est fort probable qu'un ou deux protocoles de messagerie se démarquent.
Au cours des dernières années, MQTT est devenu le plus populaire, et c'est sur celui-ci que je me concentre actuellement sur ce site.
HTTP continuera également à être utilisé, car il est déjà bien intégré dans les plateformes IoT existantes.
Voilà qui conclut. Nous vous invitons à vous inscrire à un cours de démonstration gratuit sur le thème .
Lire aussi :
Source : habr.com
