Gestion des communications mobiles dans les réseaux P2PSIP hiérarchiques basée sur IPv6

Gestion des communications mobiles dans les réseaux P2PSIP hiérarchiques basée sur IPv6

Réseaux pair-à-pair et protocole SIP 

 Dans les premiers temps de l’internet, le partage de données se faisait suivant le mode Client/Serveur. Les ressources sont stockées au sein d’une entité centrale (serveur). Lorsqu’un client souhaite trouver une ressource, il envoie une requête vers le serveur qui, après un temps de recherche dans sa base de données lui envoie en retour la ressource demandée. Les internautes devenant de plus en plus nombreux, les serveurs commençaient à atteindre leurs limites notamment en termes de capacités de stockage, de vitesse de traitement, de temps d’accès à cause des accès concurrents, etc. Il faut ajouter à cela le risque de panne du serveur qui provoquerait l’arrêt de tout le processus et la non disponibilité des ressources. Pour éviter de tels scénarios, l’idée de répartir les tâches du serveur à plusieurs entités à été développée et mise en place. C’est le concept de systèmes distribués qui sont le soubassement des réseaux pair-à-pair. Ainsi, dans ce chapitre, il s’agit pour nous de donner un aperçu sur les systèmes distribués, et puis de détailler le fonctionnement des réseaux pair-à-pair, du protocole SIP et des réseaux pair-à-pair SIP sur lesquels se fonde notre travail.

Les systèmes distribués 

 Généralités sur les système distribués

 Un système distribué est un ensemble d’entités (ordinateurs, mémoires, processus, …) indépendantes, communiquant entre elles et vues par les utilisateurs comme une seule entité [Tanen2007]. Le rôle essentiel d’un système distribué est d’éviter de tout centraliser au sein d’une entité appelée noeud et donc de répartir les tâches initialement réservées aux serveurs aux autres constituants du système. Ceci a comme avantages immédiats le dés-engorgement des serveurs centraux et ainsi permet d’améliorer le temps de réponse. Ces tâches sont entre autres le stockage et le traitement. En distribuant les ressources et les tâches à plusieurs noeuds, le système devient plus performant. Toutefois, dans les systèmes distribués, les tâches bien qu’étant réparties sont coordonnées. L’échec de l’exécution d’une d’entre elles bloque l’achèvement des autres dépendantes de cette dernière. Pour éviter cette situation, les noeuds doivent être autonomes et pouvoir fonctionner indépendamment  des autres. En d’autres termes, un système distribué doit mettre en place des stratégies pour permettre la continuité du service même lorsqu’un de ses composants ne fonctionne plus. C’est la notion de tolérance aux pannes. 

 Tolérance aux pannes 

Dans les systèmes distribués, plusieurs entités fonctionnent de manière coordonnée pour accomplir une tâche donnée. La panne d’un composant perturbe la bonne exécution de la tâche. Une entité est en panne lorsqu’elle se trouve dans un état qui l’empêche de remplir sa mission. Les composants n’ayant pas les mêmes performances techniques, encore moins la même durée de vie, il est important, voire indispensable de mettre en place des solutions pour éviter que tout un système soit bloqué, à cause d’une défaillance d’un de ses éléments constitutifs. Ces solutions constituent les algorithmes de tolérance aux pannes. D’après J. C. Laprie [Lap1988], la tolérance aux pannes est l’ensemble des techniques mises en oeuvre dans un système pour lui permettre de continuer à fonctionner même en présence d’une panne d’un de ses composants. 3 Les réseaux P2P L’acronyme peer to peer (P2P) vient du mot pair-à-pair qui traduit une relation d’égal à égal entre les noeuds (ordinateurs, processeurs, téléphones, etc.) du réseau. En d’autres termes, dans les réseaux pair-à-pair, il n’y a pas de rôles réservés à une catégorie de noeuds. Tous les noeuds peuvent exécuter les mêmes fonctions. Le principe du pair-à-pair est de mettre en relation des programmes, des ordinateurs pour partager des ressources directement sans intermédiaires [Fessa2006], ceci grâce à la construction d’un réseau virtuel au dessus du réseau physique. Ainsi, lorsque les liens virtuels 1 sont établis entre la source de la requête (demandeur de service) et le destinataire, les communications se passent directement entre les concernés. Les réseaux pair-à-pair étant des systèmes distribués, ils héritent de la robustesse 2 de ces derniers et de la haute disponibilité des ressources. Ils sont extensibles, c’està-dire qu’un noeud a juste besoin de se connecter à un autre pour, à son tour, faire partie du réseau. Ce sont donc des systèmes ouverts. A côté de ces nombreux avantages du pair-à-pair, il est cependant important de noter qu’ils sont souvent utilisés par des utilisateurs mal intentionnés pour véhiculer des virus, des logiciels espions, des vidéos non recommandées, etc. Le tout premier réseau pair-à-pair est Napster. Il a été créé en 1999 avec une structuration centralisée. Un serveur central est utilisé pour la recherche des ressources. Pour localiser une ressource, Napster fait une table de correspondance entre d’une part, le nom du fichier et celui du client et, d’autre part, celui du client et l’adresse IP de l’utilisateur. Ce qui d’ailleurs pose le problème de l’anonymat dans Napster. De par leur mode de fonctionnement, les réseaux pair-à-pair sont classés en réseaux non structurés et en réseaux structurés. 1. lien virtuel : est un lien qui met en relation directe deux noeuds qui peuvent être géographiquement très éloignés 2. robustesse : la panne d’un noeud n’empêche pas au système de continuer à fonctionner 

 RÉSEAUX PAIR-À-PAIR ET PROTOCOLE SIP 

 Les réseaux P2P non structurés 

