1 Réseaux : algorithmique et combinatoire Daniel Krob (LIX) Laurent Viennot (INRIA)
2 Présentation du cours Approche de l’algorithmique et de la combinatoire par des problèmes appliqués autour des réseaux : –réseaux cellulaires (GSM) –réseaux ad hoc (Wifi) –graphe du web (liens hypertexte) –réseaux pair-à-pair (P2P)
3 Plan du cours 3 séances DK (3 dernières) : –Réseaux cellulaires : Survol (GSM, GPRS, UMTS) Problème de la démodulation : approche classique et combinatoire –Formule de Barret –Bijection de Knuth (tableaux d ’Young) –Fonctions symmétriques
4 7 séances LV (7 premières) : –Graphe du web : Mesure du web PageRank et Perron - Froebenius Méthode HITS et généralisation Modèles probabilistes et loi de Pareto –Réseaux ad hoc Routage dans Internet et en ad hoc Algorithmes d’optimisation de la diffusion
5 Graphe du web
6
7 Réseaux ad hoc
8
9 Protocoles pair-à-pair de partage de fichiers (peer-to-peer) Historique et survol des protocoles existants Insertion dans le réseau Tables de hachage distribuées
10 Partage de fichier Internet A
11 Index central : Napster A A A? IP
12 Chacun indexe ses fichiers : Gnutella (v0.4) A A? IP
13 Solution hybride : Kazaa (Ultrapeers / Supernodes) A A? IP A? A
14 Téléchargement multiple : eDonkey A1 A3 A2
15 Anonymat total : Freenet Tout est crypté. Les fichiers sont cachés. On ne sait pas ce qu’on aide à chercher, ou même ce que l’on cache.
16 Insertion d’un nouveau nœud Règle générale : –il existe un mécanisme pour demander à un pair l’adresse d’autre pairs, –trouver un nœud du réseau, –contacter de proche en proche d’autres nœuds jusqu’à en trouver acceptant une nouvelle connexion.
17 Insertion dans Gnutella Trouver un point d’entrée dans un Gwebcache Soit un nœud accepte la connexion, soit il donne une liste d’adresses de pairs (contacts récents ou voisins) Modèle de construction du réseau par des marches aléatoires à partir d’un sous- ensemble des nœuds...
18 Crawl de Gnutella
19 Un vieux problème Indexe centralisé : Google, Teoma, … –Qui a la page web contenant : dea, algorithmique ? Indexe hiérarchique : DNS –Quelle est l’adresse de ?
20 Tables de hachage distribuées Trouver le nœud possédant un fichier connaissant le nom exact du fichier (idem DNS). Construire un index distribué. Éviter les inondations. Solution à base de routage. Chaque nœud a une adresse logique ID. Fonction de hachage f : nom ---> ID.
21 ID Log n voisins Chord (Stoica et al., 2001) 0 A f(A) A A (A, IP) Routage en O(log n)
22 ID Log n voisins Chord (Stoica et al., 2001) 0 A f(A) (A, IP) Routage en O(log n) ID + 2 k ?
23 Chord : Hypercube Contraintes fortes sur le choix des voisins. Requêtes exactes. Autres solutions : –CAN (Ratnasamy et al., 2001) : tore –Tapestry(Zhao et al., 2001) : hypercube –Viceroy (Malkhi et al., 2002) : papillon –D2B (Fraigniaud et Gauron, 2003) : de Bruijn –Kademlia (Maymounkov et Mazières, 2003) : hypercube
24
25 Optimiser la diffusion Autorise les requêtes partielles. Similaire au réseaux ad hoc : –forte dynamicité –connaît ses voisins –on peut facilement connaître les voisins de ses voisins (Hellos) Contrainte : optimiser la diffusion, chaque nœud ne connaissant que ses voisins et les voisins de ses voisins.
26 Multipoints relais (ad hoc) 1 2 Sélectionner un minimum de relais pour atteindre tout le monde à deux sauts.
27 Règle de retransmission (ad hoc) d 1 2 a b c Si on n’a pas déjà reçu et on reçoit d’un MPR alors on retransmet. f
28 Multipoints relais (réseau logique ou filaire) 1 2 Chaque multipoint relais m de x retransmet à son secteur S(x,m). On retransmet au secteur plus ses MPRs.
29 Règle de retransmission (filaire) On retransmet si : –pas déjà reçu –reçu avec nb sauts supérieur –reçu avec même nb sauts mais d ’un nœud plus grand
30 Preuve d’exhaustivité Tout sommet à distance d de la source est atteint en d sauts.
31 Approche par spanner Construire un sous-graphe connexe avec peu d’arêtes. Ne retransmettre que sur les arêtes de ce sous-graphe.
32 Heuristique distribuée
33 Heuristique distribuée
34 Heuristique distribuée
35 Heuristique distribuée
36 Heuristique distribuée
37 Preuve Arêtes enlevées par une de leur extrémité : e 1 < … < e k. Le graphe privé de {e 1, …, e k } reste connexe. Quand x décide d’enlever e i, il reste un cycle dans son graphe à deux sauts qui ne contient que des arêtes >= e i.
38 Gain ? Crawls plus complets. Modèles de réseaux pair-à-pair.
39 Éthique Empêcher le partage de fichiers interdits. Empêcher certaines requêtes.