ROSA: Un Réseau de Recouvrement Adaptable, Auto-Organisant et Extensible

Récemment, il est devenu possible de faire tourner un système d’exploitation sur une architecture matérielle pour laquelle il n’était pas destiné. Cette technologie s’appelle la virtualisation. La virtualisation fait tourner chacun des OS invités dans un environnement fermé. Ces environnements virtualisés sont gérés par la couche de virtualisation qui doit être implémentée pour beaucoup de systèmes hôtes. Il doit également être en mesure d’exécuter un grand nombre d’OS. Par conséquent, la virtualisation peut se décomposer en trois couches, la couche host (ou la couche physique), la couche de virtualisation et de la couche guest.

Ce concept de virtualisation peut également être appliqué aux réseaux. Aujourd’hui, il existe une grande disparité dans les réseaux: Internet, le réseau GSM, les réseaux ad hoc, etc. Chacun de ces réseaux est basé sur différents supports physisques et différents protocoles. Il serait intéressant d’avoir un réseau virtuel qui unifie tous ces réseaux. En outre, la convergence des appareils électroniques numériques facilite le développement d’un tel réseau virtuel. En effet, les appareils, tels que les téléphones de nouvelle génération, sont à cheval sur plusieurs réseaux physiques (IP, WiFi et GSM/GPRS) et peuvent servir de passerelles entre ces différents réseaux physiques. Le modèle de ce réseau virtuel global est definit en trois couches: la couche physique, la couche virtuelle, et la couche de services. La couche physique est un ensemble de réseaux physiques et les différents dispositifs qui les composent. La couche virtuelle est un réseau virtuel construit au-dessus de ces réseaux physiques ainsi que l’interfaçage avec chacun de ces réseaux. La couche de services consiste en un ensemble de services fournis au dessus du réseau virtuel. Les services peuvent être des services de routage résilient, services de stockage fiable .

Une des principale conditions qu’un tel réseau virtuel doit respecter est l’extensibilité. Si l’on considère que beaucoup de dispositifs sont susceptibles de participer, il faut que le trafic supplémentaire généré soit le plus bas possible et si possible que ce traffic ne dépende pas du nombre de participants. Le réseau virtuel doit également avoir les mêmes qualités (résistance, etc.) que les réseaux sur lesquels il est déployé. Pour finir, ce réseau virtuel doit être facilement adaptable à un grand nombre de réseaux physiques différents.

Les réseaux de recouvrement sont de très bons candidats pour être utilisé comme un réseau virtuel. Un réseau overlay est un réseau construit sur un autre réseau. Pour chaque nœud du réseau overlay correspond un nœud du réseau sous-jacent. Ces réseaux de recouvrement ont été popularisés par les réseaux pair-à-pair dans les années 2000. Il existe de nombreux types de réseaux de recouvrement, certains sont extensibles, certains assurent une topologie résiliente, certains offrent un service d’acheminement fiable, etc. Néanmoins, aucun de ces réseaux existants ne peut être utilisé pour être le réseau virtuel, puisque ces réseaux sont généralement dédiés à un seul service et ne peuvent être déployées que sur un seul type de réseau physique. Afin d’utiliser un réseau de recouvrement en tant que réseau virtuel, celui-ci doit être facilement adaptable à un grand nombre de réseaux physiques différents et proposer de nombreux services. C’est suite à ces observations, que les objectifs de cette thèse ont été définis:
• concevoir et construire un réseau de recouvrement adaptable et facile à déployer sur de nombreux types des réseaux physiques;
• proposer un ensemble de services au dessus de ce réseau de recouvrement.

Les nœuds de ROSA sont organisés en clusters appelés grumeaux. Un grumeau est un ensemble de noeuds entièrement connectés. En théorie des graphes de tels objets sont appelés cliques. Une clique dans un graphe non orienté est un sous-ensemble de l’ensemble des sommets, tel que pour chaque pair de sommets du sous-ensemble, il existe une arête reliant les deux sommets. ROSA peut être représenté par un enchevêtrement de grumeaux. Chaque noeud de ROSA appartient à au moins un des grumeaux. A chacun des grumeaux de ROSA est associé une mesure appelée densité. Il y a plusieurs types de densités et c’est le choix de cette densité qui définit les caractéristiques de ROSA.