Un réseau P2P est non structuré si les liens entre les noeuds sont établis de façon arbitraire [Man2014]. Dans ce cas, pour faire partie du réseau, un nouveau pair doit connaître au moins un membre du réseau auquel se connecter ou à défaut envoyer sur le réseau un message de diffusion (broadcast) pour trouver les pairs déjà connectés. Dans ce type de cas, les requêtes et réponses se font par inondation. Chaque pair envoie la requête à ses voisins qui l’évaluent puis y répondent si toutefois ils disposent de la ressource demandée. Sinon ils l’acheminent à leurs voisins, ainsi de suite suivant un nombre maximal de sauts ou un temps de survie appelé time to live (TTL) . Parmi les réseaux pair-à-pair non structurés, nous pouvons citer quelques exemples comme Gnutella, BitTorrent, etc. Gnutella : proposé en 2000 par Tom Pepper et Justin Frankel [Mar2003], Gnutella est un système décentralisé qui assure l’anonymat de ses utilisateurs. Depuis sa version 0.6, il a apporté une grande amélioration dans la gestion de la bande passante notamment en introduisant les ultrapeers (ou superpeers) avec les protocoles GUESS et GWebCache [Bud2003]. Les serveurs sont répartis en deux catégories : les ultrapeers qui sont des serveurs stables ayant une bonne connectivité et les clients (ou noeuds feuilles). Les noeuds feuilles sont rattachés à trois (3) ultrapeers. Chaque ultrapeer peut prendre jusqu’à 30 autres ultrapeers et 30 à 45 clients. Les ultrapeers indexent le contenu des clients auxquels ils sont rattachés. Ainsi, lorsqu’un client interroge un ultrapeer la requête peut atteindre 30 autres clients. Si la requête est sans succès, l’ultrapeer la retransmet aux 30 autres ultrapeers éventuels auxquels il est connecté, et la recherche atteint le contenu de 900 clients. BitTorrent : c’est un réseau peer to peer créé dans le but d’avoir une bande passante plus grande pour les échanges et partages de fichiers. Il est basé sur le principe suivant : tout utilisateur qui télécharge une partie d’un fichier devient automatiquement serveur et peut partager la partie déjà téléchargée avec d’autres. Avec BitTorrent, l’utilisateur a la possibilité d’effectuer un téléchargement à partir de plusieurs sources à la fois[Fessa2006]. Il est également possible d’interrompre le téléchargement pour le reprendre plus tard. Son fonctionnement est régi par deux éléments essentiels : le fichier .torrent et le tracker 3 . Le premier est indispensable pour effectuer les téléchargements. Il contient en effet toutes les informations nécessaires au téléchargement (nom du fichier recherché, type de fichier, etc.). Pour en disposer, un client doit le rechercher sur internet ou l’obtenir d’un autre client. Quant au tracker, il permet d’identifier et de connecter les clients entre eux. Lorsqu’un client est démarré, il dialogue avec le tracker pour le renseigner sur l’état d’avancement du téléchargement. Le tracker en réponse lui envoie une liste d’autres clients ou sources (par HTTP ou HTTPS) qui sont sur le même fichier. A intervalle de temps régulier, le client met à jour le tracker en indiquant ce qu’il a déjà téléchargé, et en retour le tracker lui redonne une nouvelle liste de clients auprès desquels il peut télécharger les parties manquantes. De façon générale, les réseaux pair-à-pair non structurés sont caractérisés par la non garantie du succès de la recherche mais aussi par une surcharge de la bande 3. tracker : est un serveur qui aide à la communication entre pairs dans le logiciel BitTorrent passante à cause des time-to-live. 

 Les réseaux P2P structurés 

