Telematica di Base
Applicazioni P2P
1
The Peer-to-Peer System
Architecture
 peer-to-peer is a network architecture where
computer resources and services are direct
exchanged between computer systems.
 In such an architecture, computers that have
traditionally been used solely as clients communicate
directly among themselves and can act as both
clients and servers, assuming whatever role is most
efficient for the network.
 http://www.peer-to-peerwg.org/whatis/index.html
2
Definition of P2P
“P2P is a way of structuring distributed
applications such that the individual
nodes have symmetric roles. Rather
than being divided into clients and
servers each with quite distinct roles, in
P2P applications a node may act as
both a client and a server.”
Excerpt from the Charter of Peer-to-Peer research Group,
IETF/IRTF, June 24, 2003
3
P2P
 In the peer-to-peer paradigm, the participating processes play
equal roles, with equivalent capabilities and responsibilities
(hence the term “peer”).
 Each participant may issue a request to another participant and
receive a response.
process 1
re que st
re que st
re sponse
re sponse
process 2
4
P2P
The peer-to-peer paradigm is
appropriate for applications such
as instant messaging, peer-to-peer
file transfers, video conferencing,
and collaborative work.
5
6
P2P file sharing
 Alice chooses one of the
peers, Bob.
 Alice runs P2P client
 File is copied from Bob’s
application on her
PC to Alice’s notebook:
notebook computer
HTTP GET
 Intermittently connects  While Alice downloads,
to Internet; gets new IP
other users uploading
address for each
from Alice.
connection
 Alice’s peer is both a
 Asks for “Hey Jude”
Web client and a
 Application displays
transient Web server.
other peers that have
All peers are servers =
copy of Hey Jude.
highly scalable!
7
P2P: directory centralizzata
NAPSTER
1) Quando un peer si
connette alla rete si
collega ad un server
centralizzato:
Bob
centralized
directory server
 Indirizzo IP
 Informazione condivisa
2) Alice effettua una query
per trovare “Hey Jude”
3) Alice scarica il file da Bob
1
peers
1
3
1
2
1
Alice
8
Discussione
Due aspetti
Singolo punto di
fallimento
a) Trasferimento dei
Performance limitata
files: distribuito
Copyright ….
b) La localizzazione
dell’informazione e’
centralizzata
9
Distribuito: Non
esiste un server
globale
public domain
overlay network: una struttura a grafo
Nodi sono i peer
Esiste un arco tra X e Y se esiste una
connessione TCP tra X e Y
Rete overlay = peer attivi e le loro
connessioni
Tipicamente ogni nodo ha 10 vicini
(al massimo)
Gnutella
10
11
Gnutella



Le query sono trasmesse sulle con. TCP
Query Forward: peers inoltrano i msg nella rete
overlay
QueryHit : risposta alla query lungo il cammino
“inverso” della rete overlay
12
Gnutella
File transfer:
HTTP GET

Query
QueryHit
Query
QueryHit
13
Gnutella: Peer joining
1. Joining peer X must find some other peer in
Gnutella network: use list of candidate peers
2. X sequentially attempts to make TCP with
peers on list until connection setup with Y
3. X sends Ping message to Y; Y forwards Ping
message.
4. All peers receiving Ping message respond
with Pong message
5. X receives many Pong messages. It can then
setup additional TCP connections
14
Gnutella: Query flooding
Query sono inviate ai vicini
Query forwarding
Se l’oggetto viene trovato il riferimento è
inviato direttamente al peer di partenza
join
15
Gnutella: caratteristiche innovative
overlay network
peer sono i nodi
connessioni tra peer
Rete virtuale
bootstrap node
un peer che si
connette (peer join)
deve individuare un
peer nella overlay net
vantaggi
Non è presente una
directory centralizzata
Il servizio di
localizzazione è
distribuito tra i peer
svantaggi
Query flooding
TTL per delimitare il
raggio di azione della
query
16
KaZaA
 Strutturazione dei peer
 Peer = group leader o e’
associato a un group
leader.
 TCP con Peer -- Group
leader
 TCP cons tra coppie di
group leader.
 Group leader: sono una
sorta di directory
centralizzata per i peer
associati al gruppo.
ordinary peer
group-leader peer
neighoring relationships
in overlay network
17
18
KaZaA: Querying
Each file has a hash and a descriptor
Client sends keyword query to its group
leader
Group leader responds with matches:
For each match: metadata, hash, IP address
If group leader forwards query to other group
leaders, they respond with matches
Client then selects files for downloading
HTTP requests using hash as identifier sent to
peers holding desired file
19
20
P2P Communications: IM
Istant Messaging
Server centrale con la buddy list
Utente si connette al server
Chatting among peers
Server centralizzato
Soluzione a la Napster
21
P2P Communications
Skype: Internet Telephony Software
Permette di effettuare chiamate telefoniche
su internet
Reti telefoniche raggiungibili via internet
Progettato da chi ha progettato KaZaA
Architettura simile a KaZaA
22
Skype
Applicazione proprietaria: non sono
disponibili dettagli tecnici
Alcune informazioni
Server centrale per “billing”
GroupLeader come KaZaA
Funzionalita’ similari
Servizio di directory per gli utenti on-line
23
Skype
Vantaggi
Diminuzione dei costi
Qualita’ elevata della comunicazione
Efficienza nella trasmissione e codifica del
segnale sonoro
24
P2P Collaboration
Condivisione delle risorse
Esempio: enciclopedia on line: wikipedia
Scrittura individuale
Modifiche individuali
Guida on line
25
P2P Email
Il servizio di email su internet
Mailserver (mailbox utenti)
POP3 -- Post Office Protocol
IMAP -- Internet Mail Access Protocol
26
Email
outgoing
message queue
user mailbox
Tre componenti:
 user agent
 mail server
 simple mail transfer protocol:
smtp
User Agent
 Funzionalità: per leggere,
editare ed inviare mail
 Eudora, Outlook, Pine,
MacMail
 Messaggi sono memorizzati
nel server
user
agent
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
27
E-Mail: mail server
Mail Server
 mailbox contiene i msg
non ancora letti degli
utenti
 message coda dei msg
da inviare
 Smtp: protocollo di
comunicazione tra i mail
server
user
agent
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
28
Scenario: Alice e Bob
4) SMTP (lato cliente) trasmette
il messaggio di Alice sulla
connessione TCP
5) Il mailserver di Bob
memorizza il messaggio nella
mailbox di Bob
6) Bob legge il messaggio
tramite il suo user agent
(usando POP3 o IMAP)
1) Alice invia una e-mail a
[email protected]
2) Messsaggio è inserito nella
coda del mail server
3) SMTP (lato cliente) apre una
connessione TCP con il mail
server di Bob
1
user
agent
2
mail
server
3
mail
server
4
5
6
user
agent
29
30
31
32
33
34
Scarica

Lucidi