Bundle Protocol (VT)

From air
Jump to navigation Jump to search

INFO5 2024-2025 Amaury GOGUILLOT, Axel JOUVE

Bundle Protocol: Une solution pour les réseaux DTN

Résumé

Le Bundle Protocol est un protocole conçu pour les réseaux tolérants aux délais (DTN), répondant aux besoins des environnements où les communications sont intermittentes et sujettes à de longs délais. Basé sur le principe store-and-forward (stockage et retransmission), il permet la transmission fiable de données grâce à l’encapsulation en unités appelées “bundles”. Initialement développé pour les communications spatiales, il s’étend aujourd’hui à des usages militaires, terrestres et interplanétaires. Sa flexibilité et sa robustesse en font une solution essentielle pour les réseaux de nouvelle génération confrontés à des défis extrêmes.

Mots-clés

Bundle Protocol, DTN, réseaux tolérants aux délais et interruption, communications interplanétaires, sécurité, store-and-forward.


Abstract

The Bundle Protocol is a communication protocol designed for Delay/Disruption-Tolerant Networks (DTN) in environments with intermittent connectivity and long delays. Based on the store-and-forward principle, it ensures reliable data transmission through encapsulated units called “bundles.” Initially developed for space communications, it now finds applications in military, terrestrial, and interplanetary networks. Its flexibility and resilience make it a useful tool for next-generation networks operating under extreme conditions.

Keywords

Bundle Protocol, DTN, Delay-Tolerant Networks, interplanetary communications, security, store-and-forward.


Synthèse

Introduction

Le Bundle Protocol (BP) est un protocole de communication central dans les réseaux tolérants aux délais (DTN), conçus pour répondre aux contraintes des environnements extrêmes : longs délais, interruptions fréquentes et connectivité intermittente. Issu des recherches menées par la NASA et l’IETF, ce protocole est particulièrement adapté aux missions spatiales, mais également utilisé dans les environnements militaires, les zones rurales on encore en IoT.

Fonctionnement du Bundle Protocol

BP repose sur trois concepts clés :

  1. Store-and-forward : Les données sont stockées sur des nœuds intermédiaires jusqu’à ce qu’une connexion devienne disponible,ils sont aors transmis
  2. Bundles : Unités de données autonomes, encapsulant payloads et métadonnées nécessaires pour assurer le routage et la gestion des erreurs.
  3. Flexibilité des couches de transport : Fonctionne sur divers réseaux sous-jacents grâce à une couche intermédiaire (convergence layer)

Structure des bundles :

  • Le Primary Block contient des informations essentielles (Endpoint Identifiers EID source et destination, durée de vie, etc.).
  • Les Blocs canoniques ajoutent des fonctionnalités comme la sécurité ou la gestion des sauts.

Convergence Layer Adapter (CLA) : BP s’appuie sur une interface adaptable qui permet son interopérabilité avec une variété de couches de transport.

Applications

Le BP permet de pallier certains manques des protocoles classiques

  1. Spatial : Missions interplanétaires (rover martien, satellites) où les interruptions et délais sont courants.
  2. Rural : Fournir un accès réseau dans des zones isolées.
  3. Militaire : Communication résistante dans des environnements hostiles.

Comparaisons et Limites

BP se distingue par son extensibilité et son indépendance vis-à-vis des technologies sous-jacentes. Cependant, il présente certaines limites :

  1. Complexité : Mise en œuvre nécessitant une gestion intelligente des nœuds et du routage.
  2. Ressources : Stockage important requis sur les nœuds intermédiaires.
  3. Performance : Moins optimisé pour les réseaux à faible latence.

Extensions et Perspectives

Des protocoles complémentaires comme LTP renforcent la robustesse du BP en fournissant des mécanismes de transport fiables. Le concept d’InterPlanetary Networking (IPN) vise à standardiser les communications interplanétaires en intégrant BP avec d’autres technologies. À l’avenir, les travaux sur la réduction des coûts de stockage et l’optimisation des algorithmes de routage pourraient élargir encore davantage ses applications.

Conclusion

Le Bundle Protocol représente une avancée majeure pour les communications dans des environnements extrêmes. Sa flexibilité et sa capacité à tolérer les délais en font un outil incontournable pour le développement des réseaux de demain, notamment dans les domaines spatial et terrestre. Cependant, des défis techniques subsistent, notamment liés à la complexité de son implémentation et à ses besoins en ressources.

