Projet de Programmation Réseau Parcours de la DHT BitTorrent

Documents pareils
UE 8 Systèmes d information de gestion Le programme

Architecture distribuée

Voix sur IP Étude d approfondissement Réseaux

Agrégation de liens xdsl sur un réseau radio

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

La continuité de service

Plan de cette matinée

Configuration des VLAN

Mise en œuvre des serveurs d application

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Figure 1a. Réseau intranet avec pare feu et NAT.

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Projet audio. Analyse des Signaux ELE2700

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

06/11/2014 Hyperviseurs et. Infrastructure. Formation. Pierre Derouet

VPN TLS avec OpenVPN. Matthieu Herrb. 14 Mars 2005

Algorithmique et langages du Web

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Rapport du projet Qualité de Service

LES FONCTIONS DE SURVEILLANCE DES FICHIERS

Master d'informatique. Réseaux. Supervision réseaux

Étude de l application DNS (Domain Name System)

WSM la solution complète de provisionnement de bureaux virtuels

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

WEA Un Gérant d'objets Persistants pour des environnements distribués

Parcours en deuxième année

Projet Active Object

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

Présentation et portée du cours : CCNA Exploration v4.0

Mobile OGSI.NET: Grid Computing on Mobile Devices

Le cluster à basculement

Diplôme de Comptabilité et de Gestion. D é c r e t N d u 2 2 d é c e m b r e A r r ê t é d u 8 m a r s

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

(Third-Man Attack) PASCAL BONHEUR PASCAL 4/07/2001. Introduction. 1 Domain Name Server. 2 Commandes DNS. 3 Hacking des serveurs DNS

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Accéder à ZeCoffre via FTP

Partie 2 (Service de téléphonie simple) :

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

TP01: Installation de Windows Server 2012

QoS Réseaux haut débit et Qualité de service

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Prise en compte des ressources dans les composants logiciels parallèles

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Administration réseau Résolution de noms et attribution d adresses IP

White Paper - Livre Blanc

Supervision des réseaux

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Contrôleur de communications réseau. Guide de configuration rapide DN

Introduction aux Technologies de l Internet

Diagnostic adaptatif d'un flux d'alarmes par méta diagnostic distribué Application à la détection d'intrusions dans un serveur Web

COTISATIONS VSNET 2015

Méthodologie de conceptualisation BI

Licence Pro ASUR Supervision Mai 2013

Artica Proxy Appliance Haute disponibilite

Programmation Web. Introduction

Pair-à-Pair: Architectures et Services

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

«clustering» et «load balancing» avec Zope et ZEO

Présentation et portée du cours : CCNA Exploration v4.0

Haka : un langage orienté réseaux et sécurité

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Sécuristation du Cloud

données à caractère personnel (ci-après "la LVP"), en particulier l'article 30 ;

Haute disponibilité avec OpenBSD

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Le Tunneling DNS. P.Bienaimé X.Delot P.Mazon K.Tagourti A.Yahi A.Zerrouki. Université de Rouen - M2SSI. 24 février 2011

Logiciel HP StorageWorks Enterprise Virtual Array (EVA) Fiche technique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Préparer un état de l art

Fonctions Réseau et Télécom. Haute Disponibilité

ANICOTTE Guillaume GUFFROY Matthieu LIMA Juliette SALLOUH Chamsseddine CAHIER DES CHARGES SI 28

LES ACCES ODBC AVEC LE SYSTEME SAS

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

Architecture des ordinateurs

Les formations. Administrateur Systèmes et Réseaux. ENI Ecole Informatique

Parallélisme et Répartition

Supervision de réseau

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

FORMATION WS0803 CONFIGURATION ET DEPANNAGE DE L'INFRASTRUCTURE RESEAU WINDOWS SERVER 2008

JOnAS Day 5.1. Clustering

2. DIFFÉRENTS TYPES DE RÉSEAUX

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

//////////////////////////////////////////////////////////////////// Administration bases de données

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

SUGARCRM MODULE RAPPORTS

Introduction à la programmation concurrente

Leica Geosystems Licences des logiciels Introduction & Installation

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

Installation Guide Serveur d impression et de stockage multifonctions à 2 ports USB 2.0 haute vitesse Manuel de l utilisateur

RMI le langage Java XII-1 JMF

Transcription:

Projet de Programmation Réseau Parcours de la DHT BitTorrent Guillaume Matheron, Yann Ramusat 1 Description du programme Le programme effectue un parcours de la DHT le plus exhaustif possible (environ un million de noeuds) en partant du bootstrap "router.bittorrent.com" de BitTorrent. Le réseau ainsi découvert est stocké au format csv pour pouvoir être ensuite étudié à l aide d outils tels que Octave ou Matlab. Comme la taille des données que le programme traite est conséquente, le code optimise le plus possible les accès au réseau et la place occupée par les données en vol. 1.1 Choix du langage Notre programme est écrit en C++. Ce choix est motivé par plusieurs raisons, la première est sa proximité avec le langage C que nous avons utilisé en cours. Ceci nous a permis d approfondir et de réutiliser le plus efficacement possible les codes que nous avions eu à faire en TD. Le C++ propose aussi de nombreuses structures de données implémentées efficacement (set, list, vector,...) et des primitives d entrées-sorties très pratiques (cout, streams) qui nous ont permis de plus nous concentrer sur le sujet en lui-même et moins sur la gestion des structures de données annexes. A noter que les threads sont plus faciles à manipuler en C++ qu en C et l utilisation de l orienté objet permet de plus facilement collaborer à deux sur un projet. Le C++ est un langage standard, très répandu, ce qui apporte une certaine sécurité quant à la portabilité du code. Finalement, le C++ semble être le langage le plus approprié pour mener à bien ce projet, nous permettant le plus de liberté possibles tout en restant dans la lignée du cours. 1.2 Architecture générale Le programme a accès à un pool de threads (200) pouvant chacun gérer indépendamment une liste de 300 noeuds distants à contacter. 1

