Algorithmes de Cache sur R´seau Ad-Hoc e

Weltz Max 6 juin 2006
R´sum´ e e Etude comparative succincte de diff´rents algorithmes de cache r´partis. e e

1

Table des mati`res e
1 Introduction 1.1 Positionnement du probl`me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 1.2 Contenu de ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Etude bibliographique pr´liminaire e 2.1 [Har01] . . . . . . . . . . . . . . . . 2.2 [Har03] . . . . . . . . . . . . . . . . 2.3 [Cao04] . . . . . . . . . . . . . . . 2.4 [YC04] . . . . . . . . . . . . . . . . 2.5 [JYXK04] . . . . . . . . . . . . . . 2.6 [HHarN05] . . . . . . . . . . . . . . 2.7 [YC06] . . . . . . . . . . . . . . . . 2.8 [SHHarN06] . . . . . . . . . . . . . 2 2 2 2 3 3 4 4 5 5 6 6

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

1

1
1.1

Introduction
Positionnement du probl`me e

Aujourd’hui, les r´seaux ad-hoc sont employ´s dans de nombreux contextes (r´unions, services de secours, e e e campagnes scientifiques sur le terrain, etc.). Les r´seaux ad-hoc sont le plus souvent d´ploy´s sur des platee e e formes mobiles aux ressources limit´es, que ce soit la batterie, la m´moire ou la puissance de calcul. Pourtant e e ces utilisations n´cessitent l’utilisation et surtout le partage de donn´es (travaux en cours, ordres de mission, e e donn´es collect´es, etc.) alors que tous les noeuds mobiles ne peuvent vraisemblablement pas stocker toutes e e les donn´es disponibles dans leur propre m´moire. Il faut donc trouver une solution pour que chaque noeud e e puisse acc´der ` toutes les donn´es en les pla¸ant de fa¸on ad´quate sur le r´seau. Ce n’est ´videmment pas e a e c c e e e parfaitement possible puisque le propre des r´seaux ad-hoc est la mobilit´ et il est donc tr`s envisageable e e e qu’un noeud se retrouve s´par´ du d´tenteur de la donn´e qu’il recherche par un partitionnement du r´seau. e e e e e Malgr´ cela il va falloir essayer de trouver une solution efficace et si possible peu coˆteuse. e u

1.2

Contenu de ce document

De nombreux travaux ont ´t´ men´s autour de cette probl´matique, nous les aborderons dans la section 2. ee e e

2

Etude bibliographique pr´liminaire e

La d´termination de l’algorithme qui a ´t´ impl´ment´ s’est d’abord fait en ´tudiant des travaux pr´e ee e e e e existants et en en extrayant les parties cl´ afin d’avoir un algorithme qui soit ` la fois correct et relativement e a performant mˆme si les mesures de performance ne sont pas l’objectif ici. e Les documents ´tudi´s font pour la plupart les mˆmes hypoth`ses de d´part et utilisent le mˆme contexte e e e e e e exp´rimental (on pr´cisera par la suite si certains travaux se d´marquent des autres sur certains de ces e e e points). – Les noeuds Mk sont reli´s entre eux sans former de r´seau compl´tement reli´, ils sont mobiles et donc e e e e la topologie du r´seau est changeante, il peut notamment survenir des partitions du r´seau. e e – Ces noeuds partagent un grand nombre de donn´es que tous n’ont pas originellement et qu’ils ne peuvent e de toute fa¸on pas toutes h´berger localement sur chaque noeud. Il faut donc trouver comment r´partir c e e ces donn´es en fonction de la topologie du r´seau, la taille des donn´es, la fr´quence d’acc`s qui leur e e e e e est faite selon les diff´rents noeuds. D’autres crit`res peuvent ˆtre pris en compte (niveau de batterie e e e ou type de noeud, par exemple). – L’ensemble des travaux s’accordent pour dire que trouver la r´partition optimale des donn´es est un e e probl`me NP-complexe ` r´soudre. Il en d´coule que tous les algorithmes sont approximatifs. Il va e a e e donc falloir choisir entre complexit´ de l’algorithme et performances, sachant que plus l’algorithme e sera complexe, plus il risque de n´cessiter de calculs, d’espace m´moire et surtout de trafic au niveau e e r´seau, ce qui peut ˆtre tr`s dommageable sur un r´seau ad-hoc sans fil. e e e e Les diff´rences dans les documents suivants sont, entre autres : e – la possibilit´ de mise ` jour des donn´es, e a e – la formation de groupes de noeuds collaborant de mani`re privil´gi´e, e e e – la pr´sence d’un serveur central, e – ... 2