Un problème fondamental des réseaux peer to peer est comment localiser efficacement un noeud stockant des données recherchées. Les réseaux P2P structurés ont la particularité d’organiser le réseau en une topologie routable, c’est-à-dire que chaque pair dispose d’un identifiant permettant de le localiser en suivant un chemin déterministe. Ils sont régis par l’utilisation d’une table de hachage distribuée. La connexion d’un noeud à ces types de réseaux est souvent plus longue [Fessa2006] car nécessite l’établissement de listes de contacts appelées tables de routages. Grâce à ces tables de routage et à l’existence d’un identifiant pour chaque pair, le succès de la recherche est garanti. En plus, les réseaux structurés ont l’avantage d’être moins pollueurs que les réseaux non structurés en raison du routage déterministe, contrairement au routage par inondation dans les non structurés. Il existe beaucoup de réseaux structurés. Ils se distinguent par la simplicité qu’un noeud a pour intégrer ou quitter le réseau mais aussi pour assurer un routage efficace. Tapestry : inspiré du maillage de Plaxton 4 , Tapestry [Ben2004] utilise un mécanisme de routage assez semblable à celui de Pastry [Ant2001]. Par contre, l’identifiant unique des noeuds est codé sur 160 bits contrairement à Pastry où il est sur 128 bits. Chaque noeud maintient une table de routage à plusieurs niveaux. Un niveau contient les adresses des noeuds qui possèdent le même préfixe que le noeud courant. Chaque noeud maintient un ensemble de pointeurs sur les noeuds voisins. Pour augmenter la robustesse et l’extensibilité du réseau, Tapestry utilise plusieurs procédés. Il s’agit entre autres de l’augmentation de la réplication afin d’accroître la décentralisation, de l’envoi de messages périodiques pour garder les caches à jour, de l’utilisation du surrogate routing 5 , etc. Tapestry a comme avantages le fait que son réseau recouvrant est proche de la topologie du réseau physique. Toutefois il a l’inconvénient de devoir gérer par noeud une quantité importante d’informations nécessitant une mise à jour. CAN : Content Adressable Network (CAN) est un réseau qui repose sur un espace cartésien de dimension d [Rat2001]. Chaque noeud occupe une portion de cet espace et possède un nombre de voisins en O(d). Plus la dimension est grande, plus le routage est rapide. En revanche, le coût de maintien des tables de routage est élevé. Chaque noeud est responsable d’un espace appelé zone. Le noeud responsable stocke toutes les paires (clé, identifiant) se trouvant dans sa zone selon la fonction de hachage utilisée. Chaque clé est représentée sous forme de points ayant d coordonnées c = (c1, c2, ..cd). Le routage d’une clé vers un noeud se fait en envoyant le message vers le voisin qui a les coordonnées les plus proches de celles du noeud recherché. Les avantages de CAN sont multiples. En effet, il offre la possibilité de choisir une route de remplacement en cas de panne de noeuds, la possibilité d’utiliser plusieurs 4. le maillage de Plaxton consiste à répartir de manière uniforme les noeuds sur le réseau. Il utilise pour cela un algorithme de hachage tel que SHA-1 pour les identifier 5. surrogate routing : consiste à doubler chaque entrée de la table de routage et à utiliser une route de remplacement en cas de défaillance de la route principale. 10 3. LES RÉSEAUX P2P CHAPITRE 1. RÉSEAUX PAIR-À-PAIR ET PROTOCOLE SIP fonctions de hachage, ce qui permet de retrouver un même objet sur plusieurs noeuds, etc. Il permet également de mettre en cache les objets les plus fréquemment sollicités afin d’accroître le temps de réponse. Toutefois, CAN surcharge beaucoup le réseau car avec son système de mise en cache, les fichiers réputés font l’objet de plusieurs sollicitations. Chord : c’est un réseau structuré avec une topologie en anneau. Il utilise la fonction cryptographique SHA − 1 [Stoic2001] pour la détermination des identifiants des noeuds avec un nombre maximal de bits d’adressage de m = 160 bits. Chaque pair dispose d’un identifiant obtenu par hachage sur son adresse IP. Les identifiants des ressources stockées sont générés par hachage sur le nom de la ressource. Les informations sont représentées sous forme de couple (id, valeur) avec id représentant l’identifiant du pair sur lequel se trouve la ressource valeur. Avec un nombre de bits d’adressage de m = 160, il est possible d’avoir jusqu’à 2 160 pairs dans l’anneau Chord. Or le plus souvent, il n’y en a pas autant dans le réseau. En d’autres termes, la plupart des identifiants obtenus ne correspondent pas à des noeuds réellement existants. C’est pourquoi Chord définit une fonction successeur() qui permet de déterminer les successeurs d’un noeud sur l’anneau. Pour un noeud dont l’identifiant est ID, l’ensemble {ID + 20 , ID + 21 , ID + 22 , …, ID + 2m−1} représente respectivement les identifiants de son 1 ier , 2 ieme , 3 ieme, etc., mieme successeur sur l’anneau orienté dans le sens des aiguilles d’une montre. Chaque pair de l’anneau maintient une table de successeurs de longueur log2(n) avec n = 2m étant le nombre de noeuds dans le réseau [Furn2013]. L’identifiant du k ieme successeur d’un pair dont l’identifiant est P est déterminé par : ID(k) = (P + 2k−1 ) modulo 2 m, avec (0 < k ≤ m). Lorsque [(P+2k−1 ) modulo 2 m] ne correspond pas à l’identifiant d’un noeud existant, le successeur est alors le premier noeud de l’anneau dont l’identifiant est ≥ [(P + 2 k−1 ) modulo 2 m]. La figure 1.1 montre la table de successeurs du noeud .

