notes-ing2/iot/02_standards.md
2024-03-11 13:06:55 +01:00

2.7 KiB

Standards

Introduction

MQTT

Message Queue Telemetry Transport Protocole de transmission de télémesure en machine-to-machine léger. Basé sur des files d'attentes avec un API basé sur le patron de Notification.

Commande Notification

  • créée en 1999 par IBM et Eurotech.
  • adopté par OASIS (version actuelle 5.0)

Exemple

   +----------+
   | Client A |-.
   +----------+ |               +---------------+
                |               | Application X |
   +----------+ `>+--------+<==>+---------------+
   | Client B |-->| Broker |
   +----------+ .>+--------+<==>+---------------+
                |            \  | Application Y |
   +----------+ |             \ +---------------+
   | Client C |-'              \__ abonnement / notification IP
   +----------+  \__ messages
  • n Clients (STM32, Aruino, Rapberry Pi)
  • 1 Broker (en ligne, serveur)
  • m Appilications (PC, Smartphone)

Modèles

Topic

  • Des queues parallèlles de messages.
  • Permet aux clients d'échanger des informations d'une sémantique spécifique.

Session

  • Une session qui identifie l'ensemble des topics et la séquence des messages reçus.
  • Toutes les communications client / serveur se feront par sessions.

Subscriptions

  • Contrairement aux sessions, un abonnement attache un client à un topic.
   clients                            applications

+-----------+      +- broker -+      +------------+
|           |      |          +--1-->|            |
| publisher +--1-->| topic 1  |      | subscriber |
|           |      |          +--4-->|            |
+-----------+      | topic 2  |      +------------+
                   |          |
+-----------+      | topic 3  |      +------------+
|           +--1-->|          |      |            |
| publisher |      | topic 4  +--4-->| subscriber |
|           +--2-->|          |  ^\  |            |
+-----------+  ^\  +----------+    \ +------------+
                 \                  \_ subscription -> notifications
                  \_ publications

Trame

+----+-+-+-+-----------+---------+-----------+
| 4  |1|2|1|     8     |    C    | remaining |
+----+-+-+-+-----------+---------+-----------+
|Type|D|Q|R| remaining | options |   DATA    |
+----+-+-+-+-----------+---------+-----------+
      ^\^\^\ ^^^^^^^^^\  ^^^^^^^\_ champ d'options
        \ \ \          \_ taille de DATA
         \ \ \_ RETAIN
          \ \__ QoS
           \___ DUPL
  • type
    • 3: publish
    • .: ...
  • DUPL : drapeau signifiant que le message est une duplication
  • QoS : Qualité de service
    • 0: envoyé
    • 2: une reception
    • 3: toute les réceptions

CoAP

Comparaisons

IoT pour la gestion d'appareils : LwM2M