{"id":4751,"date":"2026-10-01T14:32:37","date_gmt":"2026-10-01T12:32:37","guid":{"rendered":"https:\/\/sophie-matthieu.eu\/?p=4751"},"modified":"2026-10-01T14:32:37","modified_gmt":"2026-10-01T12:32:37","slug":"orion-dtn-le-reseau-pense-pour-lespace-qui-me-sert-aujourdhui-de-box-4g","status":"publish","type":"post","link":"https:\/\/sophie-matthieu.eu\/index.php\/2026\/10\/01\/orion-dtn-le-reseau-pense-pour-lespace-qui-me-sert-aujourdhui-de-box-4g\/","title":{"rendered":"Orion-DTN : le r\u00e9seau pens\u00e9 pour l&rsquo;espace qui me sert aujourd&rsquo;hui de box 4G"},"content":{"rendered":"<p>La plupart de mes projets vivent dans un onglet de navigateur, avec une connexion qui marche \u00e0 peu pr\u00e8s tout le temps. Celui-ci est n\u00e9 pour l&rsquo;exact oppos\u00e9 : faire passer des donn\u00e9es quand il n&rsquo;y a <strong>aucune garantie<\/strong> qu&rsquo;un chemin r\u00e9seau complet existe \u00e0 un instant donn\u00e9. Le projet s&rsquo;appelle <strong>Orion-DTN<\/strong>, son d\u00e9veloppement est aujourd&rsquo;hui en pause \u2014 mais une partie du mat\u00e9riel construit pour lui vit toujours, au quotidien, chez moi \u00e0 Orl\u00e9ans, o\u00f9 il me sert tout simplement de passerelle Internet avec mon iPhone branch\u00e9 dessus en source.<\/p>\n<h2>DTN : un r\u00e9seau pens\u00e9 pour les liaisons qui coupent<\/h2>\n<p>Le <strong>DTN<\/strong> (<em>Delay\/Disruption Tolerant Networking<\/em>) n&rsquo;a pas \u00e9t\u00e9 invent\u00e9 pour les box ADSL. C&rsquo;est une architecture r\u00e9seau d\u00e9velopp\u00e9e \u00e0 l&rsquo;origine pour les communications spatiales : entre la Terre et une sonde interplan\u00e9taire, il n&rsquo;existe jamais de chemin TCP\/IP de bout en bout \u2014 les d\u00e9lais se comptent en minutes ou en heures, et la liaison peut couper sans pr\u00e9venir (la Terre tourne, la sonde aussi). Le protocole central de ce monde, le <strong>Bundle Protocol<\/strong>, repose sur un principe tout simple : au lieu de supposer qu&rsquo;une route compl\u00e8te existe maintenant, chaque n\u0153ud du r\u00e9seau <strong>stocke les donn\u00e9es puis les retransmet<\/strong> d\u00e8s qu&rsquo;une liaison redevient disponible \u2014 du <em>store-and-forward<\/em>, mais appliqu\u00e9 \u00e0 l&rsquo;\u00e9chelle du r\u00e9seau entier plut\u00f4t qu&rsquo;\u00e0 une seule bo\u00eete mail.<\/p>\n<p>J&rsquo;utilise l&rsquo;impl\u00e9mentation de r\u00e9f\u00e9rence de la NASA\/JPL, <strong>ION-DTN<\/strong> (<em>Interplanetary Overlay Network<\/em>), ainsi que des \u00e9l\u00e9ments du cadre <strong>CCSDS<\/strong> (Consultative Committee for Space Data Systems) \u2014 le standard qu&rsquo;utilisent les vraies agences spatiales pour le formatage de leurs trames radio.<\/p>\n<p>Pourquoi ce choix pour un projet qui n&rsquo;a jamais quitt\u00e9 l&rsquo;atmosph\u00e8re ? Parce qu&rsquo;un bateau de course au large partage, \u00e0 son \u00e9chelle, les m\u00eames sympt\u00f4mes qu&rsquo;une sonde spatiale : connectivit\u00e9 intermittente, co\u00fbteuse, parfois totalement coup\u00e9e pendant des heures (grain, zone d&rsquo;ombre satellite, antenne masqu\u00e9e par la houle), et plusieurs liaisons possibles qui n&rsquo;ont pas toutes la m\u00eame fiabilit\u00e9 ni le m\u00eame co\u00fbt. Le projet Orion-DTN, con\u00e7u \u00e0 l&rsquo;origine pour un IMOCA, visait exactement ce terrain : garantir qu&rsquo;une donn\u00e9e \u00e9mise \u00e0 bord <strong>finit par arriver<\/strong> \u00e0 terre, quelle que soit la liaison disponible au moment o\u00f9 elle est envoy\u00e9e.<\/p>\n<h2>Deux n\u0153uds, \u00e0 l&rsquo;image du vocabulaire spatial<\/h2>\n<p>L&rsquo;architecture logicielle reprend sans complexe le vocabulaire du DTN spatial, m\u00eame appliqu\u00e9e \u00e0 un bateau : un n\u0153ud <strong>CM4<\/strong> (sur une carte Raspberry Pi Compute Module 4, embarqu\u00e9 \u00e0 bord) joue le r\u00f4le de \u00ab <em>spacecraft<\/em> \u00bb, et un n\u0153ud <strong>Shore<\/strong> \u00e0 terre joue le r\u00f4le de \u00ab <em>ground station<\/em> \u00bb. Les deux font tourner ION-DTN et s&rsquo;\u00e9changent des \u00ab bundles \u00bb (l&rsquo;unit\u00e9 de transport du Bundle Protocol) par n&rsquo;importe quelle liaison disponible \u00e0 l&rsquo;instant T \u2014 un tunnel VPN quand une connexion IP classique existe, ou directement par radio quand il n&rsquo;y a rien d&rsquo;autre.<\/p>\n<p>Cette seconde option radio est la plus proche de l&rsquo;esprit spatial du projet : une liaison <strong>LoRa<\/strong> point-\u00e0-point, avec un firmware maison tournant sur des modules ESP32-S3 (Heltec Wireless Tracker), qui encode ses trames selon les conventions <strong>CCSDS<\/strong> plut\u00f4t qu&rsquo;un protocole LoRa propri\u00e9taire. \u00c0 port\u00e9e et d\u00e9bit LoRa classiques \u2014 de l&rsquo;ordre de quelques centaines d&rsquo;octets par paquet, pas plus d&rsquo;un paquet par seconde \u2014 de quoi faire remonter de la t\u00e9l\u00e9mesure ou de petits messages m\u00eame quand aucune autre liaison ne fonctionne, exactement comme le ferait un lien radio avec une sonde lointaine, juste \u00e0 une \u00e9chelle de quelques kilom\u00e8tres plut\u00f4t que de quelques unit\u00e9s astronomiques.<\/p>\n<h2>Une passerelle multi-WAN qui bascule seule<\/h2>\n<p>C\u00f4t\u00e9 connectivit\u00e9 \u00ab normale \u00bb, le n\u0153ud CM4 jongle entre plusieurs liaisons montantes selon leur priorit\u00e9 : une liaison filaire agr\u00e9geant une connexion satellite (type Starlink ou un autre service satcom maritime), une liaison WiFi locale, et une liaison <strong>cellulaire de secours via un iPhone en partage de connexion<\/strong>, branch\u00e9 en USB. Le tout bascule automatiquement d&rsquo;une liaison \u00e0 l&rsquo;autre selon sa disponibilit\u00e9 et le mode op\u00e9rationnel choisi (au port, en mer avec large bande, en mer en mode restreint&#8230;), sans jamais casser le tunnel DTN ni le VPN qui tourne par-dessus \u2014 le but \u00e9tant justement qu&rsquo;une coupure d&rsquo;une liaison ne se traduise jamais par une perte de donn\u00e9es, seulement par un d\u00e9lai de plus avant que le prochain bundle ne parte.<\/p>\n<p>L&rsquo;usage le plus concret qui tourne sur cette architecture (au-del\u00e0 de la t\u00e9l\u00e9mesure) : un pont mail. Un message d\u00e9pos\u00e9 \u00e0 bord est mis en file, transport\u00e9 en bundle DTN jusqu&rsquo;\u00e0 Shore d\u00e8s qu&rsquo;une liaison existe, puis relay\u00e9 vers un vrai serveur SMTP. Rien de spectaculaire en apparence \u2014 mais c&rsquo;est une belle d\u00e9monstration que le <em>store-and-forward<\/em> n&rsquo;est pas qu&rsquo;une th\u00e9orie d&rsquo;article scientifique : un mail \u00e9crit \u00e0 bord sans connexion finit toujours par partir, sans que personne n&rsquo;ait besoin de r\u00e9essayer manuellement.<\/p>\n<h2>Aujourd&rsquo;hui : en pause, et recycl\u00e9 \u00e0 la maison<\/h2>\n<p>Le d\u00e9veloppement actif d&rsquo;Orion-DTN est pour l&rsquo;instant arr\u00eat\u00e9. Mais le bo\u00eetier CM4, lui, n&rsquo;est pas rest\u00e9 sur une \u00e9tag\u00e8re : il tourne d\u00e9sormais chez moi, \u00e0 Orl\u00e9ans, o\u00f9 je m&rsquo;en sers comme <strong>passerelle r\u00e9seau<\/strong> tout simplement \u2014 en y branchant mon iPhone en USB comme source Internet, exactement la m\u00eame liaison cellulaire de secours qui, \u00e0 bord, ne servait qu&rsquo;en dernier recours. Ce qui \u00e9tait pens\u00e9 comme le filet de s\u00e9curit\u00e9 le moins prioritaire d&rsquo;un syst\u00e8me de connectivit\u00e9 maritime est devenu, \u00e0 la maison, la source principale \u2014 une reconversion qui n&rsquo;aurait pas \u00e9t\u00e9 possible sans tout le travail de bascule automatique entre liaisons d\u00e9j\u00e0 fait pour le bateau.<\/p>\n<p>La partie DTN\/ION \u00e0 proprement parler, elle, est au repos : pas de bundles qui transitent, pas de liaison LoRa active. Mais l&rsquo;infrastructure r\u00e9seau qui tournait autour \u2014 la gestion multi-WAN, le basculement cellulaire, le tunnel VPN vers Shore \u2014 continue de prouver, au jour le jour et sans pr\u00e9tention spatiale, qu&rsquo;un syst\u00e8me construit pour encaisser l&rsquo;absence de r\u00e9seau fait aussi, tr\u00e8s bien, un routeur Internet ordinaire quand on n&rsquo;a besoin que de \u00e7a.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La plupart de mes projets vivent dans un onglet de navigateur, avec une connexion qui marche \u00e0 peu pr\u00e8s tout le temps. Celui-ci est n\u00e9 pour l&rsquo;exact oppos\u00e9 : faire passer des donn\u00e9es quand il n&rsquo;y a aucune garantie qu&rsquo;un chemin r\u00e9seau complet existe \u00e0 un instant donn\u00e9. Le projet s&rsquo;appelle Orion-DTN, son d\u00e9veloppement est [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-4751","post","type-post","status-publish","format-standard","hentry","category-electronique-maker"],"_links":{"self":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/comments?post=4751"}],"version-history":[{"count":1,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4751\/revisions"}],"predecessor-version":[{"id":4752,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4751\/revisions\/4752"}],"wp:attachment":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/media?parent=4751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/categories?post=4751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/tags?post=4751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}