Beruflich Dokumente
Kultur Dokumente
totalement dcentralis
!
un noeud est appel servant - la fois client et serveur
Ping
Pong
Push
Query
Query-Hit
!
Additionnellement, Gnutella change deux autres commandes
connect
ok
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 7
Les Messages L'entte
!
Tous les messages partagent une entte commune de 23
octets
!
Structure
17 TTL
18 nombre de sauts
2-5 l'adresse IP
20-23 l'adresse IP
0 nombre de sauts
3-6 adresse IP
les rponses PONG sont reues par le processus, qui peut ouvrir
des connexions TCP avec ces servants
PING
P
I
N
G
PING
P
IN
G
PONG
P
O
N
G
PONG
P
O
N
G
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 15
Algorithme pour la dcouverte
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
end procedure
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 16
Recherche d'un Fichier
!
Lors de la recherche, le processus est similaire
Rubuste
!
Facilit de connexion noeuds locaux/distants traits galement
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 19
Les MOINS de Gnutella
!
Transmission dans le rseau Gnutella dlai variable
!
Comment choisir un bon TTL ?
!
Possibilit de denial of service - retransmission slective
!
Limitations dues aux firewalls
!
Problmes de scalabilit
!
Problmes de Freeriding
!
Problmes d'authentification
!
Problmes de contenu impropre
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 20
La Scalabilit de Gnutella
!
Si on considre
B = dbit
structuration en Ultrapeers
signature SHA-1
metadata en XML
principe de la rciprocit
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 28
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 29
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 30
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 31
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 32
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 33
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 34
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 35
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 36
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 37
Dmonstration
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 38
Le Rseau BitTorrent
!
Contrairement d'autres P2P, BitTorrent ne donne pas une
vision globale de l'ensemble des noeuds connects
l'adresse du tracker
la date de cration
le nom du fichier
la taille du fichier
le hash du fichier (signature SHA-1)
!
Les informations sont B-encods 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:UTF-
84:infod6:lengthi374644792e4:name38:Harry Potter & the Sorcerers
Stone.zip12:piece lengthi262144e6:pieces28600:^@@<89> %<83>
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 41
Le B-Encodage
!
Le B-encodage est un langage de description de donnes auto-
descriptif (a vous rappelle XML ou ASN-1 ?)
entiers : i<entier>e
!
eg.: pour encoder 5 on crira i5e
liste : l<liste>e
!
eg.: pour encoder la liste [hello, dog] on crira l5:hello4:doge
dictionnaire : d<chane><lment>e
!
pour crire eg.: {hello=>world,hen=>eggs} on crira
d5:hello5:worldd3:hen4:eggse
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 42
Les Messages
!
Tous les messages de BitTorrent sont de la forme
<taille prfixe><identifiant du message><donnes>
!
Il existe au total 11 messages, par exemple :
keep-alive
interested
not interested
have
piece
request
cancel
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 43
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 44
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
g
e
t
a
n
n
o
u
n
c
e
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 45
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
r
e
s
p
o
n
s
e
p
e
e
r
-
l
i
s
t
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 46
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
shake hand
s
h
a
k
e
h
a
n
d
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 47
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
morceaux
m
o
r
c
e
a
u
x
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 48
Architecture Gnrale
Web page
with link
to .torrent
A
B
C
Peer
[Leech]
Downloader
Peer
[Seed]
Peer
[Leech]
Tracker
Web
Server
.
t
o
r
r
e
n
t
morceaux
m
o
r
c
e
a
u
x
m
o
r
c
e
a
u
x
g
e
t
a
n
n
o
u
n
c
e
r
e
s
p
o
n
s
e
p
e
e
r
-
l
i
s
t
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 49
Les tapes Contacter le Tracker
!
Le tracker est contact l'aide d'une requte HTTP GET
http://url?info_hash=hash&peer_id=id&ip=ipdupeer&port=port
!
On rcupre un fichier avec une liste de peers
s'il n'est pas prt 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
minimiser le freeriding
!
dcourager ceux qui veulent seulement tlcharger un fichier,
sans contribuer en upload
Rarest First
Optimistic Unchoking
Encoragement au Partage
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 57
Algorithme Random First Piece
!
Sert viter l'un des principaux problmes des autres systmes
de partage P2P
avantages :
!
vite les fichiers incomplets
!
augmente la vitesse moyenne de tlchargement
!
le dtenteur d'un morceau rare gagnent de bonus upload
Steffenel Programmation des Applications Rparties Master M1 - 2007-2008 59
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