L objectif de la classe explore est de dispatcher les noeuds distants (et non encore visités!) à contacter aux threads. Chacun sera ensuite chargé (fonction work()) de contacter les noeuds, de récupérer leur éventuelle réponse et de la traiter. Les données partagées par les différents threads sont sécurisées à l aide de mutex et de conditions. C est notamment le cas de la queue où résident les noeuds distants en attente d être traités. Tous les threads y rajoutent les nouveaux voisins qu ils viennent de recevoir. Si la queue est vide, retirer un objet fait faire une attente passive. Ceci permet d optimiser l utilisation du processeur. 1.3 Partie réseau de l implémentation Chaque thread utilise sa propre socket IPv4 pour contacter les noeuds qui lui ont été attribués et retourne les informations reçues au fur et à mesure qu il les obtiens. La requête utilise le champ adéquat pour détecter les voisins disponibles implémentant la version BEP32 du protocole. Nous avons créé plusieurs classes destinées à manipuler les données du réseau : 1. CNI (Compact Node Information) qui contient les informations de la DHT associées à chaque noeuds 2. IP pour rendre la manipulation des IP plus simples. 3. UDP qui permet d effectuer toutes les primitives d envoi de messages. 1.4 Stockage des informations Etant donné que le programme parcours en moyenne un million de noeud de la DHT à chaque parcours, régulièrement, les données collectées sont stockées dans le fichier de sortie généré automatiquement au début du programme en fonction de la date actuelle. Exemple de sortie : 2015_11_18_19_56_20.csv. En effet, le programme maintient en mémoire un ensemble (via la structure de données set) de statistiques de chaque noeud déjà contacté. Ces informations ne sont plus utiles pour le programme et comme les statistiques sont vouées à être étudiées grâce à un script matlab, périodiquement, ces données sont stockées dans le fichier de sortie. 2 Statistiques obtenues 2.1 Méthodes d exploration Méthode 1 On envoie exactement une requête à chaque noeud découvert. Il s agit d un find_nodes avec un identifiant aléatoire. Les noeuds restants sont ajoutés à la file. Le programme se termine quand la file est vide. 2

2.2 Statistiques temporelles Nous avons lancé un script qui explore la DHT via la méthode 1, avec un cadençage de 200 threads contactant 300 noeuds chacun, acceptant des réponses durant 2 secondes avant de fermer le socket. Figure 1 Au cours d une semaine environ (en moyenne uun échantillon toutes les 4 minutes). En vert : nombre d identifiants récoltés (= nombre de noeuds contactés). En bleu : nombre de noeuds ayant répondu. Ce cadençage très rapide a permis d explorer beaucoup de noeuds très rapidement et de faire des statistiques avec une grande fréquence temporelle. Malheureusement, les buffers UDP ont parfois été saturés sur le serveur VPS utilisé. Il est impossible d augmenter leur taille, le serveur étant une machine virtuelle. 3

Figure 2 Au cours de la même période que la Figure 2.2. En bleu : fraction de noeuds contactés répondant aux requêtes (environ 35%). En vert : fraction de noeuds contactés implémentant BEP-32 ( 100), c est-à-dire environ 0.3%. Pour tester si un noeud implémente BEP-32, on lui envoie une requête find_nodes avec un champ want demandant des ipv4 et des ipv6. On compte alors les réponses contenant un champ nodes6. 2.3 Statistiques plus exhaustives Le problème principal des statistiques ci-dessus est le nombre d erreurs UDP. La vitesse d envoi rapide cause beaucoup d erreurs de buffer. De plus, certains noeuds man connectés peuvent ne pas être trouvés, car on envoie uniquement une requête par noeud. Pour remédier à ces problèmes, nous avons lancé le programme avec de nouveaux paramètres : cadence plus faible et envoi de 10 requêtes à chaque noeud. 4

Figure 3 Au cours d une semaine environ (en moyenne uun échantillon toutes les 4 minutes). En vert : nombre d identifiants récoltés (= nombre de noeuds contactés). En bleu : nombre de noeuds ayant répondu. Figure 4 Au cours de la même période que la Figure 2.3. En bleu : fraction de noeuds contactés répondant aux requêtes (environ 30%). En vert : fraction de noeuds contactés implémentant BEP-32 ( 100), c est-à-dire environ 0.1%. Ces résultats sont proportionnellement proches de ceux obtenus avec les autres paramètres. On en déduit qu ils sont assez représentatifs. 3 Conclusions Cette exploration de la DHT de Kadelmia donne plusieurs résultats : Le nombre de noeuds actifs est environ doublé entre 5h et 17h (heure de Paris) ; Le nombre de noeuds actifs et accessibles à un instant donné est de l ordre de grandeur de 2 millions ; Le nombre de noeuds dont l identifiant est connu est de l ordre de grandeur de 10 millions. 5

La fraction de noeuds implémentant BEP-32 est de l ordre de 0.1%. Les noeuds les plus actifs sont plus suceptibles l implémenter BEP-32 (lors des périodes où peu de noeuds sont actifs, la fraction de noeuds implémentant BEP-32 augmente). Le nombre de noeuds implémentant BEP-32 est de l ordre de 3000. 6