close
  • Li chevron_right

    Un réseau offline "delay-tolerant" avec NNCP

    news.movim.eu / LinuxFRJournaux · Wednesday, 13 October - 08:45 · 2 minutes

Cher journal,

Je m’intéresse particulièrement à la création d’un réseau décentralisé, offline et "delay-tolerant".

Un réseau offline ou "delay tolerant" ? Kezako ?

C’est un réseau sur lequel les nodes ne se connectent que ponctuellement. L’accès aux données n’est pas immédiat et 2 nodes peuvent communiquer même s’ils ne sont jamais connectés ensembles. (il existe d’autres noms comme "sneakernet", je ne maitrise pas toutes les subtilités).

Lowtech en parle dans la seconde partie de cet article :
https://solar.lowtechmagazine.com/2015/10/how-to-build-a-low-tech-internet.html

De manière étonnante, je trouve assez peu de logiciels pour créer ce genre de réseau de manière assez transparente. Pire : la plupart de nos logiciels exigent désormais une connexion permanente. Même un protocole comme l’email, qui est asynchrone par nature, est difficile à mettre en place de manière structurelle en mode delay-tolerant (les clients mails s’attendent désormais à une connexion IMAP et SMTP permanente sous peine d’erreurs, aucun client graphique ne supporte plus le format local Maildir nativement, etc).

J’ai cependant découvert une suite logicielle très intéressante appelée NNCP. NNCP est une série d’outils qui servent à transmettre et synchroniser des fichiers entre des ordinateurs rarement connectés ensemble voire même air-gapped (pas de connexion physique du tout, la synchronisation se faisant avec une clé USB).

http://www.nncpgo.org/index.html

Le problème de NNCP c’est que la documentation est pour le moins minimaliste. NNCP nécessite également un routing manuel. Si je veux synchroniser A et B, je dois manuellement indiquer que C sert d’intermédiaire. Pas de routing automatique donc.

Le développeur Debian John Goerzen s’est passionné pour le sujet et a écrit plusieurs articles qui servent d’à peu près unique documentation du bazar.

Il a notamment imaginé combiner NNCP et Syncthing :
https://changelog.complete.org/archives/10219-a-simple-delay-tolerant-offline-capable-mesh-network-with-syncthing-optional-nncp

ou NNCP et Git
https://changelog.complete.org/archives/10274-distributed-asynchronous-git-syncing-with-nncp

Le tout semble quand même assez périlleux à mettre en place.

Je me demandais donc si vous connaissiez des solutions dédiées à la création de réseaux delay-tolerant. Intuitivement, des briques logicielles existantes comme git pourraient jouer un rôle mais, en creusant, le problème se révèle assez rapidement complexe : notion d’intégrité d’un fichier (pour qu’il ne soit pas altéré par un intermédiaire), notion de routing, etc.

QQn a déjà creusé le sujet ici ?

Commentaires : voir le flux Atom ouvrir dans le navigateur