2.1

[Har01]

Ce premier travail[2] sert de comparatif ` beaucoup d’autres et permet d´j` de distinguer trois grands a ea types d’algorithmes qu’on retrouvera fr´quemment : e – L’algorithme glouton (ici appel´ SAF, pour Static Access Frequency) o` chacun conserve les donn´es e u e qui l’int´resse lui en priorit´ sans aucune consid´ration pour son entourage. Eventuellement il peut e e e moduler la fr´quence d’acc`s par la taille des donn´es et ne cacher que les plus petites pour plus de e e e performances. – Un algorithme de voisins ` voisins (ici appel´ DAFN, pour Dynamic Access Frequency and Neighbooa e rhood) o` est prise en compte la fr´quence d’acc`s personnelle mais aussi les donn´es poss´d´es par le u e e e e e voisinage imm´diat. En effet, cet algorithme pr´voit que jamais ne soit r´pliqu´e une donn´e sur deux e e e e e voisins directs ` la fois. On obtient donc une plus grande diversit´ des donn´es. a e e – Enfin, un algorithme de type ”‘groupe”’ (ici appel´ DCG, pour Dynamic Connectivity based Grouping) e sur lequel nous reviendrons car il est tr`s int´ressant. Cet algorithme a en effet le mˆme principe que e e e DAFN mentionn´ ci-dessus mais il ´tend le principe de non duplication des donn´es non plus ` un ou e e e a deux voisins directs, mais ` tout un groupe. La d´finition de groupe envisag´e ici est celle des boucles, a e e en faisant l’hypoth`se que deux liens ne tomberont jamais en mˆme temps. e e Evidemment, l’algorithme SAF est bien moins efficace (notamment en terme de diversit´ des donn´es) que e e DAFN qui l’est lui-mˆme moins que DCG, mais malheureusement, le trafic engendr´ est inverse (DCG est le e e plus coˆteux, suivi par DAFN, suivi par SAF qui lui ne consomme que ce qui est n´cessaire pour r´cup´rer u e e e les don´es puisqu’il ne communique pas avec les autres noeuds pour se coordonner). e Ce travail a donc mis en avant la probl´matique des groupes dont l’algorithme que nous utiliserons par e la suite fait usage. Une premi`re question se pose : comment s’assurer que tout le monde se coordonne e proprement et n’efface par exemple pas tous une mˆme donn´e en mˆme temps en constatant qu’un des e e e membres du groupe l’a d´j` ? Cela suppose une certaine fiabilit´ dans la transmission ou bien l’´lection d’un ea e e chef par exemple. Il est ` noter que ce document ne consid`re pas le cas o` les donn´es sont mises ` jour. a e u e a

2.2

[Har03]

Ce second travail[3], toujours par Takahiro Hara, prend lui en compte les mises ` jour avec un syst`me a e bas´ sur des TTL (Time To Live) pour les donn´es. Il reprend les algorithmes SAF, DAFN et DCG (rebaptis´s e e e E-SAF, E-DAFN et E-DCG, E pour Extended) en pond´rant la fr´quence d’acc`s par le temps restant avant e e e l’expiration du TTL. En effet, plus la donn´e va rester valide longtemps, plus li est int´ressant de la cacher e e alors qu’il est peu int´ressant de cacher une donn´e dont le TTL va expirer sous peu. e e La comparaison entre les trois algorithmes reste valable. Le principal probl`me ici est qu’il est assez d´licat e e de d´finir des TTL pour les donn´es. Le papier propose d’utiliser une formulation int´grale plus statistique e e e mais qui semble complexe ` mettre en oeuvre, et qui n’a d’ailleurs pas ´t´ mise en oeuvre dans ce document. a ee Signalons ´galement que dans ce travail, Hara consid`re que chaque donn´e a un propri´taire unique qui est e e e e le seul habilit´ ` la modifier. ea

3

2.3

[Cao04]

Ce travail[1] diff`re des autres par le fait qu’il se concentre surtout sur l’´conomie de batterie en utilisant e e des astuces propres aux r´seaux sans fil. Il consid`re ´galement un seul serveur central et une topologie a e e e priori en ´toile, ` un seul niveau de profondeur. e a L’id´e de d´part de Cao est que le module sans fil des noeuds du r´seau ad-hoc consomme trop et qu’on e e e devrait pouvoir l’´teindre bien davantage. Il propose donc que le serveur ´mette r´guli`rement la liste des e e e e e e donn´es qui ont ´t´ modifi´es1 ou non, suivie par un planning indiquant quand il va ´mettre ces donn´es. e ee e Ainsi les modules sans fil des noeuds n’ont ` s’activer que pour recevoir ces deux listes puis ils se r´veilleront a e a ` nouveau pour obtenir les donn´es qu’ils d´sirent. e e Il y a deux probl`mes majeurs, ` mon sens, dans ces hypoth`ses : que se passe-t-il si on ´tend ce principe e a e e a ` plusieurs serveurs ? les modules sans fil vont s’activer et se d´sactiver sans arrˆt, et si jamais deux serveurs e e diffusent une information int´ressante en mˆme temps, qui privil´gier ? et aussi, si un serveur est aussi un e e e demandeur, comment faire s’il veut recevoir une donn´e au moment mˆme o` il doit broadcaster sa liste de e e u donn´es que d’autres noeuds attendent ? Second probl`me : Il faut attendre la prochaine liste des mises ` jour e e a avant d’utiliser une donn´e qu’on aurait d´j` cach´e pour savoir si elle est encore valide. Et ´videmment il y e ea e e a aussi le probl`me qui se poserait si l’on consid`re un r´seau ` plusieurs niveaux de profondeur : comment e e e a faire du broadcast en connaissant le moment d’arriv´e du paquet dans ce cas ? e