Table des matières

Remerciements
Résumé
Abstract
Table des figures
Liste des tableaux
Liste des abréviations
Introduction générale
1 Réseaux pair-à-pair et protocole SIP
1 Introduction
2 Les systèmes distribués
2.1 Généralités sur les système distribués
2.2 Tolérance aux pannes
3 Les réseaux P2P
3.1 Les réseaux P2P non structurés
3.2 Les réseaux P2P structurés
3.3 Méthodes de routage dans les réseaux P2P structurés
4 Le protocole SIP
4.1 Les applications clientes
4.2 Les applications serveurs
4.3 Types de messages SIP
5 Les réseaux P2PSIP
5.1 Les concepts du P2PSIP
5.2 Architectures P2PSIP
Réseaux P2PSIP hiérarchiques
.1 Architectures P2PSIP hiérarchiques à un domaine de recouvrement
.2 Architectures P2PSIP hiérarchiques à plusieurs domaines de recouvrement
Conclusion
2 Solutions de gestion de la mobilité dans IPv et Réseaux pair-à pair
1 Introduction
2 Solutions de gestion de la mobilité dans IPv
2.1 Généralités
2.2 La mobilité
2.3 Problèmes inhérents à la mobilité IPv
3 Gestion de la mobilité et réseaux pair-à-pair
3.1 Mobilité physique
3.2 Mobilité logique
4 Conclusion
3 Etudes comparatives des solutions de mobilité sur IPv et des architectures P2PSIP hiérarchiques
1 Introduction
2 Etude comparative des solutions de la mobilité dans IPv
2.1 Calcul des coûts de mise à jour et des délais de handover dans FMIPv
2.2 Calcul des coûts de mise à jour et des délais de handover dans,FPMIPv
2.3 Comparaison des modes prédictif et réactif dans FMIPv et FPMIPv
3 Etude comparative des différents types d’architectures P2PSIP hiérarchiques
3.1 Architectures P2PSIP hiérarchiques à un domaine de recouvrement
3.2 Architecture hiérarchique à plusieurs domaines de recouvrement
3.3 Comparaison des différentes architectures en fonction des méthodes de localisation
4 Synthèse des études comparatives
5 Conclusion
4 HP AMMIP
: une architecture pour la gestion de la mobilité dans
un réseau P2PSIP hiérarchique basé sur IPv
1 Introduction
2 Synthèse des travaux connexes
3 Structuration de HP AMMIP
3.1 Fonctionnement
3.2 Construction du réseau
3.3 Routage et localisation
4 Gestion de la mobilité
4.1 Gestion de la mobilité logique
4.2 Gestion de la mobilité physique
5 Conclusion .
5 Stratégies de dimensionnement et de tolérance aux pannes de HP AMMIP v
1 Introduction
2 Dimensionnement de l’architecture
2.1 Dimensionnement en termes de capacités mémoire
2.2 Dimensionnement en termes de capacités de traitement
2.3 Stratégies de déploiement
3 Stratégie de tolérance aux pannes
3.1 Détection d’une panne par un LMA
viii TABLE DES MATIÈRES
TABLE DES MATIÈRES
3.2 Détection d’une panne par un MAG
3.3 Détection d’une panne par un NMS
4 Coûts de la stratégie de tolérance aux pannes
4.1 Panne d’un LMA
4.2 Panne d’un MAG
4.3 Panne d’un NMS
5 Limites de HP AMMIP V
Conclusion
Performances analytiques et expérimentales de HP AMMIP
1 Introduction
2 Performances analytiques sur le délai de handover .
2.1 Délais de handover logique
2.2 Délais de handover physique
3 Comparaison analytique de HP AMMIP v avec SARP
4 Evaluation par simulation des performances de HP AMMIP v
4.1 Environnement de simulation
4.2 Métriques de mesure
4.3 Paramètres de simulation
4.4 Résultats de simulation
5 Conclusion
Conclusion générale et perspectives
Bibliographie

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *