Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Meridian, un mécanisme pour trouver le pair le plus proche

Première rédaction de cet article le 14 avril 2009


Le développement formidable des techniques pair-à-pair a apporté d'immenses possibilités et des défis nouveaux. Par exemple, si une machine peut potentiellement demander un service à 10 000 pairs, lequel utiliser ? Le plus proche, évidemment mais comment définir « le plus proche » ? Certainement pas par la proximité géographique qui, sur l'Internet, n'est qu'un indicateur très grossier. Et, une fois cette notion de proximité définie, comment la mesurer de manière qui supporte le passage à l'échelle ? Utiliser ping avec chacun des 10 000 pairs prendrait un temps fou et serait très coûteux en ressources réseau.

Meridian intervient ici. Ce protocole, mis au point par Bernard Wong, Aleksandrs Slivkins et Emin Gün Sirer de l'université Cornell, est une approche du problème de la mesure par le biais de requêtes qui sont transmises à des machines de plus en plus proches de la « cible » jusqu'à localiser la plus proche. Il est décrit dans Meridian: A Lightweight Network Location Service without Virtual Coordinates. Meridian est un concurrent des systèmes de coordonnées Internet. Il est moins général mais est censé être moins coûteux en ressources.

Le principe est que chaque nœud Meridian :

  • Organise ses pairs, les autres nœuds Meridian qu'il connait, en un ensemble d'anneaux concentriques, selon leur distance. Les plus proches sont dans l'anneau interne, les plus éloignés sont dans le dernier anneau, qui englobe tout l'« univers » restant.
  • Lorsqu'il reçoit une requête, la fait suivre aux pairs dont la distance à l'objectif est « proche » (le facteur de proximité, noté β dans l'article, est réglable) de celle qu'il mesure lui-même. La requête sera ensuite formellement transférée au pair qui signalera la plus faible distance avec l'objectif. Celui-ci fera de même et on arrivera donc rapidement dans un anneau interne, plus peuplé et donc plus précis. On « zoomera » ainsi vers une précision de plus en plus grande, un peu comme le font des DHT comme Chord.

Contrairement aux systèmes de coordonnées euclidiennes, Meridian n'a donc pas besoin d'amers fixes.

Pour échanger avec ses pairs l'information qui va permettre de maintenir le réseau de machines Meridian, chaque nœud va utiliser un protocole de bavardage.

L'article original ne semble pas donner beaucoup de détail sur la faon dont Meridian mesure la distance entre pairs. Il utilise probablement une simple mesure de RTT, une métrique imparfaite mais simple.

Une mise en œuvre de Meridian écrite en C++ est disponible sous une licence libre. Une des applications pratiques de Meridian est ClosestNode, une passerelle entre le DNS et Meridian. Les services accessibles sur Internet via un nom de domaine peuvent s'enregistrer auprès de ClosestNode et celui-ci renverra au client DNS l'adresse IP du serveur le plus proche de lui. Testez avec dig en cherchant l'adresse IP de proxy.cob-web.org pour un exemple de ClosestNode en action. ClosestNode est décrit dans le bref article ClosestNode.com: An Open-Access, Scalable, Shared Geocast Service for Distributed Systems. Reposant sur le DNS, il évite donc aux clients d'avoir à parler le protocole Meridian.

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)