2.4

[YC04]

Ce travail[7] reprend certaines id´es de Hara dans son premier travail[2] en les critiquant et en les e am´liorant. On retrouve notamment les trois types d’algorithmes : glouton (appel´ ici Greedy, avec sa vae e riante am´lior´e privil´giant les petites donn´es, Greedy-S), collaboratif entre voisins (appel´ ici OTOO, e e e e e pour One To One Optimization) et collaboratif en groupe (appel´ ici RN pour Reliable Neighbor scheme). e L’algorithme OTOO fait collaborer seulement deux voisins directs. Ces deux voisins vont r´pliquer entre e eux les donn´es auxquells ils acc`dent le plus fr´quemment en privil´giant un peu plus celles que eux-mˆmes e e e e e pr´f`rent. Ceci n’exclut donc pas les doublons entre les deux voisins. Notons que le document pr´voit mˆme ee e e comment d´terminer quels voisins regrouper en cas de conflits. Il est mˆme pr´vu que certains noeuds ne e e e trouvent pas de voisins. Ceci soul`ve un probl`me non abord´ jusque l` : l’utilisation de diff´rents algorithmes e e e a e en mˆme temps selon diff´rents noeuds du r´seau. e e e L’algorithme RN prend en compte la fr´quence d’acc`s des voisins fiables alentours. Par voisins fiables on e e entend un certain niveau de fiabilit´ de liaison entre les deux noeuds. La fr´quence d’acc`s des voisins ` une e e e a donn´e est par ailleurs pond´r´e par la fiabilit´ du lien avec le voisin en question. Cet algorithme pr´suppose e ee e e que les voisins utilisent le mˆme algorithme car si un noeud donne beaucoup de sa ressource ` ses voisins e a mais que ceux-ci en retour sont avares en espace et en partage, ce noeud va ˆtre p´nalis´. e e e Si Hara[2] a pens´ ` int´grer la notion de fiabilit´ par les boucles (redondance de liens), ici Liangzhong ea e e Yin et Guohong Cao l’int´grent sous forme d’une fiabilit´ au niveau lien ` proprement parler. e e a
1 cet

algorithme prend donc en compte la mise ` jour des donn´es mais dans le cas d’un seul et unique serveur de donn´es a e e

4

2.5

[JYXK04]