Références commentées

  1. IETF - DTN Research Group

Présentation des travaux du groupe de recherche sur les réseaux tolérants aux délais, incluant les bases théoriques et les objectifs du Bundle Protocol.

  1. Architecture DTN - Université Paris-Est Marne-la-Vallée

Introduction académique à l’architecture DTN, décrivant les concepts fondamentaux comme le stockage et retransmission des données.

  1. TutorialsPoint - Bundle Protocol

Guide succinct expliquant le Bundle Protocol, ses mécanismes et ses applications principales.

  1. Techopedia - Bundle Protocol

Définition claire et synthétique du Bundle Protocol, orientée vers les usages pratiques.

  1. RFC 9171 - Bundle Protocol v7

Spécification officielle et détaillée du BPv7, essentielle pour comprendre ses fonctionnalités et son implémentation technique.

  1. RFC 5050 - Bundle Protocol v6

Première spécification expérimentale du Bundle Protocol, introduisant les concepts de base pour les réseaux DTN.

  1. RFC 9172 - Bundle Protocol Security (BPSec)

Spécification ajoutant des mécanismes de sécurité (intégrité, confidentialité) au Bundle Protocol, indispensable pour les environnements sensibles.

  1. Github DTN7

Dépôt git référençant de nombreuses implémentations intéressantes à explorer

Notes de présentation

0. Introduction

Définition : Protocole de communication

Un protocole de communication en informatique est un ensemble de règles et de conventions formellement définies qui régissent l’échange d’informations entre les entités d’un réseau.

