Internet Of Things – Routage

Introduction

L’Internet of Thing défini tout ce qui tourne autour des réseaux de capteurs qui remontent des informations à des nœuds de décision qui peuvent à leur tour redescendre à d’autres capteurs des ordres (actions). L’Internet of Thing s’est démocratisé avec l’émergence des solutions de domotique basées sur les technologies sans fil simples à mettre en oeuvre.

D’une part la capillarité du réseau est très importante et l’utilisation du sans fil fait que la topologie est dynamique. D’autre part les capteurs et devices ont des capacités limitées en traitement de l’information (CPU, mémoire, alimentation Electrique). 

Les mécanismes d’échange d’information, de routage et de sécurité doivent être repensés en intégrant ces contraintes là. Nous allons nous intéresser ici au routage de l’information.

Topologie

Dans les réseaux IoT sans fil, deux paramètres importants sont à prendre en compte:

  • La surface à couvrir (entre l’ensemble des capteurs et les nœuds de décision)
  • L’aspect dynamique de la topologie

La distance entre un capteur et un nœud de décision peut être augmentée en utilisant soit une technologie de plus longue portée (débit et  consommation électrique à étudier) soit en utilisant un maillage avec d’autres capteurs (mesh).

mesh

L’aspect dynamique quant à lui est défini par 2 paramètres qui font que la topologie est plus ou moins changeante dans le temps:

  • Sa nature (réseau mesh de téléphones/PC portables incluant des personnes en mouvement, des bornes wifi, des réseaux domotique avec capteurs fixes)
  • Son environnement (perturbations radio extérieures, baisse de portée radio causé par une dégradation de la batterie par exemple, etc.)

L’utilisation d’un protocole de routage dynamique est donc nécessaire.

Routage

Le protocole de routage doit donc être plus ou moins convergeant rapidement et optimisé en terme de consommation CPU (et donc électrique). Il existe plusieurs solutions sur le marché:

  • ZigBee qui utilise le protocole AODV ( protocole réactif)
  • OLSR (protocole proactif) équivalent à OSPF en somme.
  • Z-wave qui n’est pas à proprement parlé dans une topologie “mesh” dans le sens où tous les nœuds participent pas forcement au routage. Z-wave nécessite la création d’un “réseau de backbone” (routeurs slaves, généralement des capteurs/actionneurs branchés sur le secteur).

Z-Wave

Z-Wave est à la fois une spécification radio (fréquences, modulation, etc), un protocole d’échange (format des messages, contrôle du transport par des acquitement et rémission des données) et un protocole de routage.

Au niveau du protocole de routage, sujet qui nous intéresse ici, Il existe 3 types de nœuds dans le protocole Z-wave:

TypeTable de routageActions
ControllerVision complète de la table de routagePeut communiquer avec tous les nœuds du réseau
Routing SlaveVision partiellePeut communiquer avec les noeuds pour lesquels il a une route (les controleurs et autres routing slave)
SlaveAucune
Ne peut communiquer qu'avec un nœud l'ayant sollicité auparavant

Pour envoyer un message, le contrôleur ZWave calcule le chemin jusqu’au capteur en se basant sur la table de routage (qu’il est le seul à avoir complètement). Il inclut ensuite la chaîne dans le message.
Le premier nœud transfert ensuite le message en fonction de cette information embarquée. Il s’agit d’un mécanisme de source-routing (route définie par la source). Contrairement à du destination-routing où la destination est comparée aux tables de routage (forgées par un protocole de routage dynamique comme OSPF ou BGP dans le monde IP) des différents nœuds.

Sur le détail des trames ci-dessous, on peut voir les champs dédiés au routage (Rept#1, etc):

srouting

Sécurité

Il est important de noter que les mécanismes de sécurité sont encore très limités sur ces aspects routages et tout ce qui touche à l’IoT en général, les nœuds étant limités en capacité de traitement (batterie), le chiffrement et  le hachage de données pouvant être consommateur de ressources.

Actuellement aucun mécanisme de sécurité n’existe afin d’assurer l’état convergé et cohérent du réseau.

Bibliographie

http://wiki.zwaveeurope.com/index.php?title=Z-Wave_Network_Layer

http://www.freaklabs.org/index.php/blog/zigbee/zigbee-lightweight-routing-a-la-z-wave.html