Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

RFC 5050: Bundle Protocol Specification

Date de publication du RFC : Novembre 2007
Auteur(s) du RFC : K. Scott (Mitre), S. Burleigh (NASA Jet Propulsion Laboratory)
Expérimental
Première rédaction de cet article le 19 novembre 2007
Dernière mise à jour le 20 novembre 2007


Première incarnation du travail sur les réseaux à forte latence (RFC 4838), voici le protocole « Bundle », pour communiquer avec un vaisseau spatial en route pour Jupiter... (Une version plus élaborée l'a depuis remplacé, cf. RFC 9171.)

Conçu pour des réseaux difficiles, à très forte latence, avec des connectivités très intermittentes, Bundle ne doit pas grand'chose à TCP/IP et ressemble davantage à UUCP. Un bundle (avec un petit b) est un paquet de notre protocole (il a par exemple l'équivalent d'un en-tête, décrit dans la section 4.2). Il est transmis de machine en machine, chaque machine en acceptant la garde et le stockant pour un temps indéterminé, avant de le passer à la machine suivante. (Les bundles sont composés de plusieurs blocs et ce sont en fait les blocs qui sont transmis, mais c'est un détail.)

La transmission se fait avec des protocoles des couches inférieures comme le LTP présenté dans le RFC 5325.

Ce concept de garde (custody) est essentiel dans Bundle et évoque le courrier électronique où, avant l'explosion du spam, un serveur de messagerie avait pour principe de ne jamais jeter un message dont il avait accepté la garde : « distribuer ou signaler (la non-distribution) ».

Bundle fonctionne au niveau Applications. À l'intérieur de chaque réseau (le RFC dit « internet » avec un petit i, mais je trouve le risque de confusion avec l'Internet trop grand), Bundle utilise les protocoles de transport et de routage de ce réseau (la section 7 détaille les propriétés que doit avoir la mince couche logicielle qui connecte Bundle à ces protocoles).

Le format des bundles est décrit dans la section 4 (il sera ensuite normalisé de manière plus rigoureuse dans le RFC 6256). Il ressemble au BER d'ASN.1. Les valeurs ne sont pas étiquetées avec leur longueur, leur fin est détectée lorsque le bit de plus fort poids devient zéro.

La section 5 décrit le traitement des bundles, par exemple leur expiration lorsqu'ils n'ont pas pu être transmis dans le délai imparti.

La section 6 est consacrée aux messages « administratifs », l'équivalent d'ICMP dans le monde IP. Transmis par le même protocole Bundle, ils permettent de signaler qu'un bundle a été transmis, qu'il a été déposé à sa destination finale, etc.

Une première mise en œuvre du protocole Bundle a été developpée et se trouve en http://masaka.cs.ohiou.edu/ocp/bundling.html. Une autre est ION, accessible en http://www.dtnrg.org/wiki/Code.


Téléchargez le RFC 5050

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)