Pascal Thubert, co-chair du groupe de travail dont cet article est le compte-rendu très résumé, a bien voulu en relire le texte et suggérer des améliorations. Les erreurs et imprécisions qui subsistent ne sauraient bien sûr lui être imputées.
Il y a des avalanches d’acronymes plus ou moins effrayants, mais si cela ne vous dit rien il vous suffit de passer à l’alinéa suivant sans vous laisser intimider, en principe c’est compréhensible.
Le thème de la journée du Conseil scientifique de l’Afnic était cette année l’Internet des objets. Il s’agit d’adapter une technologie, conçue au départ pour quelques centaines d’ordinateurs, au raccordement de quelques centaines de milliards d’objets variés.
L’essor de l’Internet, neuf ordres de grandeur (résumé des épisodes précédents)
Lors de la création de l’ancêtre d’Internet, Arpanet, en 1969, le réseau reliait quatre ordinateurs, douze ans plus tard 213. Aujourd’hui l’Internet relie deux ou trois milliards d’appareils plus ou moins puissants, mais le plus petit des smartphones est un ordinateur complet (« Turing-complet » disent les informaticiens) dont le prix est de l’ordre de la centaine d’euros.
Ce qui a permis cet essor prodigieux est le principe end to end, qui met toute la complexité dans les appareils des utilisateurs (votre téléphone), et laisse le cœur du réseau très simple. Ainsi, le réseau peut croître sans modification cruciale de la morphologie de son infrastructure, et de nouvelles applications peuvent apparaître au seul gré de leurs inventeurs, et avec des répercussions pour leurs seuls utilisateurs.
L’Internet des objets (et des animaux)
Il s’agit maintenant de relier à l’Internet des centaines de milliards de capteurs installés dans les autos (obligation réglementaire dès 2015), dans les maisons, sur les machines des usines, sur les ascenseurs, les grues, les machines à laver, les détecteurs de fumée, les animaux domestiques ou sauvages... Certains de ces appareils coûteront quelques centimes d’euros, il faudra qu’ils fonctionnent avec une dépense énergétique très faible, et il sera difficile de mettre à jour le logiciel de capteurs installés dans l’oreille d’un loup ou sur tous les fours à micro-ondes vendus en grande ou petite surface. Comment adapter les techniques du réseau à ce nouvel environnement, ce qui suppose de faire l’inventaire des RFC existantes pour évaluer leur validité dans ce contexte ? C’est l’objet d’un groupe de travail de l’IETF baptisé 6TiSCH, pour IPv6 over the TSCH mode of IEEE 802.15.4e, où TSCH signifie Timeslotted Channel Hopping, un amendement récent à la couche MAC (Medium Access Control) de la norme IEEE802.15.4. Ce groupe est co-présidé par Thomas Watteyne et Pascal Thubert, et ce dernier était présent pour nous exposer l’état du projet. C’est à son exposé (en ligne ici) que j’emprunte ce qui suit, en espérant ne pas trop y déformer ses explications.
Mais ne conviendrait-il pas, avant de faire tout ce travail, de se demander s’il est judicieux de mettre en réseau tous ces objets ? Oui, c’est judicieux, parce que de grands bénéfices en sont attendus : diminution du nombre d’accidents grâce aux communications entre véhicules, remplacement de pièces mécaniques en fonction de leur usure réelle plutôt que selon un planning a priori, prévention de pannes ou de ruptures mécaniques, économies d’énergie, etc. (cf. exposé suivant du séminaire).
L’Internet des objets sera rustique
Il va falloir imaginer des protocoles qui puissent être implantés dans des logiciels parcimonieux en mémoire, en cycles de processeurs et en volume de données échangées. Il faudra que ces capteurs puissent communiquer par des procédés sans fil, ne serait-ce que par l’impossibilité de câbler cette myriade de minuscules appareils, et aussi parce qu’en environnement soumis à des agressions cinétiques, les transmissions sans fil sont plus robustes que les connexions filaires. Il faudra aussi que le réseau fonctionne avec une connaissance partielle de sa topologie, d’une part parce que l’établissement de relations de voisinage avec les centaines ou milliers de capteurs proches prendrait trop de temps et consommerait trop de place en mémoire, et aussi parce que beaucoup de ces appareils se déplacent et changent sans arrêt de voisins. Bref, il va falloir oublier les habitudes, prises depuis quelques années, de communication à haut débit entre des processeurs rapides capables de découvrir l’ensemble du réseau local.
À bien des moments cet exposé m’a rappelé l’époque où je découvrais les réseaux en lisant Tanenbaum, avec les débuts d’Ethernet, et surtout avec les protocoles Aloha (non slotted et slotted !) imaginés à l’Université d’Hawaï en 1970 par Norman Abramson pour relier par des canaux hertziens des campus situés sur des îles différentes. Ainsi, pour la couche MAC, le débat était entre les procédés CSMA-CD (Carrier Sense Multiple Access with Collision Detection utilisé par Ethernet filaire) et CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance utilisé par le WiFi 802.11), mais ces techniques, utilisées seules, ne peuvent pas garantir l’accès au medium à un instant précis, ce qui est nécessaire à un trafic orchestré (notez au passage cette élégante traduction de scheduled, suggérée par Pascal). Une évolution est donc nécessaire afin de répondre à des besoins déterministes, typiques des applications de voix, vidéo mais aussi boucles de contrôle dans le monde industriel.
Pour plus de déterminisme
L’univers envisagé par le groupe 6TiSCH, comme celui de l’accès des téléphones portables à l’antenne de leur cellule xG, est moins prévisible, mais en outre ses usages attendent plus de déterminisme : les conversations téléphoniques supportent mal les interruptions, mais c’est encore plus important dès lors que le réseau doit acheminer les commandes de freinage d’un véhicule ou de réglage de l’action d’une machine. Il faut donc hybrider CSMA (par exemple avec le mode HCCA de 802.11) ou passer à des protocoles plus déterministes, comme TDM (Time Division Multiplexing, ou multiplexage temporel), et assortir la méthode d’accès d’une orchestration (scheduling) des échanges critiques. Une partie du travail de 6TiSCH consiste à améliorer les performances de TDM en optimisant l’utilisation des tranches de temps et en augmentant la diversité des fréquences de transmission afin d’améliorer les taux de réception.
Dans cet univers, une perte de paquet n’est pas plus tolérable qu’un temps d’acheminement non borné. La principale cause de perte de données sur un réseau, ce sont les collisions, il faut donc les éviter, au prix de l’acceptation de temps de latence supérieurs. Pour ce faire, des tranches de temps seront réservées pour les paquets critiques d’une source donnée. Pascal Thubert m’écrit : « les collisions sont dues en Ethernet à un pic de trafic (xmit Q overflow) qui est évité par le scheduling déterministe ; en 6TiSCH le Time Slotted joue le même rôle ; et les collisions sont principalement auto-infligées en sans-fil, dues au multi-chemin (multipath interference) pour une même trame. C’est là que le Channel Hopping, qui amène une diversité fréquentielle dans la transmission A->B, protège le trafic de manière unique et efficace. »
Dans un environnement moins bien connu
De même, les protocoles de routage qui supposent la connaissance de l’état de l’ensemble des liens du réseau, comme OSPF, ne sont pas envisageables, ne serait-ce que parce que chaque nœud ne connaît qu’une partie de ses voisins et ne peut se permettre de maintenir une topologie même partielle (Fisheye en OLSR) du réseau de bout en bout. Il faut donc revenir à des protocoles plus rustiques, en l’occurrence RPL (Routing Protocol for Low power and Lossy Networks), élaboré par l’IETF à cet effet, et qui repose sur un algorithme à vecteur de distances, comme Bellman-Ford (RIP) de notre jeunesse. Chaque nœud du réseau détecte un certain nombre de ses voisins, parmi lesquels il choisit des pères afin de constituer une structure d’information hiérarchique, et tous les nœuds qui se sont détectés mutuellement échangent l’information qu’ils possèdent sur leurs voisins et les chemins qui permettent de les atteindre.
Ces techniques, au cœur du réseau depuis une quarantaine d’années, sont conjuguées par le travail de 6TiSCH avec d’autres, apparues très récemment, comme SDN (Software Defined Networking), qui permet un routage centralisé et de traiter individuellement chaque flot de données.
Il s’agit, on l’aura compris, d’un travail de fond, qui met en cause un grand nombre de RFC existantes, et qui prendra quatre ou cinq ans.