Protocoles

Cloud IoT Core accepte deux protocoles de connexion et de communication pour les appareils: MQTT et HTTP. Les appareils communiquent avec Cloud IoT Core via un "pont" (le pont MQTT ou HTTP). Le pont MQTT/HTTP est un composant central de Cloud IoT Core, comme illustré dans la présentation des composants.

Lorsque vous créez un registre d'appareils, vous sélectionnez des protocoles à activer : MQTT, HTTP ou les deux.

  • MQTT est un protocole de publication/abonnement standard fréquemment utilisé et compatible avec les appareils intégrés. Il est également courant dans les interactions entre machines.

  • HTTP est un protocole "sans connexion" : avec le pont HTTP, les appareils ne maintiennent pas de connexion à Cloud IoT Core. Au lieu de cela, ils envoient des requêtes et reçoivent des réponses. Cloud IoT Core n'est compatible qu'avec le protocole HTTP 1.1 (et non 2.0).

Le tableau suivant compare le fonctionnement des deux protocoles dans Cloud IoT Core :

Pont MQTT Pont HTTP
La connexion de l'appareil est maintenue. Sans connexion (requête/réponse)
Connexion TCP en duplex intégral Connexion TCP semi-duplex
JWT est envoyé dans le champ de mot de passe du message CONNECT. JWT est envoyé dans l'en-tête Authorization de la requête HTTP.
Les événements de télémétrie sont transmis à Cloud Pub/Sub Les événements de télémétrie sont transmis à Cloud Pub/Sub
État de la connexion de l'appareil signalé Aucun état de connexion de l'appareil n'est signalé
Les configurations des appareils sont propagées via des abonnements Les configurations de l'appareil doivent être demandées explicitement (via un sondage)
Les appareils sur abonnement reçoivent toujours la configuration la plus récente (qu'elle soit nouvelle ou non). Les appareils peuvent spécifier que seules les configurations plus récentes doivent être reçues
Les configurations d'appareil sont confirmées (accusés de réception) lors de l'utilisation de QoS 1 Pas de ACK explicite pour les configurations d'appareil
L'heure de la dernière pulsation de l'appareil est conservée Aucune donnée pulsation sur l'appareil

Vous pouvez également prendre en compte les fonctionnalités générales suivantes de chaque protocole :

MQTT HTTP
  • Réduction de la bande passante utilisée
  • Latence réduite
  • Débit plus élevé
  • Compatible avec les données binaires brutes
  • Plus léger (prise en main facile ; commandes curl simples)
  • Moins de problèmes de pare-feu
  • Les données binaires doivent être encodées en base64, ce qui nécessite davantage de ressources réseau et de processeur.

Ces deux liaisons utilisent l'authentification par appareil publique (asymétrique) et les jetons Web JSON (JWT). Pour en savoir plus, consultez la section sur la sécurité des appareils.

Conseil : Si vous ne savez pas quel protocole convient le mieux à vos cas d'utilisation, commencez par HTTP pour vous familiariser avec Cloud IoT Core, puis passez à MQTT si nécessaire.