Dans leur ´tude[5], Zheng Jing, Wang Yijie, Lu Xicheng, et Yang Kan proposent un algorithme assez e complexe baptis´ ARAM (pour Adaptive Replica Allocation Algorithm In MANET). Cet algorithme fait e de nombreuses v´rifications pour obtenir un meilleur r´sultat que d’autres algorithmes, mais cela se fait au e e d´triment de nombreux calculs et du stockage de nombreuses donn´es. e e Pour r´sumer les grandes lignes de l’algorithme, il faut remarquer d’abord que celui prend en compte e (ou plutˆt, n’exclut pas) les mises ` jour. A chaque ex´cution, le noeud regarde si c’est avantageux de o a e r´pliquer une donn´e sur ses voisins afin de la rapprocher d’autres noeuds (mˆme si il en r´sulte que lors e e e e d’une ´ventuelle mise ` jour, il faudra la mettre ` jour ´galement)2 . Par ailleurs, si un noeud voit qu’il fait e a a e peu de mises ` jour d’une donn´e alors que d’autres en font souvent, il peut choisir de ne plus cacher cette a e e a e a donn´e3 . Enfin, un noeud peut d´cider de faire les deux ` la fois : passer la donn´e ` un voisin et ne plus e s’en occuper. Puisque ARAM n´cessite beaucoup de calculs et de m´moire, les auteurs ont mis au point un EARAM e e (Enhanced-ARAM) qui simplifie les formules utilis´es pour d´terminer ce qui est avantageux et ce qui ne e e l’est pas. Mais ils signalent dans le r´sultat de leur travail que cet algorithme fonctionne en moyenne mieux, e mais qu’au cas par cas, certaines donn´es peuvent ˆtre dupliqu´es ou supprim´es par erreur. e e e e

2.6

[HHarN05]

Ici, les noeuds sont beaucoup plus loquaces. Ils se tiennent en permanence inform´s des arriv´es et d´parts e e e de noeuds dans leur entourage4 . Notamment, chaque noeud broadcaste avec un TTL fix´5 sa pr´sence lors e e de son arriv´e, et chaque noeud du parcours s’ajoute ` chaque transmission du paquet ce qui propage la e a topologie du r´seau rapidement6 . e Rentrons dans le coeur de l’algorithme propos´ dans ce document[4]. A chaque application de l’algorithme7 , e le noeud courant Mi envoie aux noeuds (Mj) avec lesquelles il n’a pas de boucles (ie un trajet M i − − > M j − − > M k − ...− > M i) en leur demandant la liste des donn´es qu’ils cachent. Apr`s leur r´ponse, Mi e e e cherche les boucles qu’il a avec ses autres voisins et consid`re ces boucles comme groupe de r´plication. Dans e e le cas o` il n’y aurait pas de boucle, il se consid`rera comme lui-mˆme ´tant le groupe de r´plication. A partir u e e e e de l`, Mi calcule un crit`re ` partir des fr´quences d’acc`s au sein de son groupe et cherche ` faire h´berger a e a e e a e les donn´es de Mj au sein de son groupe en choisissant des noeuds peu charg´s en terme de m´moire ou bien e e e ayant des donn´es faiblement acc´d´es. e e e Cet algorithme est un des plus pr´ventifs et proactifs parmis les diff´rents articles consid´r´s ici. e e ee
suppose notamment de garder une trace de toutes les demandes d’´criture sur chaque donn´e e e le seul algorithme o` un noeud peut d´cider de ne plus cacher une donn´e autrement que lorsqu’il a besoin de place u e e pour cacher une donn´e imm´diatement e e 4 ce qui pose un premier probl`me, car dans les r´seaux sans fil, la perte de paquets est fr´quente, si jamais un message de e e e connexion/d´connexion n’est pas re¸u, il faut un autre moyen d’analyse du r´seau e c e 5 on peut ici soulever un probl`me qui n’est pas pr´sent que dans ce document[4] : comment d´terminer les param`res optie e e e maux ? dynamiquement ? ou bien sont-ils fix´s statiquement par des simulations pr´alables au risque de ne pas ˆtre optimaux ? e e e 6 au prix d’une grande quantit´ de messages, sauf si N=1 ou 2 e 7 jusqu’ici nous n’avons rencontr´ que des algorithmes appliqu´s p´riodiquement e e e
3 c’est 2 cela

5

2.7

[YC06]

Cet algorithme est en revanche un des plus passifs qui soit. Cet article[8] n’a rien ` voir avec le pr´c´dent a e e e a e e e article de Yin et Cao[7]. L’algorithme propos´ ici est d’ailleurs le seul ` ne pas ˆtre appliqu´ p´riodiquement. Le principe de cet algorithme est de faire cacher aux noeuds le chemin vers une donn´e (CachePath), ou la e donn´e elle-mˆme (CacheData), en fonction des paquets qu’ils relaient. Ainsi, si un noeud voit qu’un autre e e noeud r´plique une donn´e et que ce nouveau replica est plus proche de lui, il va cacher le chemin vers le e e nouveau replica pour un prochain usage. Si un noeud voit passer beaucoup de requˆtes d’origines diff´rentes e e vers une donn´e, il peut aussi ˆtre amen´ a cacher cette donn´e pour all´ger le trafic et le d´lai8 . e e e` e e e Ce document ´tablit au final que la m´thode mixte, alternant cache de donn´es et cache du chemin, est e e e la plus avantageuse. Notamment il ´tablit que cacher les donn´es est pr´f´rable dans le cas o` le TTL9 de e e ee u la donn´e arrive ` expiration bientˆt, et dans le cas des petites donn´es, cacher le chemin ´tant alors utilis´ e a o e e e lorsque le noeud est tr`s distant de la source originelle mais proche du nouveau replica. e

