Table de hachage distribuée

Table de hachage distribuée
Page d'aide sur l'homonymie Pour les articles homonymes, voir DHT.

Une table de hachage distribuée (ou DHT pour Distributed Hash Table), est une technologie permettant l'identification et l'obtention, dans un système réparti, comme certains réseaux P2P, d'une information. L'ensemble de la table de hachage est constituée virtuellement par tous ses constituants répartis sur tous les éléments du réseau, qui en possèdent chacun une partie.

Les tables de hash réparties sont utilisées notamment dans les protocoles Chord, protocole P2P CAN, Tapestry, Kademlia (utilisé par eMule), Ares Galaxy. Système aussi utilisé dans de nombreux clients récents pour le protocole BitTorrent comme Azureus, Bitcomet, KTorrent, Transmission ou encore µTorrent. Le premier client BitTorrent à utiliser le DHT était Azureus, suivi du client officiel BitTorrent qui créa une version différente. La version du client officiel fut alors appelée Mainline DHT. Dorénavant la plupart des clients supportent la version Mainline DHT.

Principe

Supposons un grand nombre d'utilisateurs (5 millions) ayant lancé leur logiciel de P2P (Peer-to-Peer) sur leur ordinateur. Chacun partage quelques fichiers (audio, images, vidéo, multimédia, etc.) Un utilisateur (Luc) possède, par exemple, l'album Les idees saines de Serge Dassault (disponible sous licence Creative Commons).

Supposons qu'un autre utilisateur (Pierre) souhaite télécharger cet album. Comment son logiciel de P2P peut-il trouver l'ordinateur de Luc ? Le logiciel de Pierre pourrait éventuellement demander aux 5 millions d'ordinateurs si par hasard ils possèdent cet album. Le logiciel de Luc répondrait alors : « Je le possède et je peux commencer à le transférer. » Il serait cependant bien lent de demander aux 5 millions d'ordinateurs s'ils ont cet album, car il y aurait en permanence des millions de questions du type « Je cherche tel album, l'as-tu ? », entraînant des millions de réponses : « Non, désolé ! ».

Un grand annuaire archivant les noms des fichiers partagés par tous les utilisateurs résoudrait la question : il suffirait de demander à ce « grand annuaire » (= la table de hachage) l'album de musique Les idees saines de Serge Dassault pour obtenir la réponse : « il est disponible sur l'ordinateur de Luc. (et celui de Mathieu, de Paul, etc.) » C'est ainsi que fonctionnait la première génération de réseaux P2P. Il y avait un serveur central qui servait de « grand annuaire. » (exemples : Napster, Audiogalaxy, Edonkey, Kazaa) Cette solution est de moins en moins utilisée en raison de sa fragilité : que faire lorsque le serveur central tombe en panne ? prend feu ? est saisi par la police ? Le réseau ne fonctionne alors plus, on ne peut plus faire aucune recherche sur les fichiers partagés.

Les programmeurs de logiciels P2P ont alors eu une idée : il faudrait que le « grand annuaire » ne soit pas sur un seul ordinateur, mais sur des centaines. Et ils se sont dit « on n'a qu'à faire notre logiciel de telle façon que chaque utilisateur soit responsable d'un petit bout du grand annuaire. » Chacun des 5 millions d'utilisateurs est responsable d'une petite partie: on dit que c'est une table de hachage distribuée.

Par exemple, l'utilisateur Jean-Claude va être responsable de tous les fichiers qui commencent par A, Toto va être responsable de tous les fichiers qui commencent par B, etc... Lorsque un nouvel utilisateur se connecte au réseau, la première chose que le logiciel va faire est de dire quels fichiers il peut partager. S'il possède par exemple le film Big Buck Bunny, il va dire à l'utilisateur Toto (qui est responsable des fichiers qui commencent par B) : « j'ai le film Big Buck Bunny. Si des gens le veulent, il est disponible chez moi. » Les recherches deviennent donc très rapides. Si on cherche Big Buck Bunny, on va directement demander à la personne responsable de la lettre « B ».

