Home
deploiement d`un moteur peer to peer embarque sur routeur
Contents
1. C x f http 192 168 1 1Mtorrent index php cls FileList Co eHKEL are viewing page 1 You Ho E El nl TE EM E Tcha c 0 01 16 17 59 191KB 1 juju tet DL 0 01 16 17 59 52B 1 libxmirpc 50 3 06 DL 0 01 16 17 59 119 19 KB zl 586decembre2008GalaENSEIRBH14 zip DL 0 01 16 17 59 240 83 MB 1 libxmirpe so 3 DL 0 01 16 17 59 48 24 KB 1 seb txt DL 0 01 16 17 04 518 1 text ct DL 0 01 16 12 04 28B 1 LIB DL 0 01 16 11 36 2 75 MB 65 libxmirpc_client so 3 DL 0 01 16 11 34 24 60 KB 1 testit DL 0 01 16 09 47 40B 1 eme DI DL 0 01 15 09 26 39B 1 pid c DL 0 12 17 15 15 580B 1 index html DL 0 01 01 03 20 335 B gli essential 20071007 tar bz2 DL 0 01 01 03 20 OB 1 586decembre2008GalaENSEIRBH14 zip DL 0 01 01 03 20 OB 1 EJ Torrent Search AAA Clear Filter and Search Results x Recherche de l h te files a Figure 10 Listes des fichiers disponibles sur le tracker En cliquant sur DL correspondant au fichier le telechargement se lance tout seul Cependant des probl mes sont visibles lorsque l utilisateur demande les informations du fichier en cliquant sur le nom du fichier et lorsque l utilisateur demande voir les commentaires La page affich e est vide Comme le temps manquait nous n avons pas pu corriger ce probl me En revanche la recherche de fichiers fonctionne 2 Liste des fichiers disponibles sur le routeur Les fichiers sont t l charg s sur la cl USB du
2. comments html On enl ve les menus login my torrents upload que le principal assign var dl_page value dl_pagelregex_replac assign var dl_page value dl_pagelregex_replac assign var dl_page value dl page regex replac assign var dl_page value dl page regex replac assign var dl_page value dl page regex replac assign var dl_page value dl_pagelregex_replac assign var dl_page value dl_pagelregex_replac lassign var dl_page value dl_pagelregex_replac s F 1 ist se s Fi ist se index php cls lt FileList files torrents index php cls AddT amp torr admin pour ne laisser xogin mn 2 ign 2 My Torrents pload info html Tracker Info dmin sers 31 assign var lt dl page value dl_page regex_replace LINK TEMPLATE assign var dl_page value dl_pagel regex_replace clickable text goes assign var dl_page value lt dl page regex replace END OF TEMPLATE Affichage de la page dl_page lt div gt ii Affichage des fichiers locaux sur le routeur wt cls Localfiles cls php lt php This file is part of wTorrent wTorrent is free software you can redistribute it and or modify it under the terms of the GNU General Public License
3. PORT announce s coupe torrent xmlrpc localhost load start local_directory coupe torrent fi done fi 15 Ce script est globalement plus simple comprendre que le pr c dent En effet les m mes commandes sont utilis es et d autres ont tout simplement t enlev es Les variables du d but sont les m mes que pr c demment Elles ont la m me fonction et peuvent tre modifi es selon les param tres de la machine utilis e Apr s avoir v rifi que le dossier contenant les m dias existe bien il s agit de v rifier que chaque fichier poss de bien un torrent qui lui est associ Si a n est pas le cas le torrent est cr comme pr c demment avec cTorrent puis rTorrent est lanc en utilisant Xmirpc iii Taches Cron Ces deux scripts devront tre ex cut s p riodiquement pour v rifier l ajout de nouveaux fichiers a partager et cela sans intervention des diff rents utilisateurs Le principe d utiliser une tache cron r pond tout a fait a la problematigue En effet crontab est le nom du programme sous Linux qui permet d editer des tables de configuration du programme cron c est a dire la liste des taches qui doivent tre lanc es horaire fixe La table de configuration des t ches p riodiques est situ e dans etc Il suffit donc d diter le fichier letc crontab pour y ajouter l information sur le script ex cuter Cela se pr sente de la fa on suivante 10 user usr local bin xbnbt scri
4. export PATH lt home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchai n mipsel gcc4 1 2 bin PATH export LDFLAGS lt L home seb Projet Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export CXXFLAGS Os I home seb Projet Torrent mips include I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 include export CPPFLAGS Os I home seb Projet Torrent mips include export CFLAGS lt Os Incurses lsigc 2 0 lcurl ltorrent I home seb Projet Torrent mips include export LIBS lncurses lsigc 2 0 L home seb Projet Torrent mips lib Lewel lporrent export STUFF LIBS lt L home seb Projet Torrent mips lib lsigc 2 0 lcurl l crrent export STUFF CFLAGS lt I home seb Projet_Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 inlude I home seb Projet_Torrent mips include sigc 2 0 I home seb Projet_Torrent mips lib sigc 2 0 include export STUFF CXXFLAGS lt I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel gcc4 1 2 inlude I home seb Projet_Torrent mips include sigct 2 0 I home seb Projet Torrent mips lib sigctt 2 0 include configure host mipsel linux oldincludedir lt home seb Projet Torrent mips include with xmlrpc c enable debug no prefix home seb Projet_Torrent mips Compilation manuelle des fichiers qui ne supportent pas l optio
5. usr local lib libsigc 2 0 0 la alors qu il devrait le chercher dans les libraries de Kamikaze Ceci g n re donc une erreur C est pourquoi il faut effectuer le link manuellement Le script de compilation que nous avons crit effectue le link apr s compilation de tous les fichiers Sources v Libxml Pour que php puisse g rer les fonctions xml il a t n cessaire de compiler la libxml Pour pouvoir tre compil e il a t n cessaire d ajouter la variable CFLAGS l option Icurl qui permet d ajouter les fonctions curl La version que nous avons utilis e est libxml2 2 7 2 disponible l adresse http xmlsoft org Par d faut les options de debugage sont activ es Nous les avons d sactiv es pour que les binaires utilisent moins de place en m moire C est pourquoi dans le script de compilation configure comporte l option with debug no vi PHP Nous avons choisi d installer PHP pour pouvoir repondre au mieux aux objectifs Cependant PHP n est pas disponible dans les d p ts de Kamikaze c est pourquoi nous l avons recompile La version utilis e est php 5 2 8 Pour pouvoir compiler PHP il a fallu ajouter un certain nombre d options configure dans le script de compilation enable sockets cette option permet d ajouter le support des sockets PHP Il peut ainsi dialoguer avec d autres serveurs enable fastcgi cette option ajoute le support fastcgi Le protocole Fastcgi est utilis entre Lighttpd
6. FTP il faut rentrer sont adresse IP et s lectionner le port 21 Les identifiants de connexion sont les suivants Login loutre Mot de passe loutre 5 Les scripts Deux scripts ont d tre crits pour faciliter la recherche de nouveaux fichiers multim dias ainsi que Pajout des torrents correspondant sur le tracker Le premier script est install sur tous les routeurs tandis que le second concerne le serveur Dans un souci d automatisation totale et pour que l utilisateur ne doive pas ex cuter ces scripts de lui m me ils seront de type Cron c est dire qu ils seront ex cut s p riodiquement et automatiquement sans intervention de l utilisateur i Script des routeurs Ce script devra d une part reperer dans le dossier contenant les fichiers a partager s il y a des nouveaux m dias Cela s effectuera en regardant si chaque media poss de un torrent qui lui est associ Pour chaque nouveau fichier le torrent associ sera cr puis envoy sur le serveur ftp Enfin rtorrent sera lanc pour que le tracker prenne en compte le nouveau fichier D autre part pour chaque fichier torrent d j existant sa presence sur le serveur ftp sera v rifi e Dans le cas o le fichier n y est pas il sera envoy et rtorrent sera lanc pour que le tracker le prenne galement en compte L algorithme auquel r pond ce script est le suivant 12 D but du script r sence de nouveaux fichiers V rification de
7. I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 inlud I home seb Projet_Torrent mips include sigc 2 0 T home seb Projet_Torrent mips lib sigc 2 0 include MT command peer o MD MP MF deps command peer Tpo c o command peer o command peer cce make GA src Link final mipsel 1inux g Os I home seb Projet Torrent mips include I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 include DNDEBUG I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel gcc4 1 2 inlud I home seb Projet Torrent mips include sigctt1 2 0 T home seb Projet_Torrent mips lib sigc 2 0 include I usr include L home seb Projet_Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib o rtorrent command download o command events o command file o command helpers o command local o command network o command peer o command tracker o command scheduler o command ui o control o globals o main o option parser o signal handler o src ui libsub ui a src core libsub core a src display libsub display a 35 src input libsub input a src rpc libsub_rpc a src utils libsub utils a lncurses leige 2 0 L home seb Projet_Torrent mips lib lcurl ltorrent L home seb Projet_Torrent mips l
8. Le client officiel porte le m me nom que le protocole Cependant comme ce dernier est un protocole libre de nombreux autres clients alternatifs ont t d velopp s Parmi les plus populaires nous pouvons citer uTorrent Azureus ABC ou encore BitTornado Cependant comme ce client est destin tre install sur des routeurs poss dant de faibles ressources et tre utilis distance il ne devait pas tre choisi au hasard Le choix s est porte sur rTorrent C est un client BitTorrent l ger en mode console crit en C et dont l interface est construite avec la biblioth que ncurses ll est de plus adapt pour tre utilis avec des outils comme screen ou dtach L interface de rTorrent est tr s l g re et ne surcharge pas l activit du processeur contrairement certains clients BitTorrent lourds Enfin un simple fichier texte rtorrent rc plac dans le r pertoire personnel de l utilisateur permet de configurer tous les param tres du client Outre les propri t s pr c dentes indispensables la r alisation de ce projet rTorrent poss de quelques caract ristiques int ressantes pour un r seau Peer to Peer En effet il poss de quelques propri t s telles que le super seeding le DHT ou le peer exchange DHT signifie table de hachage distribu e C est une technologie qui permet l identification et l obtention d une information dans un syst me r parti L ensemble de la table de hachage est constitu virtuelle
9. Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Torrent mips include export CFLAGS 0s lcurl I home seb Projet Torrent mips include export LIBS lt L home seb Projet Torrent mips lib export STUFF_LIBS L home seb Projet_Torrent mips lib 36 configure host mipsel linux prefix lt home seb Projet Torrent mips exit make 44 make install v Compilation crois e de Lighttpd fLighttpd bin bash export PATH home seb Projet_Torrent kamikaze 8 09 rcl staging dir toolchai n mipsel gcc4 1 2 bin PATH export LDFLAGS lt L home seb Projet Torrent mips lib lerypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export OPTIM 0s export CXXFLAGS Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet_Torrent mips include export CFLAGS 0s lcurl I home seb Projet Torrent mips include export LIBS L home seb Projet_Torrent mips lib export STUFF_LIBS L home seb Projet_Torrent mips lib configure without bzip2 without zlib host mipsel linux prefix lt home seb Projet Torrent mips exit make amp amp make install vi Compilation crois e de Libxml libxml bin bash export PATH lt home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchaij n mipsel gcc4 1 2 bin PATH export LDFLAGS lt L home seb Projet Torrent mips lib lerypto L home seb Projet Torrent
10. as published by the Free Software Foundation either version 3 of the License or at your option any later version wTorrent is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details T You should have received a copy of the GNU General Public License i class LocalFiles extends rtorrent public function construct if this gt setClienti return false List files which are the router public function listDir Smydir mnt cle wtorrent data if dir opendir Smydir along with this program If not see lt http www gnu org licenses gt 32 while file readdir dir false if file l amp amp file Sfilelist file closedir dir if sizeof filelist lt 0 1 sort i filelist j for i 0 Si lt sizeof filelist i echo lt a href data Stilelist Sij gt S tilelistl i lt a gt wt cls localfiles tpl php lt div style width 100 height 180px gt lt input type hidden name MAX FILE SIZE value 100000000 gt Appel de la m thode de listing Sweb BlistDir lt div gt 2 Scripts de compilation crois e i Compilation crois e de xmirpc c xmlrpc c 4 bin bash export PATH lt home
11. debug no permet de retirer toutes les options de debugage et ainsi d avoir un binaire plus l ger Modification de cbase type h Il n a pas t possible de compiler rTorrent directement II a fallu modifier le fichier ctype base bh situ dans le dossier kamikaze staging_dir toolchain mipsel_gcc4 1 2 include c 4 1 2 mipsel linux uclibc bits pour le rendre compatible avec rTorrent le type ctype mask t g n re des erreurs de compilation Il a fallu le remplacer par le type int Compilation manuelle Le script de compilation crois e ex cute la commande configure Il permet de g n rer des Makefiles adapt s l environnement de compilation Cependant il met par d faut le dossier usr include aux options de compilation Ceci g ne la compilation de certaines sources du projet rTorrent car ces 24 includes ne correspondent pas ceux de Kamikaze C est pourquoi il est n cessaire de compiler manuellement certains fichiers sources en retirant cette option Ceci concerne les sources src core manager cc src command_network cc src command_peer cc Le script de compilation que nous avons crit ex cute la compilation de ces fichiers avant d effectuer la commande make Link La derni re instruction de compilation effectu e par make consiste linker tous les fichiers o compiles Pour effectuer cette t che sur le projet rTorrent make utilise la suite libtool Cependant libtool cherche le fichier
12. des sources compil es figure un fichier configure permettant de configurer l environnement de compilation Pour chacune des applications configure est lanc avec deux options host mipsel linux pr fixe n cessaire pour appeler le compilateur crois par exemple mipsel linux g prefix DOSSIER_MIPSEL indique le dossier dans lequel seront install s les programmes et les librairies compil s D autres options ont t sp cifi es en fonction de l application compil e Ces divergences sont expliqu es dans la suite Enfin chacun des scripts se termine par la commande make et make install qui permettent respectivement de compiler les sources et d installer les binaires cr s dans DOSSIER MIPSEL La partie suivante va r pertorier tous les programmes ou biblioth ques qui ont d tre cross compil s car n cessaires au fonctionnement du r seau i Libsigc La libsigc impl mente les appels syst mes n cessaires l ex cution de code C Comme libtorrent et rTorrent sont crits en langage C cette biblioth que est n cessaire La version utilis e est libsigc 2 0 18 disponible l adresse http libsigc sourceforge net ii Libtorrent La libtorrent est n cessaire l ex cution de rTorrent est n est pas disponible dans les d p ts de Kamikaze c est pourquoi nous l avons compil e La derni re version stable en date tait libtorrent 0 12 3 disponible l adresse http libt
13. et PHP pour communiquer Ainsi Lighttpd envoie les pages php php cgi pour les interpr ter Ce dernier retourne les pages html Lighttpd pour qu il puisse les envoyer au client without iconv iconv a t d sactiv car il n est pas utile dans notre projet Iconv est une 25 library permettant de convertir un fichier dans un autre jeu de caract res En desactivant ce module un gain de place est r alis without pear PEAR a t d sactiv car il n est pas utile dans notre projet PEAR fournit une biblioth que de scripts php PEAR permet de promouvoir le re use Elle est utile dans le cas de d veloppement de grands projets php with libxml dir DOSSIER permet le support de xml DOSSIER correspond au chemin de la librairy compil e pr c demment with curl DOSSIER permet la prise en charge de curl Curl offre des fonctions pour transf rer des fichiers Cependant php ne permet pas officiellement la compilation crois e Pour contourner ce probl me il faut lancer une premi re fois configure Suite cette ex cution un fichier config cache est cr Il faut alors diter ce fichier en remplacant ar par mipsel linux ar gcc par mipsel linux gcc ranlib par mipsel linux ranlib strip par mipsel linux strip La compilation peut d sormais tre effectu e en lancant le script de compilation que nous avons crit vii Lighttpd Lighttpd est disponible dans les d pots de Kamikaze mais cette ve
14. item public function getSearch return _REQUEST search 30 wi cls fileList tpl php lt div style width 100 height 100 gt lt input type hidden name MAX FILE SIZE value 100000000 gt assign var search value Sweb Na tSearch assign var pagehtml value Sweb Na tServerPage if empty pagehtml assign var pagehtml value index html search search else assign var pagehtml value pagehtmlMsearch search if fetch file http SBLACKBOX pagehtml assign dl page Remplacement des liens assign var dl_page value dl_pagelregex_replace lt gt assign var dl_page value Sdl_pag assign var dl_page lue Sdl_pag va regex_repla C index html rver_page index html assign var dl_page value Sdl_pag regex_replac stats html rver_page stats html assign var dl_page lue Sdl_pag va regex_replac login html rver page login html assign var dl_page ue dl_ pag va regex_replac amp s assign var dl page ue dl_ pag va regex_repla Cc rver_page comments html regex_repla CO enturl http torrent_server files torrents X file http torrent_server fil index php cls FileList se index php c index php c
15. kamikaze 8 09 rcl staging dir mipsel usr lib export OPTIM 0s export CXXFLAGS Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Torrent mips include export CFLAGS lt Os I home seb Projet Torrent mips include export LIBS L home seb Projet Torrent mips lib export STUFF LIBS lt L home seb Projet Torrent mips lib configure target mipsel linux prefix lt home seb Projet Torrent mips host mipsel linux with debug no exit make amp amp make install 37 vii Compilation crois e de Libtorrent 4 bin bash export PATH lt home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchai n mipsel_gcc4 1 2 bin PATH export CXXFLAGS 0Os I home seb Projet Torrent mips include export CFLAGS lt Os I home seb Projet Torrent mips include export LIBS L home seb Projet Torrent mips lib configure host mipsel linux enable debug no prefix lt home seb Projet Torrent mips exit make amp amp make install viii Compilation crois e de Libsigc ligsigc bin bash export PATH home seb Projet_Torrent kamikaze 8 09 rcl staging dir toolchai n mipsel gcc4 1 2 bin PATH export LDFLAGS lt L home seb Projet Torrent mips lib lerypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib Export OPTIM 0s export CXXFLAGS lt Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Tor
16. la pr sence b ga REESS SNE Creation des torrent serveur ftp correspondants Envoi des torrent 2 torrent manguant 7 sur le serveur ftp Lancement de rtorrent pour prise en compte des torrents par le tracker fin du script Figure 5 Algorithme du script routeur Le script peut donc tre crit en respectant cet algorithme Le code crit est le suivant bin sh HOST 192 168 1 112 PORT 6969 USER loutre PASSWD loutre local directory media cle wTorrent Data if s local directory 1 then exit else tri ls local directory grep v torrent cd local directory for i in tri do coupe echo i cut d f1 if s coupe torrent 2 then resuls ncftpls u USER p PASSWD ftp HOST if echo resuls grep coupe torrent 3 13 then ncftpput u USER p PASSWD HOST coupe torrent fi else ctorrent t i u http SHOST PORT announce s coupe torrent ncftpput u USER p PASSWD HOST coupe torrent xmirpc localhost load start local directory coupe torrent fi done fi Les variables HOST et PORT correspondent respectivement l adresse IP et au port du tracker Les champs USER et PASSWD correspondent au login et au mot de passe du serveur En effet ceux ci sont requis pour l acc s au serveur ftp Enfin local directory est l adresse absolue du dossier des routeurs o sont stock s les m dias t l charger Des variables ont t cr es dans un souci de portabi
17. une console Ainsi le fichier est charg et le tracker prend bien en compte la graine qui vient d apparaitre ii Script du serveur de m dias Le script port sur le serveur de m dias est globalement plus simple que celui port sur les routeurs En effet le dossier contenant les fichiers du serveur ftp est le m me que celui o le tracker r pertorie les torrents existants Ainsi il n est nul besoin d envoyer les torrents cr s par ftp ou m me de les d placer dans un dossier diff rent Ce script se contentera donc de regarder si de nouveaux m dias ont t plac s dans le dossier Dans ce cas pour chaque nouveau m dia le fichier torrent associ sera cr avec la m me convention de nom que pr c demment et rTorrent sera lanc pour prendre en compte par le tracker 14 L algorithme d crivant ce comportement est le suivant D but du script r sence de nouveaux fichiers Cr ation des torrent correspondants Lancement de rtorrent pour prise en compte des torrents par le tracker Figure 6 Algorithme du script blackbox Le script est donc crit selon cet algorithme l bin sh HOST 192 168 1 112 PORT 6969 local directoryz usr local bin xbnbt files torrents if s local directory then exit else tri Is local directory grep v torrent cd local directory for i in tri do coupe echo i cut d f1 if s coupe torrent then ctorrent t i u htip HOST
18. 100 No o Azureus 3 0 5 2 208 54 179 80 1 6 0 Outgoing 95 No 24 75 uTorrent 1 8 0 11 98 193 18 120 0 0 Incoming 0 Yes 171 Transmission 1 2 1 0 83 132 232 96 0 23 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 190 18 27 158 0 0 Outgoing 100 No 20 48 uTorrent 1 6 1 0 72 93 144 10 271 0 Incoming 100 No 0 Mainline 5 0 9 TO 2X2 ubuntu7 10 dvd 38650 129 37 33 3 18825 2 03 24Mb 42Gb 0 001 6h23m T amp XB ubuntustudio 8 04 alternate i386 iso 1 34 1 6 9869 101 1Mb 11Gb 0 001 3h20m t Stop Y Apply Check All Uncheck All Invert Selection Figure 7 Interface de wTorrent D autre part wTorrent fournit une panoplie d outils tr s large pour piloter rTorrent En plus des fonctions traditionnelles telles que start pause stop wTorrent donne des informations sur les clients sources et les clients dont l utilisateur est la source L interface propose galement de faire le tri entre les fichiers en cours de telechargement les fichiers en pause et ceux qui sont complets 17 Enfin wTorrent offre la possibilit de charger des fichiers torrent partir d une URL et de charger des fichiers torrent disponibles sur l ordinateur de l utilisateur par l interm diaire de l interface suivante Torrent Browse Torrent url A Download directory data full directory path id Start now j Private LJ Upload File Figure 8 Chargement d un fichier torrent ii XMLRPC rTorrent g re le protocole XML RPC wTorr
19. E a ee dr dE O GE 28 H ie Se ES e Mode ePOS dom NE rte eeh EE EENS tete 28 Lancement du Media Server ordinateur 28 lancement du EOUTeHE a 28 EA AA oi vih e EN dee Ree EN dees 28 R patrier un fichier sur l ordinateur nie ie ENER de diva 29 Administrer le Media Server sise 29 E ll SA Kia ANE AEO o e 29 ii Administre XBNBT iii A A a 29 UU a 30 Source ajout es wTorrent cccccccccsscccecsssceceessscececssececeseseececsseececessesecssesecscssseesesseseeseseaeees 30 i Liste des fichiers disponibles sur le Media Server ss 30 ii Affichage des fichiers locaux sur le routeur 32 Scripts de compilation crois e iii 33 L Compilation crois e de vip 33 ii Compilation crois e de rTorrent iii 34 IL Compilation crois e de PHP 36 iv Compilation crois e de Ncftp iii 36 v Compilation crois e de Lighttpd nn 37 vi Compilation crois e de Libxml coococnnnoniccccnonocnnonononnnononnnnnnnnonnnnnnnonnnnnnnnonnnnnnnnnnncnnnannnnn ns 37 vii Compilation crois e de Libtorrent su 38 viii Compilation crois e de Libsigc c cecccscccesssscececssececeesececeeaeeeceeaeeeceeseeeeessesaeeeceesaeeeeees 38 IN Compilation crois e de Cura nn is entente intended 39 Table des illustrations Figure 1 Architecture du r seau nn kn ee a ena vd iia 5 Figure 2 Outils pr sents sur le routeur sr 7 Figure 3 Outils pr sents sur le serveur de m dias cccssccsesssssccessesees
20. GI FastCGI utilise un ensemble fini de processus pour traiter les requ tes Ceci permet un traitement plus rapide des requ tes Dans notre cas FastCGI est utilis entre Lighttod et PHP SCGI est similaire a FastCGI mais son impl mentation est plus simple Dans notre cas SCGI est utilis entre le rTorrent et le serveur Lighttpd pour faire transiter les commandes xmirpc Xmirpc c permet la communication entre wTorrent et rtorrent PHP doit tre compil avec les extensions php xmlrpc php pdo sqlite et curl v Modifications M me si l interface wTorrent est tr s compl te il manque quelques fonctionnalit s pour pouvoir correspondre au cahier des charges Ainsi nous avons ajout ces fonctionnalit s en utilisant les templates Smarty 1 Liste des fichiers torrent disponibles sur le Media Server Il s agit d int grer dans wTorrent une liste des fichiers torrent disponibles sur le Media Server L id e est de r aliser une interface pour que l utilisateur puisse en un seul clic de souris choisir et t l charger le fichier qu il d sire L utilisateur choisit l un des fichiers disponibles et le routeur Wifi s occupe de t l charger le torrent correspondant et de lancer le t l chargement du media dans rTorrent Sur le Media Server le tracker XBNBT fournit la liste des fichiers torrent disponibles et donne des liens hypertextes permettant de t l charger ces torrent La solution choisie est alors la suivante Lorsque l utilisateur dem
21. PROJET AVANCE EN SYSTEMES EMBAROUES DEPLOIEMENT D UN MOTEUR PEER TO PEER EMBARQUE SUR ROUTEUR IP AVEC GESTION D UN ESPACE DE STOCKAGE BRESSON Emeline CHEVRIER Julien CHRETIEN S bastien SEMELLE Lo c ENSEIRB 2008 2009 Sommaire Introduction tante 5 l POSO ii A a 5 Il Solution G n ralit S viii readsvesseeduecssseacececedacessaa duces R EE i Eia 6 1 Le r seau Peer To Peer BitTorrent ss 6 2 Solution les routeurs WI 7 Solution le serveuride m dias sinusite antenne ent 8 HIL Sieilfotelt CU 9 1 La distribution d OpenWRT Kamikaze ser 9 2 Le client BitTorrent rTorrent sise 9 3 Le tracker XBNBT iii ate entier den 10 4 Leserveur FTP VSFTP eii iii 12 SE le EC 12 I Script d s rOUTt UFrS decidi ac ii 12 ii Script du serveur de m dias iii 14 ilis Taches Cro rita 16 6 A ue 16 L _ PASO NLATION waiecccesesccesevasccsecorcentcenacenntabsacesedanaceus ra aseesneesaceeveauiceavaacucnduvancuueevedegacesanendevaacercetaa 17 iis ET 18 iii Mi A A AA tele AAA tel obe ie ed tea 18 UO EE 19 GON ee e e TC 19 Vis LT E CS RD an a a ti 22 7 La COMPILATION Crois e a a ej Vi ane bja da ee ija ve 23 Ws oo E 23 ii Bel EEA ern RE ET A NO 23 iii dor ele 24 We e bel ea ETA A RE TE EI A I 24 Me CORNE A E A RO A O RO O nee en 25 Mi o AT O O OO O OE ROE A O REMI 25 vii Wigntip RP EO O RA EEA OE A A SE O DT 26 viii A e e e e io 26 CONCIUSI N Daria idos 27 ANNEX
22. ande voir la liste des torrent disponibles wTorrent r cup re la liste donn e par XBNBT modifie les liens hypertextes pour les adapter wTorrent puis les affiche l utilisateur Lorsque l utilisateur s lectionne un media en cliquant sur le lien d sir la requ te est envoy e wTorrent qui s occupe alors de t l charger les fichiers requis 19 Le seguencement est resume dans la figure suivante rTorrent sur Ordinateur de wTorrent XBnbt Te routeur l utilisateur sur le routeur HSG EH o lt Demande de la liste de s fichlers disponible Demande de la liste de s fichiers disponibles _ __ Envole d une page HTML contenant la liste L255 Env ole de la liste des fichier lt _ lt lt lt wc Env ole du chote du fichier a telecharge Een Demande du fichier torren Ceo aa Em ole du fichier torren ET 5 5 5 5 Demarage du telechargement Figure 9 S quencement des op rations suite une requ te utilisateur Pour r aliser cette nouvelle fonctionnalit il a fallu modifier les sources de wTorrent Les sources sont donn es en annexes FileList cls php contient la nouvelle classe d finissant les m thodes n cessaires Il est situ dans wt cls fileList tpl php effectue le t l chargement de la page donn e par XBNBT Il modifie ensuite les liens en rempla ant ceux donn s par XBNBT par des liens adapt s wlorrent Par exemple l
23. ces suivantes un CPU Via 1Ghz 1 Go de m moire et 80 Go de disque dur Nous avons install la distribution Linux Fedora 10 l aide d une cl live USB que nous avons cr e car le pc ne dispose pas de lecteur CD Les identifiants de connexion pour ouvrir une session Fedora sont Login loutre Mot de passe loutre Tout comme dans les routeurs vus pr c demment plusieurs outils doivent galement tre install s sur l ordinateur r alisant le serveur du r seau Ils sont r sum s dans la figure suivante et seront galement d taill s dans la partie suivante Certains sont les m mes que dans les routeurs XBNBT VSFTP Script d automatisation rtorrent Lighttpd Xmirpc c Network x Figure 3 Outils presents sur le serveur de medias Le Tracker XBNXT a t install Il s occupe de mettre en relation les clients torrent et de repertorier les medias disponibles Grace au serveur ftp VSFTP les clients ont la possibilite d envoyer au Media Server des fichiers torrent sur le Media Server pour qu ils soient disponibles aupr s de tous les clients Le Media Serveur h berge diff rents types de fichiers audio video L administrateur du serveur a la possibilit de rajouter des fichiers Comme sur les routeurs le script d automatisation permet d automatiser les t ches de cr ation du torrent associ et du r f rencement aupr s du tracker Pour que le Media Server puisse partager les fichiers qu il h berge il
24. e lien files torrents Nemo torrent devient Jindex php cls AddT amp torrenturl http adresseMediaServer 6969 files torrents Nemo torrent FileList tpl php est situ dans wt tpl Par ailleurs XBNBT fournit un champ de recherche de fichiers Les donn es de ce champ sont envoy es par la m thode Post XBNBT Pour que wTorrent puisse traiter ces recherches la demande de recherche est d sormais envoy e wTorrent Fichiers de langues il est n cessaire d ajouter une correspondance entre le nom de la classe et la langue choisie Les fichiers de langues sont situ s dans wt lang Classe rTorrent pour que la nouvelle page puisse appara tre dans le menu il a fallu modifier la classe rTorrent en ajoutant la reference a FileList Ic ne pour qu une ic ne apparaisse cot du nom de la page dans le menu il a t necessaire d ajouter un fichier image fileList png dans le dossier wt img menu Xbnbt css la page html envoy e par XBNBT utilise des classes css Il a donc fallu ajouter ce fichier dans wt css de wTorrent Nous avons retir la description de la couleur du fond de ce fichier pour qu il n y ait pas de conflit avec la couleur du fond de wTorrent Ensuite nous avons ajout la ligne lt link rel xbnbt href DIR_CSS xbnbt css type text css gt dans le fichier wt tpl index tpl php 20 La capture d cran suivante montre le r sultat obtenu A aaa Fichier dition Affichage Historique Marque pages Outils Aide
25. edia Server Ajout de fichiers Pour ajouter un fichier sur le Media Server il suffit de le copier dans le dossier usr local bin xbnbt files torrents Administrer XBNBT Se rendre l adresse http 192 168 1 112 6969 Cliquer sur le lien login Le nom d utilisateur est loutre et le mot de passe est loutre Effectuer les modifications n cessaires 29 Il Sources 1 Source ajout es wTorrent i Liste des fichiers disponibles sur le Media Server wt cls FileList cls php lt php This file is part of wTorrent wTorrent is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 of the License or at your option any later version wTorrent is distributed in the hope that it wi be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE GNU General Public License for more details T See the You should have received a copy of the GNU General Public License along with this program If not see lt http www gnu org licenses gt EJ class FileList extends rtorrent public function construct if this gt setClient return false What is the asked page public function getServerPage return REOUEST server page Search
26. ent se base alors sur ce protocole pour communiquer avec rTorrent XML RPC est un protocole RPC Remote procedure call une specification simple et un ensemble de codes qui permettent a des processus s executant dans des environnements diff rents de faire des appels de m thodes a travers un r seau Cependant wTorrent et rTorrent ne peuvent pas communiquer directement Il est n cessaire d installer une passerelle SCGI entre les deux Dans notre projet le serveur Web Lighttpd a t install pour servir de passerelle iii Smarty wTorrent est programm e en php en utilisant des templates Smarty Il s agit d un moteur de templates pour PHP Il est rapide et permet la gestion des caches La gestion du cache permet d accelerer les traitements la page n est pas syst matiquement recalcul e L int r t principal de Smarty r side dans la s paration du contenu et de la forme Ceci permet de gagner du temps lors de la conception d un projet et d aboutir un code uniforme au sein d une quipe de d veloppeurs Ainsi Smarty est PHP ce que la synth se de haut niveau est au VHDL 18 iv Prereguis Pour pouvoir utiliser wTorrent il est n cessaire d installer les applications suivantes sur la borne Lighttpd est un serveur web rapide dont l empreinte m moire est faible Il int gre le support fastCGI et SCGI FastCGI est une technologie permettant la communication entre un serveur HTTP et un logiciel externe A l inverse de C
27. erveur de m dia mettant disponibilit plusieurs fichiers vid o des routeurs sans fil simulant des Box ADSL Tous ces l ments communiqueront sur un r seau Ethernet pour tester leur fonctionnalit Ceux ci seront reli s selon le sch ma suivant Serveur de m dias y routeur sans fil routeur sans fil f Network D routeur sans fil routeur sans fil Figure 1 Architecture du r seau Chaque routeur doit poss der son propre espace de stockage pour pouvoir t l charger des fichiers vid o depuis un serveur de m dias ou directement enregistr depuis une plateforme MythTV reli e au routeur Les routeurs doivent galement poss der une interface de contr le simple pour que tout utilisateur lambda puisse d marrer le t l chargement d un fichier vid o d un simple clic Le serveur de m dia doit pouvoir mettre disposition plusieurs vid os De plus il doit pouvoir recevoir des vid os depuis un des routeurs ll y a peu de contraintes concernant ce serveur Cela peut tre un simple ordinateur de bureau un serveur ou un routeur Afin de simplifier les protocoles d changes de fichiers le r seau BitTorrent sera utilis Il Solution G n ralit s La solution d finie comporte trois parties principales Tout d abord le choix du r seau peer to peer qui allait tre utilis a repr sent une tape importante ainsi que celui des clients et tracker associ s Les d
28. est n cessaire d installer un client torrent rTorrent s occupe de cette t che Pour que le script d automatisation puisse envoyer des commandes rTorrent il a t n cessaire d installer un serveur web qui fait office de passerelle C est le r le de Lighttpd III Solution d taill e 1 La distribution d OpenWRT Kamikaze Deux distributions diff rentes sont disponibles pour le firmware OpenWRT Kamikaze et White Russian Un petit comparatif a donc t tabli dans le but de choisir Il s est av r rapidement que Kamikaze poss dait de nombreux avantages par rapport son concurrent En effet White Russian ne supporte qu un nombre tr s limite d architectures a savoir les quipements a base de Broadcom BCM47xx comme dans les routeurs Linksys WRT54G ou les Asus WL 500g Ainsi le pilote Wifi utilis est le pilote propri taire BroadCom La configuration se fait par NVRAM Non Volatile Random Access Memory ce qui est sp cifique BroadCom Au contraire Kamikaze supporte un nombre important d architectures en plus des deux support es par White Russian Ainsi il y a une abstraction de la configuration WiFi et de la gestion du r seau Enfin la configuration se fait gr ce aux fichiers de configurations presents dans etc config Ils sont ensuite interpr t s par l utilitaire UCI 2 Le client BitTorrent rTorrent Il est n cessaire de poss der un client BitTorrent pour pouvoir utiliser le protocole de partage BitTorrent
29. eux autres parties concernent d une part toutes les op rations r aliser sur les routeurs sans fil et d autre part sur le serveur de m dias Ces deux derni res parties sont expliqu es bri vement par la suite Le d tail est donn dans la partie concernant la solution d taill e 1 Le r seau Peer To Peer BitTorrent Le but du projet tant de mettre en place un r seau peer to peer il a fallu choisir un protocole de transfert de donn es Le choix s est porte sur le protocole BitTorrent qui pr sente de nombreux avantages par rapport des concurrents comme Emule Gnutella ou encore KaZaA Ce protocole ne mise pas sur la long vit de disponibilit des donn es ou sur la diversit des sources Il vise par contre une optimisation de la bande passante aussi bien en envoi qu en r ception ainsi qu un d bit maximal de flux en continu Les fichiers sont d coup s afin d tre partag s Ainsi des fichiers de plusieurs Go peuvent tre partag s et ce tr s rapidement Le protocole BitTorrent est parti du constat suivant Quand une information se trouve sur un serveur unique plus elle est demand e moins elle est accessible cause de la saturation du serveur Ainsi BitTorrent renverse cette tendance en permettant chaque client ayant t l charg ne serait ce qu une toute petite partie de l information de la partager son tour L information est donc d coup e en petits segments distribu s des clients di
30. ex torrent Termin 4 Figure 11 Liste des fichiers locaux En cliquant sur le fichier d sir l utilisateur t l charge sur sa machine le media En revanche nous nous sommes aper us qu il y avait des probl mes de t l chargement avec certains fichiers Nous n avons pas eu le temps de corriger ce probl me vi Utilisation Pour pouvoir acc der l interface wTorrent l utilisateur simplement entrer l adresse http 192 168 1 1 wtorrent dans son navigateur web 22 7 La compilation crois e Pour pouvoir fournir les fonctionnalit s requises par le cahier des charges nous avons compil un certain nombre d applications sp cialement pour le processeur MIPSel Plusieurs options sont n cessaires la compilation de chacune des sources Pour viter d avoir r crire ces options chaque compilation nous avons crit des scripts Ces scripts de compilation sont donn s en annexes Chacun des scripts contient la m me ent te Une red finition du PATH pour y ajouter le chemin vers les compilateurs crois s Une red finition de LDFLAGS pour indiquer au linker o se trouvent les librairies de Kamikaze Une red finition de CXXFLAGS et CPPFLAGS pour indiquer au compilateur mipsel linux g o sont situ es les includes et pour sp cifier l optimisation Os optimisation en taille Une red finition de LIBS et de STUFF LIBS pour sp cifier aux compilateurs la localisation des librairies Dans chacune
31. ff rents pour qu ils aient tous quelque chose changer L efficacit du r seau est donc maximale lorsqu il y a beaucoup d utilisateurs car tous ceux qui t l chargent partagent par construction ce qu ils t l chargent Il n y a pas attendre dans une file virtuelle pour commencer Dans le langage BitTorrent une personne poss dant un fichier en totalit est appel un seed graine Une personne pouvant transmettre une partie de l information sans toutefois la poss der en entier est appel e un peer Pour fonctionner le r seau BitTorrent n cessite un tracker C est un serveur qui sait en permanence quels seeds et quels peers se trouvent dans le swarm l essaim Les clients lui envoient r guli rement 6 des informations En change ils re oivent des informations sur d autres clients auxquels ils peuvent se connecter Le tracker n est pas directement impliqu dans le transfert de donn es et ne poss de pas de copie du fichier De m me pour utiliser ce protocole les utilisateurs doivent poss der un client BitTorrent pour t l charger des torrents en cr er et les partager 2 Solution les routeurs WiFi Le routeur que nous avons utilis est WL 500g Premium de chez Asus II comporte les caract ristiques suivantes WL 500gP M moire RAM 32 Mo M moire FLASH 8 Mo Chipset Wifi Broadcom 4318 Chipset Ethernet Broadcom BCM5325 4 USB 2x USB 2 0 AA E Processeur MIPS end
32. fichiers C est donc lui qui s occupe de t l charger les torrents entre eux Nous avons choisi d utiliser comme tracker XBNBT Il est bas sur trois trackers diff rents BNBT Trinity EasyTracker et CBTT Il reprend donc les avantages des trois comme le support des bases de donn es MySQL et dispose d une interface graphique qui permet de g rer et t l charger les torrents De plus XBNBT est cod e en C pour une meilleure efficacit Pour installer XBNBT nous avons utilis un package pr sent dans les d p ts de Fedora L installation se fait dans le dossier usr local xbnbt Un fichier bnbt cfg permet de configurer toutes les options de XBNBT Des scripts d j r alis s permettent de lancer et d arr ter facilement le tracker en utilisant les commandes suivantes xbnbt start qui permet de d marrer le tracker xbnbt stop qui permet d arr ter le tracker xbnbt restart qui permet de relancer le tracker 10 xbnbt booton qui permet de lancer tracker au d marrage du system Une fois celui ci lanc nous accedons au tracker avec un navigateur internet en rentrant l adresse suivante http adresselP 6969 Les identifiants de connexion pour administrer le tracker sont Login loutre Mot de passe loutre L interface graphique est la suivante B Applications Places System D JO TEN loutre sat jan 17 4 09 PM My lt Xotic lt Edition BNBT Tracker Mozilla Firefox File Edit View History Bookmarks T
33. ianness little MIPSel Y Les identifiants du routeur sont les suivants A us Login root Mot de passe root Sur les routeurs devront tre install s quelques outils n cessaires la r alisation de la solution envisag e lls sont r sum s dans le sch ma suivant Chacun d eux sera ensuite d taill dans la partie suivante du rapport Network Kamikaze rTorrent y ZZ wTorrent 7 Lighttpd PHP Script d automatisation LJ Figure 2 Outils pr sents sur le routeur Kamikaze correspond la distribution Linux install e sur le routeur Le fait d avoir install Linux permet d acc der toute une panoplie de projets libres rTorrent est le client BitTorrent que nous avons s lectionn pour tre embarqu dans le routeur wTorrent a t choisi pour piloter rTorrent Il s agit d une interface web LightTpd est un serveur web Il est utilis pour deux fonctions Dune part il sert de passerelle de communication entre wTorrent et rTorrent D autre part il permet d h berger wTorrent Le module PHP a t n cessaire car wTorrent est crit en langage PHP Le script d automatisation permet de v rifier si un utilisateur a ajout un fichier sur la borne Dans ce cas il fait le n cessaire pour que le tracker r f rence ce nouveau fichier 3 Solution le serveur de m dias Pour r aliser le serveur de notre r seau nous utiliserons un PC notre disposition poss dant les ressour
34. ib lsigc 2 0 lcurl ltorrent L usr lib lxmlrpc server lxmlrpc lxmlrpc util lxmlrpc xmlparse lxmlrpc xmltok make install iii Compilation crois e de PHP PHP bin bash export PATH home seb Projet_Torrent kamikaze_8 09_rcl1 staging_dir toolchai n mipsel_gcec4 1 2 bin SPATH export LDFLAGS L home seb Projet_Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export OPTIM 0s export CXXFLAGS Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Torrent mips include export CFLAGS lt Os Icurl I home seb Projet Torrent mips include export LIBS lt L home seb Projet Torrent mips lib export STUFF LIBS L home seb Projet Torrent mips lib configure target lt mipsel linux prefix lt home seb Projet Torrent mips enable sockets enable fastcgi build lt mipsel linux host lt mipsel linux without iconv without pear with libxml dir lt home seb Projet Torrent mips with curl home seb Projet_Torrent mips with curlwrappers exit make amp amp make install iv Compilation crois e de Ncftp NCFTP bin bash export PATH home seb Projet_Torrent kamikaze_8 09_rcl staging_dir toolchai n mipsel gcc4 1 2 bin PATH export LDFLAGS L home seb Projet_Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export OPTIM 0s export CXXFLAGS
35. in I usr local cd src core 34 mipsel linux g DHAVE CONFIG H I I I I 1 Os T I home seb Projet Torrent mips include Os I home seb Projet Torrent mips include I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 include DNDEBUG I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 inlud I home seb Projet_Torrent mips include sigc 2 0 1 home seb Projet_Torrent mips lib sigc 2 0 include MT manager o MD MP MF deps manager Tpo c o manager o manager cc ed mipsel linux g DHAVE CONFIG H 1 I 08 I home seb Projet Torrent mips include Os I home seb Projet Torrent mips include I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 include DNDEBUG I home seb Projet_Torrent kamikaze_8 09_rc1 staging_dir toolchain mipsel_gcc4 1 2 inlud I home seb Projet_Torrent mips include sigc 2 0 1 home seb Projet_Torrent mips lib sigc 2 0 include MT command network o D MP MF deps command network Tpo c o command network o command_network cc T mipsel linux g DHAVE_CONFIG_H I I se I home seb Projet Torrent mips include Os I home seb Projet Torrent mips include I home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchain mipsel_gcc4 1 2 include DNDEBUG
36. lit et de compr hension Ainsi si ces donn es changent elles peuvent tre facilement modifi es une unique fois pour tout le programme La premi re condition 1 permet de v rifier si le dossier de stockage existe bien La seconde 2 permet de v rifier si chaque fichier poss de un torrent qui lui est associ Enfin la derni re 3 permet de voir si le torrent d j existant est pr sent sur le serveur ftp Les commandes ncftpls et ncftpput permettent respectivement d obtenir le contenu du serveur ftp et de transf rer un fichier sur le serveur Elles ont t utilis es pour leur simplicit En effet ces commandes sont directement en langage bash et leur r sultat peut directement tre stock dans des variables Cela vite d avoir crire des commandes ftp l int rieur du script bash d autant plus que la r cup ration des r sultats ne serait pas ais e Ces commandes devront donc n cessairement tre install es sur les routeurs Les torrents sont cr s avec le logiciel ctorrent pour les raisons cit es pr c demment dans ce document Pour que le script fonctionne il a t d fini une convention selon laquelle un fichier nom xxx serait associ un torrent nom torrent Cela n est en effet pas obligatoire que les deux fichiers portent le m me nom Enfin la commande xmlrpc permet par l interm diaire du serveur http lighttpd d envoyer une commande au logiciel rTorrent sans avoir besoin de relancer le logiciel dans
37. ment par tous ces constituants r partis sur tous les l ments du r seau qui en poss dent chacun une partie Le super seeding est une fonction qui minimise le nombre de donn es que doit envoyer la source originale jusqu ce qu un peer ait t l charg le fichier complet Cette fonction n est utilis e que lorsqu il n y a qu une seule source de t l chargement Ainsi l unique source au lieu de dire qu elle poss de le fichier complet fait croire qu elle nen poss de aucune partie D s que des peers se connectent la source en informe une qu elle a re u une partie du fichier partie envoy e a aucun autre pair et l autorise la t l charger La source ne va pas donner d autre partie du fichier au m me peer tant qu elle n aura pas re u confirmation que cette partie a t renvoy e nouveau Le trafic au d but d un change est donc facilit Le seul inconv nient de rTorrent est qu il ne peut pas tre utilis pour cr er des torrents Cependant ses caract ristiques tant tr s int ressantes nous avons d cid de l utiliser pour toutes les autres actions Un autre client BitTorrent nomm Ctorrent sera utilis dans le seul but de cr er les torrents Tr s l ger galement mais poss dant moins d avantages que rTorrent il pourra sans probl me tre install sur les routeurs en parall le avec rTorrent 3 Le tracker XBNBT Le tracker BitTorent permet de savoir qui t l charge quel torrent et o se trouvent les
38. nc Parmi tous les ex cutables cr s ncftp ncftpls ncftpput ncftpget ncfipbookmarks nous n avons copi sur la borne que ceux dont nous avions besoin c est dire ncftpput et ncftpls Conclusion Au terme de ce projet nous avons r ussi installer un client BitTorrent sur un routeur ASUS De plus celui ci poss de un espace de stockage amovible sur port USB permettant ainsi de varier la taille de celui ci en fonction des besoins De m me le serveur de m dias a t r alis et peut tre install sur un simple ordinateur de bureau Cependant quelques fonctionnalit s n ont pas pu tre impl ment es Le routeur initialise son d marrage le serveur web qui permet de contr ler l ajout de t l chargements mais le client BitTorrent ne se lance pas automatiquement Son d marrage doit se faire manuellement De m me il faut initialiser manuellement rTorrent sur le serveur cette t che n a pu tre automatis e De plus il manque une interface pour charger des fichiers depuis l ordinateur de l utilisateur sur le routeur En effet pour le moment cette manipulation n est possible que par une connexion ssh Nous pourrions installer un serveur FTP pour faciliter la t che l utilisateur Dans ce projet nous avons d couvert et utilis un syst me d exploitation optimis pour des routeurs wifi OpenWRT Le projet nous a permis de d couvrir l utilit d un tel syst me dans les routeurs wifi De plus nous nous s
39. ommes familiaris s avec la cr ation de trackers BitTorrent 27 Annexes Ces annexes ont pour but de presenter un court mode d emploi du fonctionnement des differents outils composant le r seau Peer to Peer Les codes sources du projet sont galement donn es dans ces annexes l Mode d emploi 1 Lancement du Media Server ordinateur D marrer l ordinateur Se logger sous l utilisateur loutre avec comme mot de passe loutre Ouvrir une console et lancer la commande rTorrent Le Media Server est d sormais op rationnel 2 Lancement du routeur Brancher la cl USB sur l un des ports Allumer le routeur partir d un ordinateur reli au r seau lancer la commande ssh root 192 168 1 1 Un mot de passe est demand Saisir root Saisir la commande rtorrentd start Saisir la commande exit Le routeur est d sormais op rationnel 3 Lancer un t l chargement Depuis l ordinateur de l utilisateur reli au r seau ouvrir un navigateur web Se rendre l adresse http 192 168 1 1 wtorrent Cliquer sur l onglet File List S lectionner un fichier en cliquant sur DL 28 4 Rapatrier un fichier sur l ordinateur Depuis l ordinateur de l utilisateur reli au r seau ouvrir un navigateur web Se rendre l adresse http 192 168 1 1 wtorrent Cliquer sur l onglet Local Files S lectionner un fichier en cliquant sur le lien correspondant 5 Administrer le M
40. ools Help e http 192 168 1 112 6969 index html v Gr 60001 a Most Visitedv g Release Notes Fedora Project v Red Hatv EJFree Contentv elindex php My Xotic Edition BNBT Tracker 2 Lei kg kcal KA KA ki me Cou o fours mi A A De O nl ESCHER ana sem CIRE En Emi Admin Delete elete S gig B D alo 2 ale 2 e Done ea BB loutre loutre etc En Items in Trash Figure 4 Tracker XBNBT Elle permet de conna tre le nom du fichier la date d ajout la taille le nombre de fichiers le nombre de seeders et le nombre de leechers Elle permet aussi de t l charger le fichier torrent qui permet de t l charger le fichier voulu et de les supprimer Les fichiers torrent contiennent le hash du fichier des informations sur le fichier et l adresse du tracker 11 4 Le serveur FTP VSFTP Nous utilisons un serveur FTP pour stocker les fichiers torrents Le serveur ftp utilis est VSFTP qui est un serveur ftp tr s s curis L installation se fait partir des d p ts de Fedora A partir des m mes d p ts nous trouvons un utilitaire de configuration avec interface graphique pour faciliter la configuration du serveur Ce serveur FTP pointe sur le dossier contenant les torrents utilis s par XBNBT Ainsi chaque fois qu un fichier torrent est ajout dans ce dossier le tracker l ajoute automatiquement sa liste Pour se connecter au serveur
41. orrent rakshasa no 23 Dans le cas de cette biblioth que l option enable debug no a t ajout e la commande configure afin de retirer les options de debugage mises par d faut Ceci permet de r duire la taille des binaires cr s iii Xmirpc Pour pouvoir tre contr l e distance rTorrent a besoin de la biblioth que Xmirpc La version utilis e pour le projet est la version 1 11 Elle est disponible l adresse suivante http xmlrpc c sourceforge net Au niveau de la compilation crois e rien de plus n est n cessaire que le script de base d crit en introduction iv rTtorrent rTorrent n est pas disponible dans les d p ts de Kamikaze c est pourquoi nous l avons compil La version utilis e est la 8 2 savoir la derni re version stable en date Il est disponible l adresse suivante http libtorrent rakshasa no Options de compilation Pour compiler rTorrent quelques options ont t ajout es aux variables d environnement Les options Incurses Isigc 2 0 Icurl et ltorrent ont t ajout es aux variables LIBS STUFF LIBS et CFLAGS Les chemins vers les includes de la biblioth que libsigc ont ete ajout s aux variables STUFF CXXFLAGS et STUFF CFLAGS Des options ont galement t ajout es au a configure Il s agit de oldincludedir lt DOSSIER permet de sp cifier la localisation des includes with xmlIrpc c permet d ajouter le support xmlrpc rTorrent enable
42. pt_eirbox gt gt dev null Chacun des 5 premiers groupes est en rapport avec une unit de temps la premi re les minutes puis les heures le jour du mois les mois et enfin le num ro du jour de la semaine 0 pour dimanche 1 pour lundi Dans le cas pr sent x signifie toute les x unit s de temps donc la t che sera ex cut e toutes les 10 minutes L toile signifie pour n importe quelle unit de temps Il faut ensuite pr ciser le nom d utilisateur ainsi que le chemin de la t che ex cuter ici le chemin donnant acc s au script Enfin il faut pr ciser un fichier dans lequel sera stock le journal des op rations gt dev null permet de s affranchir de la journalisation 6 wTorrent Plusieurs interfaces existent pour pouvoir piloter rTorrent Plusieurs implementations sont disponibles java projet ntorrent ncurses interface par d faut et web projets rtwi wTorrent Parmi toutes ces impl mentations nous avons choisi d utiliser une interface web pour deux raisons D une part cela permet un pilotage distance D autre part une interface web est simple d utilisation En effet un simple navigateur web suffit Divers projets bas s sur des interfaces web existent pour pouvoir piloter rTorrent rTwi gi torrent wtorrent Nous nous sommes tourn s vers le projet wTorrent Les raisons de ce choix sont expliqu es dans la partie suivante 16 i Presentation wTorrent est une interface Web crite en PHP pour rTo
43. rent mips include CFLAGS Os lcurl I home seb Projet Torrent mips include export LIBS lt L home seb Projet Torrent mips lib export STUFF LIBS L home seb Projet Torrent mips lib echo VAR configure host mipsel linux prefix lt home seb Projet Torrent mips with random random without ssl exit make make install 38 ix Compilation crois e de Curl Curl bin bash export PATH lt home seb Projet Torrent kamikaze 8 09 rcl staging dir toolchai n mipsel gcc4 1 2 bin PATH export LDFLAGS L home seb Projet_Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export CXXFLAGS lt Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Torrent mips include CFLAGS Os I home seb Projet Torrent mips include export LIBS lt L home seb Projet Torrent mips lib export STUFF LIBS L home seb Projet Torrent mips lib echo SVAR configure host mipsel linux prefix lt home seb Projet Torrent mips with random random without ssl exit make amp amp make install 39
44. routeur Pour que l utilisateur puisse r cup rer les fichiers qu il a t l charg s il tait n cessaire de d velopper une interface listant tous les fichiers disponibles sur la borne et proposant des liens pour les t l charger Nous avons donc adapt wTorrent cette nouvelle sp cification LocalFiles cls php contient la nouvelle classe d finissant les m thodes n cessaires Elle contient notamment une m thode listant les fichiers disponibles sur la cl USB Il est situ dans wt cls localFiles tpl php appelle la m thode de listing et l ajoute au contenu php de la page Fichiers de langues il est n cessaire d ajouter une correspondance entre le nom de la classe et la langue choisie Les fichiers de langues sont situ s dans wt lang Classe rTorrent pour que la nouvelle page puisse appara tre dans le menu il a fallu modifier la classe rTorrent en ajoutant la reference a LocalFiles 21 Ic ne pour qu une ic ne apparaisse cot du nom de la page dans le menu il a t n cessaire d ajouter un fichier image localFiles png dans le dossier wt img menu Le r sultat est le suivant Fichier dition Affichage Historique Marque pages Outils Aide orrent Mozilla Firefox e C x ff http 192 168 1 1 Wtorrent index php cls LocalFiles 2 IG 586decembre2008 GalaENSEIRBH14 torrent 586decembre2008GalaENSEIRBHI4 zip essential 2007 1007 tar bz2 essential 2007 1007 torrent index html ind
45. rrent Parmi tous les projets web existant wTorrent sort du lot pour plusieurs raisons D une part wTorrent fournit une interface intuitive et agr able comme le montre l image suivante public private seeding Name Seeds Peers DL KB s UP KB s Done Size Percent Ratio ETA TO SX ivedvd 686 instaler 2007 0 7 0 9 0 o 0 37Gb 37Gb 100 o File Name Done Size Done Priority iivedvd i686 instaler 2007 0 iso 3 7Gb 37Gb 100 Normal ta FF iivedvd i686 installer 2007 0 iso CONTENTS 2Mb 2Mb 100 Normal 7 ivedvd i686 installer 2007 0 iso DIGESTS 2Mb 2Mb 100 Normal si ivedvd i886 installer 2007 0 iso asc 2Mb 2Mb 100 Normal Don t download zl Change priority Check Ai Uncheck All Invert Selection COS KE casacas ooo E LC WE ARGH Ab zA E T OAK ubuntu 7 10 desktop i386 iso 29 10 am 18 87 0 1 5Mb 696Mb 0 D 10ht6m IP UP Peer KB s DL Peer KB s Connection Done Encrypted DL KB s Client 151 68 227 1 2 99 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 A 194 71 11 64 21 03 0 Outgoing 100 No 0 Mainline 3 4 2 a 194 71 11 63 6 66 0 Outgoing 100 No o Mainline 3 4 2 92 113 100 242 047 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 S 24 255 236 48 7 74 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 88 149 254 189 1 9 0 Outgoing 100 No 20 48 Mainline 6 0 2 85 176 240 1 3 94 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 81 56 152 21 10 21 0 Outgoing 100 No 20 48 uTorrent 1 7 7 0 87 11 67 243 0 0 Outgoing 100 No 20 48 Mainline 6 0 3 190 135 7 101 0 0 Incoming
46. rsion n est pas jour c est pourquoi nous l avons recompil e La version utilis e est lighttpd 1 4 20 disponible l adresse http www lighttpd net Par rapport au script de compilation de base des options au configure ont t ajout es without zlib without bzip2 Comme nous n utilisons pas ces fonctionnalit s dans le projet nous les avons retir es afin de gagner en taille m moire viii Neftp Les scripts mettant a jour le d p t de torrents sur le serveur de Media utilisent l utilitaire Ncfip Comme Ncftp n est pas disponible dans les d p ts de Kamikaze nous l avons compil La version que nous avons utilis e est ncftp 3 2 2 disponible sur http www ncftp com Le script de compilation crois e de base que nous avons crit suffit Cependant tout comme pour PHP les sources Ncftp ne prennent pas en charge la compilation crois e Pour palier ce probleme il faut d abord lancer configure Suite a cette ex cution un fichier config cache est cr Il faut alors diter ce fichier en rempla ant gcc par mipsel linux gcc Il faut galement crire no au lieu de yes au niveau des variables ac cv funct gnu get libc release et ac cv funct gnu get libc version Cette derni re modification est due au fait gue nous n utilisons 26 pas libc sur la borne mais ulibc Ulibc est une version de libc destin e l embarqu Une fois ces modifications effectu es le script de compilation peut tre la
47. seb Projet Torrent kamikaze 8 09 rcl staging dir toolchaij n mipsel gcc4 1 2 bin PATH export LDFLAGS L home seb Projet_Torrent mips lib lcrypto L home seb Projet Torrent kamikaze 8 09 rcl staging dir mipsel usr lib export CXXFLAGS Os I home seb Projet Torrent mips include export CPPFLAGS Os I home seb Projet Torrent mips include export CFLAGS lt Os lncurses lsigc 2 0 lcurl ltorrent I home seb Projet Torrent mips include CFLAGS lt Os Icurl I home seb Projet Torrent mips include export LIBS lncurses lsigc 2 0 L home seb Projet Torrent mips lib Lemel IEorr nt export STUFF LIBS lt L home seb Projet Torrent mips lib lsigc 2 0 lcurl ltorrent 33 configure disable cplusplus host mipsel linux build lt i486 linux gnu disable curl client prefix lt home seb Projet Torrent mips exit cd lib expat gennmtab Compilation du fichier gennmtab qui sera utilis lors de la compilation gcc c gennmtab c o gennmtab o DNDEBUG Wall Wundef Wimplicit W Winline Wundef Wmissing declarations Wstrict prototypes Wmissing prototypes fno common Os I home seb Projet Torrent rtorrent xmlrpc c 1 12 00 xmlrpc c 1 11 00 I home seb Projet Torrent rtorrent xmlrpc c 1 12 00 xmlrpc c 1 11 00 lib util include amp amp gcc o gennmtab gennmtab o ed ses make amp amp make install ii Compilation crois e de rTorrent frTorrent 4 bin bash
48. srsesecsessesecasassceesrseses 8 Figure 4 Tracker XBNBT saciar ii 11 Figure 5 Algorithme du script routeur escri lees 13 Figure 6 Algorithme du script blackboXx asirios 15 Figure 7 Interface de wTorrent is 17 Figure 8 Chargement d un fichier torrent venere sobna added kani az oa rala oka 18 Figure 9 Seguencement des operations suite une requ te utilisateur 20 Figure 10 Listes des fichiers disponibles sur le tracker cscecececcssesesesescsseneeeeecetsseeeeeeeees 21 Figure 11 Liste des fichiers locaux vesicular 22 Introduction Actuellement les r seaux haut d bit sont en plein essor Ceci a contribu au d veloppement de r seaux P2P De m me les Box multifonctions du type Livebox ou Freebox sont devenues monnaie courante chez les particuliers Au vu de cette volution des d veloppeurs ont port des distributions Linux dans l id e de les embarquer dans des Routeurs Wifi pour remplacer l OS par d faut L impl mentation de Linux dans ce type de produit permet d ajouter de nouvelles fonctionnalit s Dans ce contexte l objectif du projet est de d ployer un r seau P2P en prenant comme clients des routeurs Ainsi les routeurs doivent pouvoir se connecter de fa on autonome un r seau P2P et t l charger des m dias disponibles sur un serveur ou bien disponibles sur les autres box L Presentation Le projet r aliser est compos de deux types d l ments diff rents Un s
Download Pdf Manuals
Related Search
Related Contents
Artwizz SeeJacket IV COLOQUIO INTERNACIONAL - Instituto de Investigación sobre la Integral IN3T4GRYZGX2K2 memory module Singer 1525 Mechanical Sewing Machine Intenso S6000 GROUPE 8 HERBICIDE L`HERBICIDE AVADEX® BW DE American Standard Urinal 6471.015 User's Manual Copyright © All rights reserved.
Failed to retrieve file