Ces règles dépendent du contexte (environnement, contrainte, objectif dans lequel on veut utiliser le protocole.

Les DTN

Les réseaux DTN (Delay/Disruption Tolerant Networking) sont conçus pour fonctionner dans des conditions extrêmes, caractérisées par de longs délais et des interruptions fréquentes de connectivité.

Ce type de réseau permet une grande tolérance aux longues latences, aux connexions intermittentes et aux environnements à haut taux d’erreur.

Il repose sur un mécanisme de stockage et de retransmission (“store-and-forward”). Le réseau est composé d’un ensemble de nœuds interconnecté. En cas de problème de connexion, les données sont stockées temporairement au niveau des nœuds intermédiaires avant d’être renvoyé sur le réseau lorsque la connexion est rétablie.

Les DTN permettent à la fois des communications fiables et efficaces dans des environnements difficiles et l’interopérabilité entre différents systèmes de communication. Ils sont utilisés notamment pour les communications spatiales, militaires et dans les zones sinistrés, reculées ou difficiles d’accès.

Plan

  1. Bundle Protocol

    1. Caractéristiques
    2. Historique
  2. Comment ça fonctionne ?

    1. Bundle, store and forward, fragmenation réassemblage
    2. Caratériqtqes, tolérances, sécurité (rfc 9172)
  3. Comparaison

    1. Limites de BPv7
    2. Extension
    3. Utilisation
  4. Sources

1. Bundle protocol

A. Caractéristiques

Le Bundle Protocol est un protocole expérimental de communication pour les réseaux tolérants aux délais et aux perturbations (DTN).

Caractéristiques principales :

  1. Approche “store-and-forward” : Les données sont stockées temporairement aux nœuds intermédiaires jusqu’à ce qu’une connexion soit disponible. Un noeud garantit la livraison des paquets (service de retransmission basé sur la garde des bundles)
  2. Utilisation de “bundles” : Les données sont regroupées en paquets appelés “bundles”, qui contiennent suffisamment d’informations sémantiques pour permettre aux applications de progresser. Peuvent être fragmentés et réassemblés
  3. Flexibilité : Peut fonctionner sur différentes couches de transport (TCP, UDP) grâce à des adaptateurs de couche de convergence.
  4. Priorisation du trafic : Classifie le trafic en trois catégories - expédié, normal et en vrac.
  5. Sécurité intégrée : Offre des mécanismes pour l’intégrité des données, l’authentification et le chiffrement.

B. Historique

Historique du Bundle Protocol :

  • Origines (début des années 2000) :
    • Développé par des chercheurs du Jet Propulsion Laboratory (JPL) de la NASA
    • Fait partie du projet Delay/Disruption Tolerant Networking (DTN)
    • Objectif : permettre une communication fiable dans l’espace
  • Première spécification (2007) :

    • Publication de la RFC 5050 par l’Internet Engineering Task Force (IETF)
    • Définit la version expérimentale du Bundle Protocol (BPv6)
  • Développement et applications initiales :
    • Utilisé pour les communications spatiales par la NASA
    • Adopté pour des applications militaires et de gestion des catastrophes
    • Testé dans des zones rurales ou reculées avec une connectivité limitée
  • Évolution et standardisation :
    • Retours d’expérience des premières implémentations
    • Travaux du groupe de travail DTN de l’IETF pour améliorer le protocole
  • Version actuelle (2022) :
    • Publication de la RFC 9171 définissant le Bundle Protocol Version 7 (BPv7)
  • Applications actuelles et futures :
    • continue utilisation classique,
    • implémentations apparaissent, libres / ouvertes

    2. Comment ça fonctionne ?

    A. Structure

    Le BP fonctionne en dessous de la couche applicative du modèle OSI.

    Les nœuds du protocole

    Ils servent à réceptionner, stocker et envoyer les données circulant sur le réseau. Ils sont composé de :

    • Bundle Protocol Agent (BPA) : responsable de l’offre des services du Bundle Protocol, exécutant les procédures nécessaires pour gérer la création, la transmission, la réception et la livraison des bundles.
    • Convergence Layer Adapter (CLA) : Le CLA sert d’interface entre le BP et les protocoles de transport (physique) ou de réseau sous-jacents. Il permet au BP de fonctionner sur différents types de réseaux en utilisant les services d’un protocole intégré. Permet la flexibilité
    • Application Agent (AA) : L’AA utilise les services fournis par le BP pour faciliter la communication d’application. Il gère l’interaction entre l’application utilisateur et le système de transport des données. Element administratif. Construit les données, demande l’envoi.

    Structure des bundles

    Un bundle est l’unité de transmission de BPv7, encapsulant des données utilisateur et des métadonnées. Il se sert d’EID (Endpoint IDentifiers), identifiants uniques servant de destinations aux bundles.

    a) Bloc principal

    Le Primary Block est obligatoire et contient :

    • Version du protocole (BPv7).
    • EID de destination : Identifiant du noeud cible.
    • EID source : Identifiant de l’origine du bundle.
    • Durée de vie : Période pendant laquelle le bundle est valide.
    • Flags de contrôle : Indiquent des propriétés comme la fragmentation ou les rapports de statut.

    Le Primary Bundle Block est un bloc fondamental, il contient les informations essentielles pour identifier et traiter un bundle. Il est crucial pour le fonctionnement du Bundle Protocol.

    Contenu : Ce bloc inclut des métadonnées telles que l’identifiant du bundle, les adresses des nœuds source et destination, ainsi que des informations sur la création et la gestion du bundle (par exemple, les timestamps et les flags de contrôle).

    Fonctionnalité : Il permet aux nœuds du réseau de gérer correctement le bundle tout au long de son parcours, en fournissant les informations nécessaires pour le routage et la livraison.

    b) Blocs canoniques

    Les blocs additionnels servent à :

    • Transmettre les charges utiles : Le bloc de payload contient les données utilisateur.
    • Ajouter des extensions : Par exemple, des blocs pour l’âge du bundle, le nombre de sauts, ou des blocs spécifiques à la sécurité (BPSec).

    Le Canonical Bundle Block Format définit la structure standard des blocs dans un bundle, assurant une interprétation cohérente des données à travers différents systèmes.

    Caractéristiques : Ce format spécifie comment les blocs doivent être organisés et traités, garantissant que tous les nœuds participant au réseau peuvent comprendre et manipuler les bundles de manière uniforme.

    Importance : En établissant un format canonique, il facilite l’interopérabilité entre différentes implémentations du Bundle Protocol, ce qui est essentiel dans des environnements variés où plusieurs systèmes peuvent interagir.

    B. Services

    Transmission

    a) Fonctionnement

    Initiation d’une transmission par l’Application Agent (AA) qui demande au Bundle Protocol Agent (BPA) d’envoyer les données, avec infos nécessaires. BPA crée le bundle (les blocs) : EID, durée de vie, priorité, options

    Si la destination n’est pas directement atteignable, le BPA identifie des nœuds intermédiaires pour relayer le bundle.

    Si noeud suivant pas accessible, stockage en attendant

    b) Fragmentation
    • Les bundles peuvent être divisés en fragments si la taille dépasse les capacités d’un lien.
    • Fragmentation faite par le BPA
    • Les fragments sont réassemblés à destination.
    c) Expiration
    • Possibilité d’ajouter une durée de vie

    • Les bundles expirent une fois leur durée de vie dépassée - évite surcharge

    d) Priorité
    • Possibilité d’indiquer un niveau de priorité à création du bundle

    Convergence Layer

    BP repose sur une “Convergence Layer Adapter” (CLA), qui agit comme une passerelle entre le Bundle Protocol et les protocoles réseau sous-jacents. Cela permet à BP de fonctionner sur une large gamme de réseaux, qu’ils soient basés sur TCP/IP, des protocoles personnalisés, ou des liaisons directes.

    Chaque Convergence Layer Adapter (CLA) doit fournir un ensemble minimal de services au Bundle Protocol Agent (BPA).

    Services Fournis par le CLA

    • Envoi de Bundles : Transmettre un bundle à un nœud accessible via le protocole de la couche de convergence.
    • Notification d’État : Informer le BPA sur l’issue des procédures d’envoi d’un bundle.
    • Livraison de Bundles : Fournir au BPA les bundles envoyés par d’autres nœuds via le protocole.

    Services Additionnels

    Des spécifications supplémentaires peuvent exiger que les CLAs offrent d’autres services, tels que :

    • Rapport sur l'avancement des transmissions.
    • Réémission des données perdues.
    • Élimination des données corrompues.
    • Rapport sur l'intégrité et l'authenticité des bundles.
    • Gestion de la Congestion

    Les CLAs doivent également inclure des mécanismes pour limiter le débit ou contrôler la congestion, afin de s’adapter aux longs temps de réponse typiques des réseaux tolérants aux délais.

    Sécurité

    BPv7 intègre également des considérations de sécurité via le Bundle Protocol Security (BPSec) (RFC 9172), qui permet d’assurer l’intégrité et la confidentialité des données pendant leur transit.

    Services de sécurité :

    BPSec fournit des services de sécurité pour le BP, garantissant l’intégrité et la confidentialité des données. Ces services sont obligatoires lorsqu’ils sont nécessaires.

    • Authentification et chiffrement :

    Les blocs de bundles (sauf ceux d’extension BPSec) peuvent être authentifiés (Bloc d’Intégrité, BIB) et chiffrés (Bloc de Confidentialité, BCB).

    • Protection au repos et en transit :

    Les protections sont appliquées pendant le stockage (au repos) et le transfert des bundles.

    • Protocoles de convergence (CL) : Il est recommandé d’utiliser des protocoles CL pour assurer l’authenticité et la confidentialité des communications entre nœuds BP.
    • Protection contre l’analyse de trafic : L’encapsulation “bundle-in-bundle” peut être utilisée pour protéger contre l’analyse de trafic.
    • Prévention des attaques DoS : Des mesures comme la limitation de la durée de vie des bundles sont utilisées pour prévenir les attaques par déni de service.
    • Horodatage : Les horodatages absolus sont utilisés. Les nœuds sans horloge précise peuvent rencontrer des comportements inattendus.

    3. Comparaison

    A. Les limites de BPv7

    Le Bundle Protocol est complexe à mettre en place de part sa gestion intelligente du routage, ses mécanismes de sécurité et la gestion des erreurs. Il peut être très demandeur en ressource à cause du stockage de donnée sur les différents noeuds. Il n’est pas non plus adapté pour de la performance.

    B. Extension

    Licklider Transmission Protocol (LTP)

    Le Licklider Transmission Protocol (LTP) est un protocole (couche) de transport conçu pour les réseaux tolérants aux délais (DTN). Son objectif principal est d’assurer une transmission fiable des données dans des environnements où la connectivité peut être intermittente et où les délais de transmission sont importants.

    Caractéristiques principales :

    • Retransmission basée sur la garde : LTP permet à un nœud de prendre en charge la retransmission des données, garantissant ainsi leur livraison.
    • Gestion des erreurs : Il inclut des mécanismes pour détecter et corriger les erreurs pendant la transmission.

    LTP is commonly seen as the standard underlying convergence layer protocol for the Bundle Protocols (RFC 5050), supporting a wide selection of networks.

    Interplanetary Networking (IPN)

    Le protocole Interplanetary Networking (IPN) est une architecture de communication spécifiquement conçue pour gérer les communications entre les planètes. Il s’inspire des concepts du Delay-Tolerant Networking (DTN) et est optimisé pour faire face aux défis uniques des distances interplanétaires.

    Caractéristiques principales :

    • Routage opportuniste : IPN utilise un routage basé sur la disponibilité des connexions, essentiel dans les environnements spatiaux.
    • Conception pour les retards importants : Optimisé pour gérer les délais significatifs dus aux vastes distances entre les corps célestes.

    C. Utilisation

    1. Communications spatiales :
      • Mission : Mars Science Laboratory (Curiosity Rover)
      • Projet : Deep Space Network (DSN) de la NASA
      • Utilisation : Le BP est utilisé pour la communication entre le rover Curiosity sur Mars et la Terre via le DSN.
    2. Réseaux de capteurs en zones reculées :
      • Projet : ZebraNet au Kenya
      • Utilisation : Suivi des déplacements des zèbres à l’aide de colliers GPS. Les données sont collectées et transmises via BP lorsque les véhicules des chercheurs passent à proximité.
    3. Communications maritimes :
      • Projet : TRITON (Transponder for Real-time Integrated Tracking of Ocean Navigation)
      • Utilisation : Système de suivi des navires utilisant BP pour gérer les communications intermittentes en haute mer.
    4. Zones de catastrophe :
      • Projet : PHAROS (Platform for searcH And Rescue Operation Services)
      • Utilisation : Utilisation de BP pour maintenir les communications entre les équipes de secours dans des zones où l’infrastructure est endommagée.
    5. Réseaux véhiculaires :
      • Projet : CarTel du MIT
      • Utilisation : Collecte et partage de données sur le trafic et l’état des routes entre véhicules, utilisant BP pour gérer la connectivité intermittente
    6. Zones rurales ou isolées :
      • Projet : DakNet en Inde et au Cambodge
      • Utilisation : Fourniture d’accès Internet à des villages isolés via des “bus Internet” utilisant BP pour le stockage et la transmission des données.
    7. Recherche polaire :
      • Projet : SHARE (Sensor Health and Remote Environment)
      • Utilisation : Déploiement de capteurs en Antarctique, utilisant BP pour la collecte de données environnementales dans des conditions extrêmes.
    8. Surveillance de la faune :
      • Projet : SWIM (Shared Wireless Infostation Model) à l’Université de Californie à Santa Cruz
      • Utilisation : Suivi des baleines à l’aide de balises utilisant BP pour transmettre des données lorsque les animaux font surface.

    4. Sources

    Ce document est un travail de synthèse. Il regroupe des informations trouvées (et traduites) dans les documents/sites internet suivants :

    1. IETF - DTN Research Group

    Présentation des travaux du groupe de recherche sur les réseaux tolérants aux délais, incluant les bases théoriques et les objectifs du Bundle Protocol.

    1. Architecture DTN - Université Paris-Est Marne-la-Vallée

    Introduction académique à l’architecture DTN, décrivant les concepts fondamentaux comme le stockage et retransmission des données.

    1. TutorialsPoint - Bundle Protocol

    Guide succinct expliquant le Bundle Protocol, ses mécanismes et ses applications principales.

    1. Techopedia - Bundle Protocol

    Définition claire et synthétique du Bundle Protocol, orientée vers les usages pratiques.

    1. RFC 9171 - Bundle Protocol v7

    Spécification officielle et détaillée du BPv7, essentielle pour comprendre ses fonctionnalités et son implémentation technique.

    1. RFC 5050 - Bundle Protocol v6

    Première spécification expérimentale du Bundle Protocol, introduisant les concepts de base pour les réseaux DTN.

    1. RFC 9172 - Bundle Protocol Security (BPSec)

    Spécification ajoutant des mécanismes de sécurité (intégrité, confidentialité) au Bundle Protocol, indispensable pour les environnements sensibles.

    1. Github DTN7

    Dépôt git référençant de nombreuses implémentations intéressantes à explorer