Chaque nœud de ROSA a un identifiant, une liste des voisins et une liste de grumeaux. L’identifiant d’un nœud est un entier appartenant à [1, 2¹²⁸ − 1]. Nous considérerons pour l’instant, que l’identificateur d’un nœud est choisi au hasard. La liste des grumeaux d’un nœud est une liste de grumeaux auquel le nœud appartient. La liste des voisins d’un nœud est une liste des identifiants et des adresses physiques des noeuds auxquels il est lié. Chaque noeud possède aussi un indicateur ’connecté’. Cet indicateur est défini à true si le noeud est connecté à ROSA et mis à false sinon. Pour compléter la représentation d’un nœud nous ajoutons une liste de grumeaux de faible densité et une liste des identificateurs des derniers messages reçus. Ces deux listes sont initialisées à vide. La premiere sera utilisée pour stocker la connaissance que chaque noeud a à propos des grumeaux de faibles densités dans son entourage. La seconde sera utilisée pour permettre à tous les nœuds d’un grumeau de recevoir un message, malgré les échecs de transmission .

Un voisin d’un nœud est représenté par le couple (id, phy) où id est l’identifiant de ce voisin dans ROSA et phy son adresse physique sur le réseau sur lequel ROSA est déployé. Un indicateur ’vivant’ complète cette représentation. Cet indicateur est défini sur true par défaut et sera utilisé pour la détection des pannes.

Un grumeaux possède un identifiant, la liste des identifiants des noeuds qui le composent et toutes les informations permettant à chacun de ces nœud de calculer sa densité. Les informations nécessaires pour calculer la densité dépendent de la définition de la densité choisie. L’identifiant d’un grumeau est un entier appartenant à [1, 2¹²⁸ − 1]. Un lump possède aussi une liste des adresses physiques des noeuds qui le composent.

Table des matières

1 State of the art
1.1 Introduction
1.2 The Overlay Networks
1.2.1 Definition
1.2.2 Classification of overlay networks
1.2.2.1 Participative / Non participative overlay networks
1.2.2.2 Manually organized / self-organizing overlay networks
1.2.2.3 Centralized / Decentralized Architectures
1.2.2.4 Structured / Unstructured overlay Networks
1.2.2.5 Conclusion
1.2.3 Classification of applications
1.2.3.1 Indexing and locating resources
1.2.3.2 Resource Sharing
1.2.3.3 Sharing CPU cycles
1.2.3.4 Routing
1.2.3.5 Security
1.2.3.6 Conclusion
1.2.4 Security of the overlay networks
1.2.4.1 Attacks manipulating the topology
1.2.4.2 Attacks manipulating routing
1.2.4.3 Attacks against applications
1.2.5 Reputation system
1.2.5.1 Introduction
1.2.5.2 Examples
2 The protocol ROSA
2.1 Principles of ROSA
2.2 The constants of ROSA
2.3 Representation of a node, a neighbor and a lump in the memory of a node
2.4 Protocol
2.4.1 Connecting to or initiating ROSA
2.4.2 Leaving ROSA
2.4.3 Sending a message to all the nodes of a lump
2.4.4 Joining a lump
2.4.5 Leaving a lump
2.4.6 Splitting a lump
2.4.7 Main loop of ROSA
2.4.8 Handling the broken links
2.4.9 Limiting the number of neighbors
2.4.10 Handling the lumps absorptions
2.4.11 Increasing the overall density
3 Distributed HashTable over ROSA
3.1 Introduction to the DHTs
3.1.1 Definition
3.1.2 Properties
3.1.3 Example
3.1.3.1 Chord
3.1.3.2 Kademlia
3.2 The chain of lumps
3.2.1 Description
3.2.2 Building and maintaining the ’chain of lumps’
3.2.2.1 Initializing the ’chain of lumps’
3.2.2.2 Reacting to the absorptions of a lump
3.2.2.3 Reacting to the split of a lump
3.2.2.4 Maintaining the predecessors and successors nodes identifiers lists
3.2.3 Using the ’chain of lumps’
3.2.3.1 Storing a <key, value> pair
3.2.3.2 Retrieving a value
3.2.3.3 Sending data packets to a given lump
3.2.3.4 Dealing with the nodes do not handle any keys
3.2.4 Operating proof
3.2.4.1 All the sub-intervals are allocated
3.2.4.2 A lump and its successor share at least a common node
3.2.5 Optimization
3.2.5.1 Load balancing
3.2.5.2 Reducing the number of sub-intervals

Cours gratuitTé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 *