2.8

[SHHarN06]

Cet algorithme utilise ´galement la notion de groupe mais dans le sens ”‘voisins ` moins de N sauts”’. Ici[6] e a e le groupe est utilis´ ` des fins calculatoires et non pas ` des fins de non r´plication[2][3] ou de pr´vention[4]. ea a e Cet algorithme n’est pas non plus utilis´ p´riodiquement, mais simplement ` chaque fois que le noeud va e e a vouloir cacher une nouvelle don´e. Evidemment, s’il a de la place, il cache la donn´e sans autre forme de e e proc`s, mais lorsqu’il faut choisir quelle donn´e effacer pour cacher la nouvelle donn´e, l’algorithme d´velopp´ e e e e e dans cet article utilise sa connaissance du groupe. En effet, il calcule un crit`re sous forme de diff´rence e e d’int´rˆt entre la donn´e entrante et les donn´es potentiellement sortantes. Pour une donn´e entrante Dnew, ee e e e le crit`re suivant est calcul´ pour chaque donn´e pr´sente en cache actuellement sur Mi : e e e e Pi β Pinit Ai,new Ai,j − Ci,new + 1 Ci,j

∆i,j→new = α (ai,new − ai,j ) +

(1)

α et β ´tant des param`tres a priori fix´s, ai,j repr´sentant la fr´quence d’acc`s de Mi ` la donn´e Dj, e e e e e e a e Pi ´tant le niveau de batterie restant ` Mi et Pinit ´tant le niveau de batterie initial (100%), Ai,j ´tant la e a e e somme des fr´quences d’acc`s des membres du groupe de Mi ` Dj et Ci,j ´tant le nombre de copies de Dj au e e a e sein du groupe de Mi. Ensuite on va retirer les donn´es ayant le plus fort ∆ jusqu’` pouvoir placer Dnew en e a cache. Cet algorithme est principalement int´ressant car il prend en compte l’´tat de la batterie dans l’allocation e e de la m´moire. Ainsi, les noeuds avec peu de batterie restante sont plus ´go¨ e e ıstes que les autres, ce qui se con¸oit ais´ment. c e

8 ce

9 cet

qui le rend un peu plus actif, certes algorithme prend donc en compte la mise ` jour des donn´es a e

6

R´f´rences ee
[1] Guohong Cao, “Power-Aware Cache Management in Mobile Environments”, Department of Computer Science & Engineering The Pennsylvania State University, 2004. [2] Takahiro Hara, “Effective Replica Allocation in Ad Hoc Networks for Improving Data Accessibility”, Osaka University, 2001. [3] Takahiro Hara, “Replica Allocation Methods in Ad Hoc Networks with Data Update”, Department of Multimedia Engineering, Graduate School of Information Science and Technology, Osaka University, 2003. [4] Hideki Hayashi, Takahiro Hara, and Shojiro Nishio, “A Replica Allocation Method Adapting to Topology Changes in Ad Hoc Networks”, Dept. of Multimedia Eng., Grad. Sch. of Information Science and Tech., Osaka Univ., 2005. [5] Zheng Jing, Wang Yijie, Lu Xicheng, and Yang Kan, “A Dynamic Adaptive Replica Allocation Algorithm in Mobile Ad Hoc Networks”, School of Computer, National University of Defense Technology, Changsha, China, 2004. [6] Masako SHINOHARA, Hideki HAYASHI, Takahiro HARA, and Shojiro NISHIO, “Replica Allocation Considering Power Consumption in Mobile Ad Hoc Networks”, Dept. of Multimedia Eng., Grad. Sch. of Information Science and Technology, Osaka Univ., 2006. [7] Liangzhong Yin and Guohong Cao, “Balancing the Tradeoffs between Data Accessibility and Query Delay in Ad Hoc Networks”, Department of Computer Science & Engineering, The Pennsylvania State University, 2004. [8] Liangzhong Yin and Guohong Cao, “Supporting Cooperative Caching in Ad Hoc Networks”, Department of Computer Science & Engineering, The Pennsylvania State University, 2006.

7