Programmation des Applications Réparties Introduction P2P

Transcription

Programmation des Applications Réparties Introduction P2P
Programmation des Applications
Réparties
Introduction P2P
Overview des protocoles
Gnutella et Bittorrent
Luiz Angelo Steffenel
[email protected]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
1
Programmation des Applications
Réparties
Le protocole Gnutella
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
2
Gnutella
●
Histoire
–
Gnutella est un protocole décentralisé de recherche et de
transfert de fichiers
–
Écrit par Tom Pepper et Justin Frankel en 2000
–
L'entreprise Nullsoft venait d'être achété par AOL
–
Pepper et Frankel disponibilisent le logiciel pendant 1 jour
●
●
Steffenel
Téléchargement massif du client et interdiction d'AOL
Quelques jours plus tard, l'ingénierie reverse permet la
création d'autres clients
Programmation des Applications Réparties – Master M1 - 2007-2008
3
Gnutella - caractéristiques
●
Protocole P2P pur
–
totalement décentralisé
●
–
un noeud est appelé servant - à la fois client et serveur
découverte dynamique des peers et des ressources
●
utilise le principe de l'inondation de requêtes
–
–
transfert de données directement entre deux peers
●
Steffenel
chaque noeud répand les messages à ses voisins (sauf à la
source du message)
utilisation du protocole HTTP
Programmation des Applications Réparties – Master M1 - 2007-2008
4
Gnutella - limitations
●
Lors de son lancement en 2000, Gnutella a connu une très forte
demande
–
●
●
Steffenel
peur des implications des services centralisés comme Napster
On a vite compris que le protocole avait certains problèmes de
scalabilité
–
le modèle par inondation de requêtes fait augmente
exponentiellement le nombre de messages échangés lors de
l'augmentation du nombre N de noeuds connectés
–
plusieurs solutions viennent pallier ce problème, tout en restant
compatibles avec le protocole originale
Gnutella est aujourd'hui le troisième réseau P2P sur Internet
Programmation des Applications Réparties – Master M1 - 2007-2008
5
Les Bases du Protocole
●
●
Steffenel
Gnutella utilise 5 types de messages
–
Ping
–
Pong
–
Push
–
Query
–
Query-Hit
Additionnellement, Gnutella échange deux autres commandes
–
connect
–
ok
Programmation des Applications Réparties – Master M1 - 2007-2008
6
Les Messages – L'entête
●
Tous les messages partagent une entête commune de 23
octets
22
0
●
Steffenel
Structure
–
0-15
Identifiant de l'entête
–
16
type de payload (message)
–
17
TTL
–
18
nombre de sauts
–
19-22 taille du payload
Programmation des Applications Réparties – Master M1 - 2007-2008
7
Les Messages – PING
●
●
PING – sert à découvrir les autres noeuds sur le réseau
–
son identifiant est le 0x00
–
PING n'a pas de payload
Lorsque PING est reçu par un noeuds, celui-ci retransmet le
PING à tous ses voisins (sauf celui qui a envoyé le PING)
–
●
Steffenel
principe d'inondation du réseau
Permet de découvrir d'autres noeuds dans le réseau
Programmation des Applications Réparties – Master M1 - 2007-2008
8
Les Messages – PONG
●
PONG – Message émis en réponse au message PING
●
Identifiant : 0x01. Message avec un payload de 14 octets
13
0
●
Steffenel
Structure
–
0-1
le numéro de port d'écoute
–
2-5
l'adresse IP
–
6-9
le nombre de fichiers partagés
–
10-13 le nombre de ko partagés
Programmation des Applications Réparties – Master M1 - 2007-2008
9
Les Messages – PUSH
●
PUSH – Message émis pour demander une connexion
à travers un firewall
–
un servant à l'extérieur d'un firewall demande au servant à
l'intérieur de commencer une connexion HTTP
0
●
Steffenel
24
Identifiant : 0x40. Structure avec 25 octets
–
0-15
l'identifiant du servant
–
16-19 l'indexe du fichier
–
20-23 l'adresse IP
–
24-25 le numéro de port
Programmation des Applications Réparties – Master M1 - 2007-2008
10
Les Messages – QUERY
●
QUERY – Message utilisé pour rechercher un fichier
–
Identifiant 0x80, taille maximale de 256 octets
0
\0
●
Steffenel
Structure :
–
0-1
la vitesse minimum de réponse ( en ko/s)
–
2-
les critères de recherche. Se termine par NULL
Programmation des Applications Réparties – Master M1 - 2007-2008
11
Les Messages – QUERY-HIT
●
QUERY-HIT – Réponse à un message QUERY
–
Identifiant 0x81, pas de taille prédéfinie
0
\0
●
Steffenel
Structure :
–
0
nombre de sauts
–
1-2
numéro de port
–
3-6
adresse IP
–
7-10
vitesse de réponse (ko/s)
–
11-
réponse à QUERY
11-14
15-18
19-
index du fichier
taille du fichier (octets)
nom du fichier (fini par
\0)
Programmation des Applications Réparties – Master M1 - 2007-2008
12
Étapes de Connexion Gnutella
1. Connexion à un premier servant
–
chaque processus doit établir une connexion initiale avec un peer
connecté sur le réseau Gnutella
–
utilisation d'un host cache (liste avec peers candidats)
–
connexion similaire à celle de TCP
GNUTELLA
CONNECT/0.4<cr><lf>
GNUTELLA/0.4 200
OK<cr><lf>
GNUTELLA/0.4 200
OK<cr><lf>
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
13
Découverte d'autres Peers
●
Le processus envoie un PING à son servant primaire
–
celui-ci répond au PING et renvoie le PING à d'autres servants
dans sa liste de voisins (recursivement)
–
les réponses PONG sont reçues par le processus, qui peut ouvrir
des connexions TCP avec ces servants
PING
PONG
Steffenel
G
PINNG
PO
PING
PONG
PING
PON
G
Programmation des Applications Réparties – Master M1 - 2007-2008
14
Algorithme pour la découverte
procedure buildTopology(List hosts, Graph map)
startIndex = (size of hosts/numberOfProcs) *procID
endIndex = startIndex + (size of hosts/numberOfProcs) – 1
List subset = hosts[startIndex..endIndex]
for (all elements h in hosts)
(connect to GW)
connect to h
if(connection established) then
send PING message with TTL=2
(try for adj[h])
for(all PONG messages received)
if (PONG host h2!= h) then
(add all edges)
add edge between h and h2 to map
if (h2 is not in hosts) then
(if new node add)
add h2 to the end of hosts
Steffenel
end procedure
Programmation des Applications Réparties – Master M1 - 2007-2008
15
Recherche d'un Fichier
●
Lors de la recherche, le processus est similaire
–
un message QUERY est envoyé à tous les peers voisins,
recursivement, jusqu'à un TTL maximum
–
si un peer détient le fichier, une réponse QUERY-HIT est envoyée
avec les données sur le peer
QUERY
QUERY-HIT
Steffenel
RY IT
E
QURY-H
E
QU QUERY
QUER
Y
Programmation des Applications Réparties – Master M1 - 2007-2008
16
Transfert d'un Fichier
●
●
Le transfert de données est fait directement entre les peers
Lorsqu'un peer reçoit un QUERY-HIT, il peut demander le
transfert d'un fichier à l'aide du protocole HTTP :
GET /get/<File Index>/<File Name>/ HTTP/1.0\r\n
Connection: Keep-Alive\r\n
Range: bytes=0-\r\n
User-Agent: Gnutella\r\n3
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
17
Les PLUS de Gnutella
●
100 % ouvert – jamais le service ne pourra être fermé
●
Recherche par substrings
●
Utilisation de HTTP – transfert de fichiers simplifié
●
Tous les archives partagés sont disponibles
●
Algorithme de recherche décentralisé
●
Steffenel
–
Tolérant aux pannes
–
Rubuste
Facilité de connexion – noeuds locaux/distants traités également
Programmation des Applications Réparties – Master M1 - 2007-2008
18
Les MOINS de Gnutella
Steffenel
●
Transmission dans le réseau Gnutella – délai variable
●
Comment choisir un bon TTL ?
●
Possibilité de « denial of service » - retransmission sélective
●
Limitations dues aux firewalls
●
Problèmes de scalabilité
●
Problèmes de Freeriding
●
Problèmes d'authentification
●
Problèmes de contenu impropre
Programmation des Applications Réparties – Master M1 - 2007-2008
19
La Scalabilité de Gnutella
●
Si on considère
–
P = nombre d'utilisateurs connectés sur Gnutella
–
N = nombre de connexions gardées ouvertes par peer
–
T = TTL (7 par défaut)
–
B = débit
–
S = moyenne de données transportées par QUERY effectuée
Entêtes IP + TCP + Gnutella + vitesse + string + \0 =
20
Steffenel
+ 20 +
23
+
1
+
18 + 1 = 83 octets
Programmation des Applications Réparties – Master M1 - 2007-2008
20
Nombre d'Utilisateurs en Contact
N=2
N=3
N=4
N=5
N=6
N=7
N=8
Steffenel
T=1 T=2 T=3 T=4 T=5
2
4
6
8
10
3
9
31
45
93
4
16
52 160 484
5
25 105 425 1705
6
36 186 936 4686
7
49 301 1813 10885
8
64 456 3200 22408
T=6
12
189
1456
6825
23436
65317
156864
T=7
14
381
4372
27305
117186
391909
1098056
Programmation des Applications Réparties – Master M1 - 2007-2008
21
Trafic Généré en Octets (S=83)
N=2
N=3
N=4
N=5
N=6
N=7
N=8
T=1
166
249
332
415
498
581
664
T=2 T=3
T=4
T=5
T=6
332 498
664
830
996
747 1743
3735
7719
15687
1328 4316 13280
40172
120848
2075 8715 35275 141515
566475
2988 15438 77688 388938 1945188
4067 24983 150479 903455 5421311
5312 37848 265600 1859864 13019712
T=7
1162
31623
362876
2266315
9726438
32528447
91138646
Et ça uniquement pour faire une requête,
sans le transfert du fichier!!!!
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
22
Solutions à Certains Problèmes
●
●
Steffenel
Plusieurs clients implémentent des solutions afin de palier
certains de ces problèmes
–
structuration en « Ultrapeers »
–
signature SHA-1
–
utilisation de UDP pour les querys, query-hits ou transfert
–
metadata en XML
–
download segmenté (comme dans Bittorrent)
La version courante (0.4) est assez obsolète, et le GDF
(Gnutella Developer Forum) considère intégrer la plupart de ces
solutions à la version 0.6 qui doit sortir prochainement
Programmation des Applications Réparties – Master M1 - 2007-2008
23
Programmation des Applications
Réparties
Le protocole BitTorrent
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
24
BitTorrent - Origines
●
Le protocole BitTorrent a été crée par Bram Cohen en 2001
–
●
●
Steffenel
première implémentation en Python
Son objectif diffère de celui des autres systèmes P2P
–
P2P utilisé pour résoudre le problème de l'engorgement des
serveurs FTP
–
possibilité de distribuer des fichiers sans avoir nécessairement
une large bande passante
Donc, BitTorrent est plus similaire à un service FTP qu'à un
logiciel de partage P2P conventionnel
Programmation des Applications Réparties – Master M1 - 2007-2008
25
Pourquoi Étudier BitTorrent
●
BitTorrent réponds par une partie importante du trafic internet
aujourd'hui
–
Steffenel
une étude de 2004 de la société CacheLogic attribuait à BitTorrent
autour de 30% de tout le trafic Internet (l'ensemble des P2P
correspondait à 60%)
Programmation des Applications Réparties – Master M1 - 2007-2008
26
Les Principes de BitTorrent
●
●
Steffenel
Mécanisme de redistribution par “swarming” (essaim)
–
Chaque fichier est réparti en plusieurs morceaux
–
Les noeuds demandent des morceaux aux peers voisins
–
Les morceaux peuvent être téléchargés en désordre
Stratégies pour encourager la contribution de tous les
noeuds
–
on a plus de chance de télécharger un morceau si
on a un taux d'upload élevé
–
principe de la réciprocité
Programmation des Applications Réparties – Master M1 - 2007-2008
27
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
28
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
29
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
30
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
31
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
32
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
33
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
34
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
35
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
36
Démonstration
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
37
Le « Réseau » BitTorrent
●
Contrairement à d'autres P2P, BitTorrent ne donne pas une
vision globale de l'ensemble des noeuds connectés
–
groupes de noeuds autour d'une ressource (fichier)
●
–
interconnexion facilité par le tracker
●
–
point unique de défaillance
sans outil de recherche de fichiers
●
Steffenel
fichier .torrent, qui contient des métainformations
besoin d'utiliser d'autres moyens classiques (moteurs web)
Programmation des Applications Réparties – Master M1 - 2007-2008
38
Le Tracker
●
Le tracker n'est qu'une machine utilisé pour mettre en contact
les différents peers intéressés par la distribution d'un fichier
–
le tracker se comporte comme un serveur HTTP
–
on obtient un annuaire de peers qui sont connectés
–
le tracker permet de distinguer
●
●
●
les Leechers – peers qui ne possèdent aucun morceau ou
juste une partie des morceaux du fichier
Point unique de défaillance
–
Steffenel
les Seeders – peers qui ont la totalité des morceaux
si le tracker est hors ligne, la ressource ne peut pas être accédé
Programmation des Applications Réparties – Master M1 - 2007-2008
39
Le fichier .torrent
●
Le fichier .torrent contient entre autre :
–
●
l'adresse du tracker
la date de création
le nom du fichier
la taille du fichier
le hash du fichier (signature SHA-1)
Les informations sont B-encodés sous la forme de listes et
dictionnaires
d8:announce45:http://stats.snowtigers.net:3399/announce.php18:azureus_properties
d17:dht_backup_enablei0ee7:comment19:merci de seeder !! 10:created
by15:Azureus/3.0.4.213:creation datei1201609689e8:encoding5:UTF84:infod6:lengthi374644792e4:name38:Harry Potter & the Sorcerers
Stone.zip12:piece lengthi262144e6:pieces28600:»^@ò@Ç<89>æ ã©%øÜá¡ûÕ<83>
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
40
Le B-Encodage
●
Le B-encodage est un langage de description de données autodescriptif (ça vous rappelle XML ou ASN-1 ?)
–
chaîne de caractères : <taille>:<chaîne>
●
–
entiers : i<entier>e
●
–
eg.: pour encoder la liste [hello, dog] on écrira l5:hello4:doge
dictionnaire : d<chaîne><élément>e
●
Steffenel
eg.: pour encoder 5 on écrira i5e
liste : l<liste>e
●
–
eg.: pour encoder la chaîne « hello » on écrira 5:hello
pour écrire eg.: {hello=>world,hen=>eggs} on écrira
d5:hello5:worldd3:hen4:eggse
Programmation des Applications Réparties – Master M1 - 2007-2008
41
Les Messages
●
●
Steffenel
Tous les messages de BitTorrent sont de la forme
<taille préfixée><identifiant du message><données>
Il existe au total 11 messages, par exemple :
–
keep-alive
–
interested
–
not interested
–
have
–
piece
–
request
–
cancel
Programmation des Applications Réparties – Master M1 - 2007-2008
42
Architecture Générale
.torre
nt
Web page
with link
to .torrent
Tracker
Web
Server
C
A
Peer
Peer
[Leech]
Downloader
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
43
Architecture Générale
Web page
with link
to .torrent
Tracker
Web
Server
nt
e
c
un
.torre
o
t
ge
n
an
C
A
Peer
Peer
[Leech]
Downloader
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
44
Architecture Générale
Tracker
Web
Server
nt
Web page
with link
to .torrent
.torre
e
e
s
n
o
pe
st
i
r-l
p
s
re
C
A
Peer
Peer
[Leech]
Downloader
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
45
Architecture Générale
Tracker
Web
Server
.torre
nt
Web page
with link
to .torrent
shake hand
A
shak
Peer
[Leech]
Downloader
C
e ha
Peer
nd
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
46
Architecture Générale
Tracker
Web
Server
.torre
nt
Web page
with link
to .torrent
morceaux
A
mor
Peer
[Leech]
Downloader
C
cea
ux
Peer
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
47
Architecture Générale
Tracker
Web
Server
Web page
with link
to .torrent
.torre
nt
ce ist
n
u r-l
o
nn pee
a
t
e
ge ons
sp
e
r
morceaux
A
Peer
mor
mor ceaux
cea
ux
[Leech]
Downloader
C
Peer
B
[Seed]
Peer
[Leech]
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
48
Les Étapes – Contacter le Tracker
●
Le tracker est contacté à l'aide d'une requête HTTP GET
–
●
http://url?info_hash=hash&peer_id=id&ip=ipdupeer&port=port
On récupère un fichier avec une liste de peers
–
il contient au maximum 50 peers, choisis au hasard par le tracker
–
une intervalle minimum doit séparer deux requêtes de listes
d
8:intervali1800e
5:peers
l
d2:ip 11:10.10.10.10
7:peer id 5:peer1
4:port i8080e
e
e
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
49
Les Étapes – Contacter le Tracker
get http://url.com/announce?
info_hash=xxxx&
annuaire
tracker
...
ip 10.0.0.1
peer id peer1
port 8080
ip 10.0.0.2
peer id peer2
port 8080
...
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
50
Les Étapes – Connexion à un Peer
●
La connexion entre deux peers se fait par le protocole telnet
–
chaque partie envoie un message de handshake
handshake <taille><protocol><8bits><info_hash><id_peer>
–
si la connexion est ok et le peer possède des morceaux du fichier,
il est tenu d'envoyer un message bitfield
handshake
hadshake
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
51
Les Étapes – La Liste de Morceaux
●
Le message bitfield indique les morceaux qu'un peer possède
–
composé d'une chaîne de bits, où chaque bit indique la
possession ou non d'un tronçon du fichier
–
Exemple : un peer qui contient les morceaux 0 et 36-51 enverra
un message sous la forme :
●
05 80 00 00 00 0f ff f0 00 00 00 00 00
–
–
–
–
–
Steffenel
05 est l'identifiant du type de message (bitfield)
80 = 1000000, le premier morceau (0) est marqué « 1 »,
0f = 00001111, le peer possède les morceaux 36 à 39,
ff = 1111111, le peer possède les morceaux 40-47
f0 = 11110000, le peer possède les morceaux 48-51
Programmation des Applications Réparties – Master M1 - 2007-2008
52
Les Étapes – Démonstration d'Intérêt
●
●
●
Steffenel
Si le peer détient des morceaux intéressants, on s'annonce
avec un message interested (ou not interested, dans le cas
contraire)
Le peer peut contrôler qui a le droit de demander des morceaux
–
si le peer est prêt, il envoie un message unchoke
–
s'il n'est pas prêt ou s'il ne veut pas, le peer envoie un choke
Ce n'est qu'à ce moment que notre client peut demander des
tranches du fichier
–
envoie un message request avec le numéro du morceau et une
intervalle de bits
–
reçoit un message piece avec le numéro du morceau et les
données demandées
Programmation des Applications Réparties – Master M1 - 2007-2008
53
Les Étapes – Démonstration d'Intérêt
bitfield
interested
unchoke
request no Y du tronçon X
du bit 0 à Z
piece no Y de X
bit de 0 à Z
Steffenel
Programmation des Applications Réparties – Master M1 - 2007-2008
54
Les Étapes – Vérification et
Diffusion
●
Une fois entièrement téléchargé, le client vérifie le morceau :
–
calcul du hash (SHA1) du morceau et vérification par rapport au
hash indiqué dans le fichier .torrent
–
si tout correspond, le client ajoute les données au fichier
–
le client annonce à ses voisins qu'il possède le morceau X avec
un message have
have
X
have X
have
Steffenel
X
Programmation des Applications Réparties – Master M1 - 2007-2008
55
Algorithmes pour le Partage
●
Lors d'un partage, BitTorrent cherche à
–
minimiser le freeriding
●
–
résister au phénomène des « flash mobs »
●
●
Steffenel
décourager ceux qui veulent seulement télécharger un fichier,
sans contribuer en upload
un flash-mob est l'intérêt brusque par un fichier, ce qui
surcharge les seeders et augmente le temps moyen de D/L
Pour cela, il implémente quelques algorithmes
–
Random First Piece
–
Rarest First
–
Optimistic Unchoking
–
Encoragement au Partage
Programmation des Applications Réparties – Master M1 - 2007-2008
56
Algorithme Random First Piece
●
Sert à éviter l'un des principaux problèmes des autres systèmes
de partage P2P
–
●
Le choix au hasard du premier morceau permet de contribuer
rapidement dans le réseau dès que le premier morceau est
reçu
–
●
Steffenel
tous les pairs ne détiennent que le début du fichier
la probabilité d'avoir le même morceau est diluée, donc augmente
la chance de devenir « source »
Après le premier morceau, on passe à l'algorithme Rarest First
Programmation des Applications Réparties – Master M1 - 2007-2008
57
Algorithme Rarest First
●
●
●
L'un des problèmes avec la technique de partage par swarming
est que certains morceaux peuvent devenir indisponibles, ce
qui rend impossible le téléchargement complet
La stratégie à suivre est de faire multiplier les sources pour les
morceaux les plus rares
Chaque client est mis au courant des pièces détenues par les
autres clients. Il suffit de les compter pour savoir quel morceau
est le plus rare et le demander
–
Steffenel
avantages :
●
évite les fichiers incomplets
●
augmente la vitesse moyenne de téléchargement
●
le détenteur d'un morceau rare gagnent de « bonus » upload
Programmation des Applications Réparties – Master M1 - 2007-2008
58
Algorithme Optimistic Unchoking
●
●
Pour avoir le droit de demander des morceaux, un peer doit
être « unchoked »
Si le fichier recherché est trop demandé, cela peut se traduire
par des longues files d'attente
–
●
Lorsqu'un client vient de se connecter, on lui donne trois fois
plus de chance d'être sélectionné (unchoked) que pour un
client normal
–
Steffenel
de plus, un peer qui vient de se connecter ne détient aucun
morceau pour partage, ce qui n'améliore pas ses chances
on augmente la chance d'obtenir un morceau complet, qui
pourrait être partagé avec les autres peers
Programmation des Applications Réparties – Master M1 - 2007-2008
59
Encouragement au Partage
●
●
●
●
Mécanisme pour récompenser les clients qui envoient des
données
À chaque instant un client upload vers un maximum de 4 peers
Le choix des clients en upload se fait de préférence entre les
quatre de chez qui notre client télécharge le plus vite
–
3 clients par rapport à leur vitesse de upload
–
1 client choisi au hasard (optimistic unchoking)
Principe de la réciprocité
–
Steffenel
évalué à chaque 10 secondes
Programmation des Applications Réparties – Master M1 - 2007-2008
60
Quelques Critiques sur BitTorrent
●
Peu efficace pour des petits fichiers (< 30Mo)
●
Absence de fonction de recherche
–
●
●
Tracker unique
–
goulot d'étranglement, point unique de défaillance
–
gestion des peers peu intelligente
Faiblesse de la vitesse de téléchargement au début
–
●
Steffenel
problème pour les vieux fichiers ou trackers inactifs
rien à partager, donc peu de priorité pour télécharger
Absence de mesures pour contourner les firewalls
Programmation des Applications Réparties – Master M1 - 2007-2008
61