La réalité est un peu plus complexe : il ne faut pas qu'une seule personne soit responsable des mots qui commencent par "B", car si elle éteint son ordinateur on perd une partie de l'annuaire. Il faut donc introduire une certaine redondance dans l'annuaire, et donc plusieurs ordinateurs sont simultanément responsables des mêmes listes. De plus, vu qu’il y a des centaines de millions de fichiers partagés, le principe de division de l'annuaire n'est pas basé sur les lettres de l'alphabet mais sur une table de hachage des mots des titres des fichiers.

Enfin, chaque ordinateur n'a pas besoin de connaître tous les ordinateurs qui archivent des mots. Il connaîtra typiquement une centaine d'ordinateurs. Si l'utilisateur fait une recherche sur Big Buck Bunny et ne connaît pas l'ordinateur qui archive les fichiers commençant par B, alors :

  • il demandera à l'ordinateur le plus proche (par exemple l'ordinateur qui archive les fichiers commençant par C) : « Connais-tu l'ordinateur s'occupant des mots commençant par B ? »
  • celui-ci répondra « Parmi mes voisins, je connais les ordinateurs qui s'occupent des B, et même je connais des ordinateurs qui s'occupent des fichiers commençant par BA, BI, BO, BU, donc tu ferais bien de demander à celui qui connaît les fichiers commençant par BI s'il a par hasard le fichier que tu cherches. »
  • on interroge le responsable des « BI » et il dira : « Oui, je connais les ordinateurs qui ont le film que tu veux » ou alors, s'il ne les connaît pas, il répondra « Je ne connais pas ton fichier, par contre je connais un ordinateur qui s'occupe des fichiers commençant par BIG, donc demande-lui. »

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Table de hachage distribuée de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Table de hachage distribuee — Table de hachage distribuée Pour les articles homonymes, voir DHT. Une table de hachage distribuée (ou DHT pour Distributed Hash Table), est une technologie permettant l identification et l obtention, dans un système réparti, comme certains… …   Wikipédia en Français

  • Distributed hash table — Table de hachage distribuée Pour les articles homonymes, voir DHT. Une table de hachage distribuée (ou DHT pour Distributed Hash Table), est une technologie permettant l identification et l obtention, dans un système réparti, comme certains… …   Wikipédia en Français

  • Deluge (logiciel) — Pour les articles homonymes, voir Déluge. Deluge …   Wikipédia en Français

  • Transmission (logiciel) — Pour les articles homonymes, voir Transmission. Transmission …   Wikipédia en Français

  • Seeks — Développeurs Emmanuel Benazera, Mehdi Abaakouk, Pablo Joubert Environnement POSIX …   Wikipédia en Français

  • Chord — Sommaire 1 Le protocole Chord 1.1 Inconvénients 1.2 Avantages 2 Liens externes 3 Notes …   Wikipédia en Français

  • Abreviations en informatique D — Abréviations en informatique D DAC (et DACL) : Discretionary access control (List), Contrôle d accès discrétionnaire, contrôle d accès personnalisé à une ressource (fichier ou autre) DADS (et DADS U) : En France, Déclaration Automatisée …   Wikipédia en Français

  • Abréviations En Informatique D — DAC (et DACL) : Discretionary access control (List), Contrôle d accès discrétionnaire, contrôle d accès personnalisé à une ressource (fichier ou autre) DADS (et DADS U) : En France, Déclaration Automatisée des Données Sociales Unifiée… …   Wikipédia en Français

  • Abréviations en informatique D — DAC (et DACL) : Discretionary access control (List), Contrôle d accès discrétionnaire, contrôle d accès personnalisé à une ressource (fichier ou autre) DADS (et DADS U) : En France, Déclaration Automatisée des Données Sociales Unifiée… …   Wikipédia en Français

  • Abréviations en informatique d — DAC (et DACL) : Discretionary access control (List), Contrôle d accès discrétionnaire, contrôle d accès personnalisé à une ressource (fichier ou autre) DADS (et DADS U) : En France, Déclaration Automatisée des Données Sociales Unifiée… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”