# Etude de protocoles de l'IoT A présent, nous allons identifier et décrire différents protocoles qui représentent de sérieux candidats à l'élaboration de notre projet. Nous pouvons identifier certains protocoles et technologies servant à la comminication sans fil, se couplant avec des protocoles applicatifs. D'autres sont en réalité une pile de protocoles, propriétaires ou non. ## Protocoles & technologies de communication sans fil ### Bluetooth Low Energy (BLE) #### Description générale Lancée à l'origine en 2004, l'adoption de Bluetooth LE est désormais tirée par l'Internet des objets (IoT) en pleine expansion. BLE est attrayant pour les fabricants d'électronique et de machines connectées à IoT en raison de son faible coût, de sa longue durée de vie et de sa facilité de déploiement. #### Fonctionnement ##### Méthode d'accés: - **TDMA** (Time Division Multiple Access) (Communication synchrone) - Utilisé pour synchroniser des appareils et les faire communiquer à un instant bien précis - L'accés à la fréquence radio est subdivisé en unité de temps (**events**) - **FDMA** (Frequency Division Multiple Access) (Communication asynchrone) - Chaque client posséde une fréquence différente pour communiquer avec le serveur #### Pile protocolaire ##### Résumé 2 parties dans la pile protocolaire du bluetooth: - **Controller**: Couches basses du protocole. Gére l'accès au canal radio et les ajustements nécessaire (synchronisation, fréquences et events) - **Host**: Couches hautes. Peut gérer de nombreux protocoles, donc TCP/UDP/IP. Aboutie sur la couche application ##### En détail ###### Controller - **Baseband**: Gére la liaison physique (fréquence radio) entre les équipement bluetooh - **Gestion de liason**: Responsable de l'établissement de la connexion entre les éléments bluetooth. Egalement en charge de la sécurité (authentification, chiffrage, échange et vérification des clés de liaison). Il négocie également la taille des paquets ###### Host - **Controle et adaptation de liens logique (L2CAP)**: Gére le muliplexage, la segmentation et le réassemblage des paquets. Mais également la Quality Of Service - **RFCOMM** : Couche de transport. Notamment utilisé pour émuler des port circuits. Globalement cette couche fait le lien entre des données au format bluetooth avec les protocoles de plus haut niveau pour que ça soit utilisable simplement (par ex avec TCP/IP) - **TCP/UDP/IP**: Peut utiliser les protocoles standarts internet ![](https://i.imgur.com/Gvu2OLb.gif) #### Avantages 1. Capacité de se connecter directement aux téléphones mobiles Par rapport à d'autres technologies, le Bluetooth est déjà compatible avec les téléphones portables et peut être connecté sans configuration supplémentaire. En plus, la vitesse de connexion du signal BLE est rapide et il peut être connecté presque instantanément. 2. Densité d'intégration élevée La puce du microcontrôleur intégré MCU est compacte et peut être utilisée pour développer des capteurs portables. #### Inconvénients 1. Sécurité L’objet avec BLE court le risque de s’exposer à des failles de sécurités telles que le **bluejacking** et le **bluesnarfingLe**. Mais heureusement Bluetooth 4.2 introduit également quelques éléments de sécurité contre les risques de piratage lors des connexions systématiques de dispositifs BLE, comme les lampes intelligentes, à Internet, sans intervention humaine. #### Cas d'utilisation 1. Connexion aux téléphones mobiles Grâce à la connexion efficace du BLE au téléphone (Voir Avantages1). 2. Développement sur des technologies portables Le BLE peut adapter aux technologies portables (Voir Avantages2) telles que les oreillettes pour les communications voix ou aux raccordements d’équipements à un PC. #### Adéquation à notre projet Pour notre projet, le BLE ne convient pas car les informations collectées par les capteurs du parking ne sont pas directement transmises au téléphone mobile mais au serveur du broker, et les capteurs sont des appareils statiques. ### LPWAN avec LoRaWAN #### Description générale **LPWAN** pour Low Power Wide Area Network est un type de réseau sans fil de basse commation énergétique bas débit et longue portée (entre 3 et 50 kilomètres) par ondes radio. Il utilise des bandes fréquences ISM (Industrie, Scientifique et Médical) qui sont à usage libre (une licence n'est pas nécessaire), et partage les ressources avec ses concurents (WiFi, Bluetooth, ZigBee..). La technologie LoRa appartient aux solutions sans fil bas débit tournées uniquement vers l’internet des objets industriels. Elle se distingue par sa réception et son émission à ultra-longue portée (environ 15 km), dont le spectre autorise la couverture de plusieurs millions d’appareils. Cet avantage se double d’une excellente pénétration dans les bâtiments, caves et sous-sols, avec une liaison 5 à 10 dB plus favorable que les réseaux cellulaires, et d’une géolocalisation précise sans recours au GPS. Les échanges réguliers mais de durée très réduite de messages courts (quelques dizaines d’octets) qui caractérisent le protocole LoRa permettent une communication distante et une longue durée de vie des équipements. Ils évitent les collisions radio et les interférences sans augmenter la consommation en électricité des capteurs. Aussi, le coût annuel de l’accès, qui n’intègre plus d’abonnement ou de consommation data, se voit divisé par 10 à 12 en comparaison d’un système M2M associant carte SIM et réseau GSM. #### Fonctionnement ![archi LoRaWAN](https://i.imgur.com/3jlOvLI.png) Le protocole réseau **LoRaWAN** (Long Range Wide-Area Network) correspond à la couche Réseau. Il définit trois typologies de composants : - Classe A : les noeuds de fin de réseau comme les capteurs - Classe B : passerelles - Classe C : serveurs de données LoRaWAN se base sur le protocole nommé LoRaMAC qui définit l'intéraction entre les classes A et B. Il comporte des mécanismes permettant la synchronisation temporelle des noeuds, la gestion d'adaptation de puissance d'emission du noeud et plus encore. Les noeuds (classe A) échangent les données avec les passerelles (classe B) en passant par la modulation LoRa et le protocole LoRaMAC. Les passerelles sont connectées à internet ou sur un réseau privé en 3G, Ethernet, WiFi ou autre. Elles peuvent aussi être connectés aux serveurs applicatifs via des liens réseaux classiques (filaire ou mobile). Identifiées sur 8 octets, elles regroupent les messages et les transfèrent sur le serveur de données (classe C). Les serveurs applicatifs prennent en charge le traitement du protocole LoRaWAN à savoir : l'activation des noeuds, le déchiffrement des données et la transmission vers les applications métier (servant à la gestion des entreprises). ![LoRa System](https://i.imgur.com/Wa98iQP.png) Ce type de réseau a une topologie en étoile car un serveur applicatif est connecté à une multitude de passerelles, elles même connectées à une multitude de terminaux. #### Avantages - Longue portée - Basse consommation énergétique - Transmission simple (adressage basique en pair à pair, pas de routage...) - Intégration facile et immédiate des données collectées dans les systèmes d’information existants - Déploiement rapide (compatibilité étendue de ses passerelles) #### Inconvénients - Faible débits - Messages de taille maximum 242 octets #### Cas d'utilisation La technologie LoRa est reconnue par certains comme l'avenir des objets connectés. Cependant, il existe des cas d'utilisation idéaux comme : - Utilisation avec des capteurs simples qui ne transmettent de l'information que ponctuellement - Tolérance de perte de données (jusqu'à 80%) de temps à autres - Pas de besoin de mettre à jour le micrologiciel de l'appareil en direct - Besoin de déploiement d'une dizaine à plusieurs centaines de noeuds #### Adéquation à notre projet Pour l'utilisation que nous souhaiterions en faire, LoRaWAN n'oberverait que des avantages. En effet, les données échangées seraient faibles et ne nécessiteraient pas un haut débit. Nous pourront l'utiliser pour mettre en place un système de réservation de places de parkings de particuliers, mises à disposition pour un utilisateur choisissant un périmètre autour d'un point géographique où il voudrait se garer. ### WiFi #### Description générale Wi-Fi est le nom d'une technologie de réseau sans fil populaire qui utilise les ondes radio pour fournir des connexions Internet haute vitesse sans fil et des connexions réseau. Wi-Fi est l'expression de marque déposée qui signifie IEEE 802.11x. #### Fonctionnement Les réseaux Wi-Fi n'ont pas de connexion filaire physique entre l'émetteur et le récepteur grâce à la technologie de radiofréquence (RF), une fréquence dans le spectre électromagnétique associée à la propagation des ondes radio. Lorsqu'un courant RF est fourni à une antenne, un champ électromagnétique est créé qui peut alors se propager dans l'espace. La base de tout réseau sans fil est un point d'accès (*Access Point*). La tâche principale de ce dernier est de diffuser un signal sans fil que les ordinateurs peuvent détecter et syntoniser. Pour se connecter à un point d'accès et rejoindre un réseau sans fil, les appareils doivent être équipés d'adaptateurs de réseau sans fil. Le Wi-fi suis la norme IEE 802.11 qui est consituée d'un ensemble de protocoles de liaison de données et de couche physique. ![](https://i.imgur.com/rRNxHQ5.png) **Couche de liaison de données (MAC) :** Responsable du transfert fiable de données. - Accès aux canaux (CSMA/CA) - Adressage - Validation des trames (gestion, données, trames de contrôle) - Détection d'erreurs - Mécanismes de sécurité **Couche physique (PHY) :** - Responsable des échanges physiques. Pour les applications basées sur la norme Wi-Fi, les fonctionnalités suivantes ne sont pas définies et doivent être implémentées par la couche application : - Choix d'un canal RF pour démarrer/joindre un réseau - Choix du réseau à rejoindre - Quand commencer/joindre un réseau ? - Quand s'associer ou se réassocier à un réseau #### Avantages * Possibilité de se connecter sans lien physique concret ce qui permet la communication en mouvement * Possibilité d'ajouter aisément des nouvelles machines au réseau * Coût de mise en place peu élevé * Déjà très largement répandu * Très haut débit * Bonne qualité de signal * Connexion simple et rapide à la passerelle #### Inconvénients * Une passerelle WiFi mal configurée expose le réseau à des failles de sécurité (man in the middle) * Danger des blackspots (zones où le signal n'est pas correct) * Vitesse de transmission des données souvent plus lente que par câble * Couverture réseau limitée à une faible zone autour de la passerelle #### Cas d'utilisation Le Wi-Fi est particulièrement adapté aux applications de domotique, au contexte indoor. #### Adéquation à notre projet Les avantages de ce protocoles nous permetteront de l'utiliser afin de faire communiquer les capteurs et le serveurs. Il nous faudra donc par exemple une carte Wifi intégrée. ### Ethernet #### Description générale En tant que protocole de couche de liaison de données dans la pile TCP/IP, Ethernet décrit comment les périphériques réseau peuvent formater et transmettre des paquets de données afin que d'autres périphériques puissent les reconnaître, recevoir et traiter. Les données transitent par liaison phyisique (cable). Tout appareil accédant à un réseau géographiquement localisé à l'aide d'un câble - c'est-à-dire avec une connexion filaire plutôt que sans fil - utilise Ethernet. Des entreprises aux joueurs, les différents utilisateurs finaux dépendent des avantages de la connectivité Ethernet, y compris la fiabilité et la sécurité. Comparé à la technologie LAN sans fil, Ethernet est généralement moins vulnérable aux perturbations, qu'il s'agisse d'interférences d'ondes radio, de barrières physiques ou de bandes passantes. Il peut également offrir un degré plus élevé de sécurité et de contrôle du réseau que les technologies sans fil, car les appareils doivent se connecter à l'aide d'un câblage physique, ce qui rend l'accès aux données du réseau ou le détournement de bande passante pour les appareils non autorisés difficiles pour des personnes extérieures. #### Fonctionnement L'Institute of Electrical and Electronics Engineers Inc. (IEEE) spécifie dans la famille de normes appelée IEEE 802.3 que le protocole Ethernet touche à la fois la couche 1 - la couche physique - et la couche 2 - la couche de liaison de données - sur le modèle de protocole réseau OSI. Ethernet définit deux unités de transmission : paquet et trame. La trame comprend non seulement la charge utile des données transmises, mais aussi : - les adresses MAC (physical media access control) de l'expéditeur et du destinataire ; - étiquetage du VLAN et informations sur la qualité de service et - des informations de correction d'erreur pour détecter les problèmes de transmission. Chaque trame est enveloppée dans un paquet qui contient plusieurs octets d'information pour établir la connexion et marquer où la trame commence. ![ethernet](https://microchip.wdfiles.com/local--files/ethernet:overview/osi-model.png) #### Avantages * Les débits de transfert sont élevés et le réseau stable * La sécurité est meilleure de part le fait que les machines doivent être physiquement connectées * Contrôle plus aisé du nombre de machines connectées #### Inconvénients * L'utilisation de câbles est contraignante * La maintenance peut être plus difficile à cause du nombre de câbles * Réseau moins flexible, moins facilement modifiable physiquement #### Cas d'utilisation Ce protocole est très utilisé dans les environnements de bureautique, comme par exemple avec les imprimantes distantes. #### Adéquation à notre projet L'utilisation de câbles étant trop contraignante dans le cadre d'un parking connecté, surtout pour des places pouvant être situées chez des particuliers, nous n'utiliserons pas Ethernet. ## Protocoles applicatifs ### MQTT #### Description générale MQTT est un protocole utilisé dans l'IoT. Il utilise le principe de publication/souscription : Plusieurs clients se connectent sur un même serveur (appelé broker) pour soit publier des informations ou s'abonner à leur réception. Il est basé sur la couche TPC/IP (couche 4). Il permet de faire passer n'importe quel type de message: binaire, JSON, xml ... On peut souscrire à des topics qui sont en quelque sortes des chemins d'accés: par exemple si un capteur publie sur le topic /sensor/1/temperature, un autre peut s'abonner à ce topic pour recevoir les infos publiées dessus. On peut utiliser des jokers dans la souscription à un topic : - /sensor/1/# signifie: tous les topics de /sensor/1/ (joker pour plusieurs niveau) - /sensor/+/temperature signifie: les topics /sensor/x/temperature pour tous les x disponibles (joker pour un seul niveau) #### Fonctionnement ##### QoS Le QoS permet de spécifier la fiabilité voulue pour les données. Il y à 3 niveaux, et bien sûr plus le niveau est élevé, plus il est gourmand en ressources et en bande passante. Néanmoins, les clients peuvent spécifier le niveau de QoS maximal qui veulent recevoir. ###### Niveau de QoS - **Unacknowledged Service**: le client envoie simplement une séquence de paquet PUBLISH au broker, et le broker les retransmet une seule fois aux clients abonnés. - Aucune garantie de la réception du message - Pas d'enregistrement par le broker - **Acknowledged Service**: Séquence de paquets PUBLISH et PUBACK entre en client et le broker, puis entre le broker et les clients abonnés - Mécanisme de renvoie de contenue si l'ACK n'est pas reçu à temps - Les clients peuvent donc recevoir plusieurs fois le même paquet - **Assured Service**: 2 paires de paquets envoyés: PUBLICH/PUBREC et PUBREL/PUBCOMP - S'assure que quelque soit le nombre de tentaive, le message ne sera reçu qu'une seule fois ![](https://i.imgur.com/TZ9fuQB.jpg) ##### Type de messages échangés ![](https://i.imgur.com/of2Zdbg.jpg) ##### Deconnexion ###### Déconnexion volontaire En cas de déconnexion volontaire d'un client, ce dernier envoie un message de type DISCONNECT au broker, puis se déconnecte. Ce la permet de se reconnecter facilement en fournissant son identité au broker, pour pouvoir reprendre sa session là où elle en était ###### Deconnexion involontaire (brutale) En cas de deconnexion involontaire, le client n'a pas le temps d'envoyer un message DISCONNECT. Le broker peut alors envoyer aux abonnés un message de type WILL qui permet de donner les "dernières volontés" du client. ##### Format des paquets MQTT On peut faire une capture WireShark pour voir la structure des paquets MQTT Connexion d'un client au broker MQTT: ![](https://i.imgur.com/SluRTYm.png) Acknoledgement de connexion envoyé par le broker ![](https://i.imgur.com/40jAG4C.png) Publication sur un topic et déconnexion d'un client: ![](https://i.imgur.com/fHgITBP.png) #### Avantages 1. **Flexibilité**: basé sur TCP/IP, donc disponible sur toutes les platformes (PC, portable, raspberry, AWS ...) 2. **Persistance**: MQTT inclut une fonction Keep Alive qui garantit que la connexion entre le broker et le client est toujours ouverte et que le broker et le client sont conscients d'être connectés. En d'autres termes, MQTT n'a besoin que d'une poignée de main pour maintenir une connexion continue entre le courtier et le client. 3. **Sécurité**: Possibilité de sécurisation par mot de passe, certificats SSL, ACL ... 4. **Intégrité des données**: - Notion de Quality Of Service (**QoS**): permet à un client de s'assurer que son message a bien été transmis - Message de type **WILL** qui permet d'être notifié de la déconnexion d'un autre client #### Inconvénients 1. **Arborescence**: l'arborescence doit être pensée en amount afin de pouvoir supporter les nouvelles features que l'on veut dévelloper 2. **Perte de performance si activation des certificats SSL**: Il faut au moins un raspberry 2 pour que les performances soient suffisantes. Avec un Arduino, les couches de sécurité sont trop lourdes pour être activées. #### Cas d'utilisation 1. Réseau WAN MQTT est principalement utilisé pour WAN. Parce que dans MQTT, il existe une longue connexion entre le client et le broker, il ne sera pas affecté même dans un environnement NAT. 2. Utilisation des services cloud S'il existe une architecture cloud, il est aussi préférable d'utiliser MQTT. Parce qu'il fait partie des offres de services Azure et Amazon, il possède donc de nombreuses architectures établies qui facilitent l'adaptation aux développeurs actuels. 3. Équipements électroniques nécessitant un contrôle en temps réel Selon l'avantages que MQTT peut maintenir des connexions, il convient mieux aux occasions qui nécessitent un contrôle en temps réel. Le protocole MQTT possède par exemple un bien meilleur débit que LoRaWAN #### Adéquation à notre projet En supposant que notre parking local dispose de 100 places de parking (soit 100 capteurs), tout d'abord, le modèle d'abonnement / distribution de MQTT peut gérer simplement et rapidement la communication entre plusieurs capteurs de parking et les courtiers. De plus, à partir d'une analyse de développement à long terme, afin de promouvoir les parkings intelligents et de les vulgariser dans toute la ville, les réseaux WAN et les services cloud sont essentiels, ce qui est aussi les avantages de MQTT. Par conséquent, nous pensons que MQTT est le protocole d'application le plus approprié pour ce projet. ### CoAP #### Description générale Le protocole pour applications contraintes CoAP (Constrained Application Protocol) est un protocole qui spécifie le mode de fonctionnement des périphériques contraints de faible puissance dans l'Internet des objets IoT. Il est basé sur la couche transport (couche 4). Le protocole sert généralement aux interactions de machine à machine (M2M). #### Fonctionnement CoAP s’appuie sur une approche à deux couches, une couche de messagerie CoAP utilisée afin de traiter la non fiabilité d’UDP ainsi que la nature asynchrone des interactions (4 messages sont définis CON, ACK, NON, RST) et une couche d’interaction sous forme de requête/réponse héritée du protocole HTTP (Requêtes GET, POST, PUT, DELETE et catégories de réponses). #### Avantages 1. La couche de transport réseau du protocole CoAP passe de TCP à UDP sans perdre la fiabilité de TCP, mais en demandant moins de ressource que TCP. 2. Basé sur REST, l'adresse de la ressource du serveur a le même format d'URL que HTTP. Le client dispose également des méthodes POST, GET, PUT et DELETE pour accéder au serveur <!-- , et il simplifie également le protocole HTTP.--> 3. Léger, la longueur minimale COAP est de 4 octets seulement, par rapport qu'un en-tête HTTP est constitué de dizaines d'octets. 4. CoAP à étét construit pour être facilement traduit en HTTP. De plus, un champs déduié dans le header de CoAP sert à indiquer à un proxy de traduire la requête dans un autre protocole (en général HTTP). L'implémentation de cette traduction n'est pas décruite dans la RFC et est laissé à l'avis du dévellopeur. On peut donc très facilement passer d'un protocole à l'autre.<!--Étant donné que CoAP possède des informations de balise intégrées pour aider à comprendre le protocole, il peut prendre en charge la plupart des protocols internets, tels que la compatibilité avec HTTP. ///////////// Vraiment ? Je ne suis pas sur dutout !! On peut construire facilement des passerelle coap-http, mais il ne le supporte pas nativement //////////////////--> 5. Prend en charge la multidiffusion et le broadcast, c’est-à-dire qu’il peut envoyer des demandes à plusieurs appareils en même temps. 6. Communication de connexion non longue, adaptée aux scénarios IoT à faible consommation. #### Inconvénients 1. La configuration du réseau devient compliquée dans un environnement NAT. Pour ce faire, il a besoin de la technique de ***Tunnelling*** ou ***Port forwarding***. 2. A cause de UDP, on ne peut pas faire ***server push***. Des messages peuvent être reportées après avoir attendu une request du client. #### Cas d'utilisation 1. Réseau LAN D'abord, à cause du problème de NAT, CoAP est plus approprié dans un réseau local. Et en plus, comme UDP permet la diffusion et la multidiffusion, nous pouvons potentiellement transmettre à plusieurs hôtes avec moins de bande passante, ce qui est utile dans certains environnements à ressources limitées. 2. Besoin d'une bonne compatibilité avec HTTP Si vous avez un système existant basé sur des services Web, CoAP est un bon choix. #### Adéquation à notre projet Etant donné que CoAP est compatible avec HTTP, il faciliterait notre développement Web. Cependant, CoAP ne fonctionne que dans un environnement LAN. Par rapport à MQTT avec une couverture plus large et le support de la technologie cloud solide et des modules existant, CoAP n'est pas adapté à notre projet par rapport à MQTT avec une couverture plus large et une technologie cloud solide et un support de module existant. ## Autres types de protocoles ### NB-IoT #### Description générale NB-IoT (Narrowband IoT) est un **nouveau standard de communication** de Low Power Wide Area Network (LPWAN) spécialement conçu pour l’Internet des objets (Internet Of Things). Cette technologie NB-IoT standardisée par le 3GPP (3rd Generation Partnership Project), le groupement de normalisation des télécoms mobiles, est destinée aux objets connectés qui communiquent peu et qui n’ont souvent pas accès à une source d’énergie électrique pour les alimenter. #### Fonctionnement Il peut fonctionner de trois manières différentes: ![image alt](https://blog.integral-system.fr/wp-content/uploads/2018/11/NBIoT-Fig-3.png) - Sur la bande de fréquence 200 kHz anciennement le réseau GSM qui est peu utilisé aujourd’hui et laisse donc potentiellement la place. - Avec le réseau LTE qui réserve des ressources pour NB-IoT - Au sein d’un réseau indépendant Le Nb-IoT s’appuie sur les réseaux 4G existants, dont il hérite des mécanismes largement éprouvés, tels que d’une part la sécurité des communications et des équipements (entre autre grâce à la carte SIM), et d’autre part la possibilité de mobilité internationale (grâce à l’itinérance, aussi appelé « roaming »). S’appuyant sur les infrastructures existantes du réseau mobile déjà en place, comme les stations relais et les réseaux de transmission capillaire disséminés sur tout le territoire français, le Nb-IoT bénéficie de l’étendue de la couverture 4G existante. #### Avantages 1. Cette solution de communication, basée sur un **spectre radio licencié**, dont l’opérateur mobile a un usage exclusif, permet d’offrir une qualité de service optimale. 2. Avec une couverture radio étendue, le Nb-IoT, en s’appuyant sur la 4G, bénéficie des infrastructures existantes 3. Densité d'accès plus élevée Il contient des milliards de connexions dans chaque porté de la station de base. 4. Offrant une **communication bidirectionnelle** entre un objet connecté et un serveur, le Nb-IoT permet avec un débit d’environ 150 kbps, de pouvoir transmettre des informations régulièrement sans limite d'usage. #### Inconvénients 1. Problème de l'itinérance NB-IoT ne prend actuellement pas en charge l'itinérance 2. NB-IoT a certaines exigences pour les appareils. Vous devez d'abord obtenir l'approbation de l'opérateur et à portée de la station de base correspondante, puis il doit y avoir une puce correspondante. #### Cas d'utilisation 1. Si un opérateur prend en charge le protocole NB-IoT Maintenant en France, un premier opérateur, SFR, a lancé son propre réseau NB-IoT au début de l'année 2019. 2. NB-IoT convient mieux aux actifs principalement statiques, comme les compteurs et les capteurs dans un emplacement fixe, plutôt qu'aux actifs itinérants. #### Adéquation à notre projet NB-IoT a certaines exigences sur l'appareil (voir Inconvénients 2), il n'est donc pas adapté à notre projet. ### Zigbee #### Description générale ZigBee est une pile protocolaire haut niveau permettant la communication sans-fil à courte portée et à faible consommation énergétique. En effet, les dispositifs utilisant ZigBee peuvent fonctionner pendant plusieurs années avec simplement une pile de type montre. Il est maintenu par un consortium regroupant des entreprises, des universités et des organismes gouvernementaux connus sous le nom de ZigBee Alliance. #### Fonctionnement Basée sur la communication point-à-point, la pile ZigBee permet l’implémentation d’un réseau personnel de nœuds ZigBee de trois types possibles : - Le coordinateur : il est unique pour un réseau et l'initialise en lui affectant un identifiant PAN. Les coordinateurs sont toujours en mesure d’effectuer le routage de paquets. - Les routeurs : reçoivent et relayent - Les Devices : reçoivent et agissent Trois topologies de réseau sont envisageables : - réseau maillé : Chaque noeud du réseau est connecté en pair à pair avec les autres. Cela a entre autres l'avantage qu'un message envoyé sur un noeud défaillant sera retransmis en utilissant un autre chemin que celui sur lequel la défaillance à été détectée. Ils doivent donc être capables de recevoir, envoyer et relayer des informations. - en étoile : Le coordinateur contrôle les noeuds qui ne communiquent qu'avec lui - en arbre : les routeurs font passer les messages selon un routage hierarchique. Cette topologie permet des réseaux très étendus. Pour mettre en place un dispositif pouvant se connecter à un réseau ZigBee, il faut : - Souscrire à la ZigBee Alliance et donc bénéficier de ses apports technologiques (environ 3 500$) - Soit reprendre un produit développé par l’un des membres de la ZigBee Alliance et disposer de la stack, spécifique à ce produit, développée par le constructeur choisi. - Soit développer sa propre stack à l'aide des spécifications disponibles. Cela représente un travail très important. **Architecture** ![Architecture ZigBee](https://i.imgur.com/2B3zh7K.png) La pile protocolaire ZigBee définie quatre couches (cf. Figure ci-dessus) : - **La couche physique** : (standard IEE 802.15.4) - **La couche MAC** : (standard IEE 802.15.4) - **La couche réseau** : en charge de la communication des noeuds en pair à pair, en utilisant un routage automatique. Elle est également responsable de l'accès au réseau, la sécurisation du routage, la transmission des trames, l'identification des chemins entre les noeuds, la version des types de services applicatifs... Les paquets transitant par cette couche peuvent être envoyés en unicast, broadcast ou multicast. - **La couche application** : comporte quatre éléments : - la sous couche APS (Application Support Sub-Layer) : assure l'interface entre la couche réseau et la couche application. Elle maintient les tables de routage, le transfert des messages entre les appareils reliés, le management des adresses et leur mapping pour la couche réseau, la fragmentation, le ré-assemblage et le multiplexage. - L'AF (Application Framework) : fourni diffférentes API pour les développeurs. Celles-ci disposent d'une adresse sur le noeud comprise en 0 et 255 - le module SSP (Security Service Provider) : fournit aux couches APS et réseau des services de sécurité. - le module ZDO (ZigBee Device Object) qui gère les équipements. #### Avantages - Faible coût - Faible consommation énergétique en comparaison à d'autre solutions sans fil - Grande autonomie - Peut supporter un nombre élevé de noeuds en théorie (jusqu'à 65 000) - Utilisation simple - Standardisé et populaire : beaucoup de ressources disponibles - Peu d'interférence avec les autres systèmes sans fils - Maintien par la ZigBee Alliance - Simplicité de déploiement à l'international : les mêmes fréquences sont utilisées quelque soit le continent - Fiabilité élevée #### Inconvénients - Sécurité faible : transmissions pouvant être interceptées - Faible débit de données (250 Kb/s) - Faible portée : environ 100m - Risque de surcharge de canaux : il utilise la même bande de fréquence que le Wifi 2.4 Ghz - Solution propriétaire : installation coûteuse en temps et/ou en argent #### Cas d'utilisation En raison de sa très faible consommation energétique, on retrouve Zigbee dans des environnements embarqués, où c'est est un critère de sélection. Ainsi, la domotique et les nombreux capteurs et télécommandes qu’elle implémente apprécie particulièrement ce protocole dont la configuration du réseau maillée se fait automatiquement en fonction de l’ajout ou de la suppression de nœuds. On retrouve aussi ZigBee dans les contrôles industriels, les applications médicales, les détecteurs de fumée et d’intrusion ou dans certaines télécommandes de télévision. #### Adéquation à notre projet La solution ZigBee nous paraît tout à fait envisageable dans le cadre de notre projet. En effet, les données que nous allons traiter ne nécessitent pas un débit ou une portée très élevée. En revanche, ZigBee est propriétaire. Sa mise en place est soit trop couteuse, soit trop longue pour un projet de 4 mois. Ainsi, nous décidons de ne pas choisir ZigBee. **Tableau comparatif des différents protocoles** | Technologie |Porté| Vitesse de transfert|Fréquence | Sécurité | | -------- | -------- | -------- |-------- | -------- | -------- | | ZigBee | 10-100m | 250kbps |2.4GHz | Faible | < 65 000 | | LoRaWAN | 1 - 15 km | 1 - 100kbps |400-525/800-925MHz| Faible | -------- | | NB-IoT | 10km | < 250kbps |200kHz | Elevée | | Wifi | 120m | 11 - 54Mbps |2/5GHz | Elevée | | | Ethernet | 100m | 10-10000 Mbit/s | 100 Mhz | Elevée | | BlueTooth LE | >100m | 0.7–2.1 Mbit/s |2.4GHz | Faible | Note : Pour le protocole Ethernet, nous nous bason sur un Ethernet classique utilisant la catégorie de câbles CAT5e ## Conclusion Grâce à l'analyse des besoins utilisateurs et à l'étude des cas d'utilisations et adéquation au projet des différents protocoles, nous avons pris une décision quant à la suite du projet. Ainsi, nous utiliserons MQTT et le WiFi dans un premier temps. Puis, si nous le pouvons (contraintes de temps et de matériel), nous utiliserons LoRaWAN pour permettre la réservation de places de parkings privées également.