Upload
celestina-roberti
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
1
Telematica di BaseTelematica di Base
Applicazioni P2P Applicazioni P2P
2
The Peer-to-Peer System Architecture
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
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
3
Definition of P2P 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
“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
4
P2PP2P 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.
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
request
response
request
response
process 2
5
P2PP2P
The peer-to-peer paradigm is appropriate for applications such as instant messaging, peer-to-peer file transfers, video conferencing, and collaborative work.
The peer-to-peer paradigm is appropriate for applications such as instant messaging, peer-to-peer file transfers, video conferencing, and collaborative work.
6
7
P2P file sharingP2P file sharing
Alice runs P2P client application on her notebook computer
Intermittently connects to Internet; gets new IP address for each connection
Asks for “Hey Jude” Application displays other peers that have copy of Hey Jude.
Alice runs P2P client application on her notebook computer
Intermittently connects to Internet; gets new IP address for each connection
Asks for “Hey Jude” Application displays other peers that have copy of Hey Jude.
Alice chooses one of the peers, Bob.
File is copied from Bob’s PC to Alice’s notebook: HTTP GET
While Alice downloads, other users uploading from Alice.
Alice’s peer is both a Web client and a transient Web server.
All peers are servers = highly scalable!
Alice chooses one of the peers, Bob.
File is copied from Bob’s PC to Alice’s notebook: HTTP GET
While Alice downloads, other users uploading from Alice.
Alice’s peer is both a Web client and a transient Web server.
All peers are servers = highly scalable!
8
P2P: directory centralizzata
P2P: directory centralizzata
NAPSTER1) Quando un peer si connette alla rete si collega ad un server centralizzato: Indirizzo IP Informazione condivisa
2) Alice effettua una query per trovare “Hey Jude”
3) Alice scarica il file da Bob
NAPSTER1) Quando un peer si connette alla rete si collega ad un server centralizzato: Indirizzo IP Informazione condivisa
2) Alice effettua una query per trovare “Hey Jude”
3) Alice scarica il file da Bob
centralizeddirectory server
peers
Alice
Bob
1
1
1
12
3
9
DiscussioneDiscussione
Singolo punto di fallimento
Performance limitata
Copyright ….
Singolo punto di fallimento
Performance limitata
Copyright ….
Due aspetti
a) Trasferimento dei files: distribuito
b) La localizzazione dell’informazione e’ centralizzata
Due aspetti
a) Trasferimento dei files: distribuito
b) La localizzazione dell’informazione e’ centralizzata
10
GnutellaGnutella
Distribuito: Non esiste un server globale
public domain
Distribuito: Non esiste un server globale
public domainoverlay network: una struttura a grafo
Nodi sono i peerEsiste 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)
overlay network: una struttura a grafo
Nodi sono i peerEsiste 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)
11
12
GnutellaGnutella
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
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
13
GnutellaGnutella
Query
QueryHit
Query
Query
QueryHit
Query
Query
QueryHit
File transfer:HTTP GET
14
Gnutella: Peer joiningGnutella: 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
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
15
Gnutella: Query flooding
Gnutella: Query flooding
Query sono inviate ai viciniQuery forwardingSe l’oggetto viene trovato il riferimento è inviato direttamente al peer di partenza
Query sono inviate ai viciniQuery forwardingSe l’oggetto viene trovato il riferimento è inviato direttamente al peer di partenza
join
16
Gnutella: caratteristiche innovative
Gnutella: caratteristiche innovative
overlay networkpeer sono i nodiconnessioni tra peer
Rete virtualebootstrap nodeun peer che si connette (peer join) deve individuare un peer nella overlay net
overlay networkpeer sono i nodiconnessioni tra peer
Rete virtualebootstrap nodeun peer che si connette (peer join) deve individuare un peer nella overlay net
vantaggiNon è presente una directory centralizzataIl servizio di localizzazione è distribuito tra i peer
svantaggiQuery flooding
TTL per delimitare il raggio di azione della query
vantaggiNon è presente una directory centralizzataIl servizio di localizzazione è distribuito tra i peer
svantaggiQuery flooding
TTL per delimitare il raggio di azione della query
17
KaZaAKaZaA
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.
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 relationshipsin overlay network
18
19
KaZaA: QueryingKaZaA: Querying
Each file has a hash and a descriptorClient 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 downloadingHTTP requests using hash as identifier sent to peers holding desired file
Each file has a hash and a descriptorClient 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 downloadingHTTP requests using hash as identifier sent to peers holding desired file
20
21
P2P Communications: IMP2P Communications: IM
Istant MessagingServer centrale con la buddy list
Utente si connette al serverChatting among peersServer centralizzato
Soluzione a la Napster
Istant MessagingServer centrale con la buddy list
Utente si connette al serverChatting among peersServer centralizzato
Soluzione a la Napster
22
P2P CommunicationsP2P Communications
Skype: Internet Telephony SoftwarePermette di effettuare chiamate telefoniche su internetReti telefoniche raggiungibili via internet
Progettato da chi ha progettato KaZaA
Architettura simile a KaZaA
Skype: Internet Telephony SoftwarePermette di effettuare chiamate telefoniche su internetReti telefoniche raggiungibili via internet
Progettato da chi ha progettato KaZaA
Architettura simile a KaZaA
23
SkypeSkype
Applicazione proprietaria: non sono disponibili dettagli tecnici
Alcune informazioniServer centrale per “billing”GroupLeader come KaZaA
Funzionalita’ similariServizio di directory per gli utenti on-line
Applicazione proprietaria: non sono disponibili dettagli tecnici
Alcune informazioniServer centrale per “billing”GroupLeader come KaZaA
Funzionalita’ similariServizio di directory per gli utenti on-line
24
SkypeSkype
VantaggiDiminuzione dei costiQualita’ elevata della comunicazione
Efficienza nella trasmissione e codifica del segnale sonoro
VantaggiDiminuzione dei costiQualita’ elevata della comunicazione
Efficienza nella trasmissione e codifica del segnale sonoro
25
P2P CollaborationP2P Collaboration
Condivisione delle risorse Esempio: enciclopedia on line: wikipediaScrittura individualeModifiche individualiGuida on line
Condivisione delle risorse Esempio: enciclopedia on line: wikipediaScrittura individualeModifiche individualiGuida on line
26
P2P EmailP2P Email
Il servizio di email su internet
Mailserver (mailbox utenti)POP3 -- Post Office ProtocolIMAP -- Internet Mail Access Protocol
Il servizio di email su internet
Mailserver (mailbox utenti)POP3 -- Post Office ProtocolIMAP -- Internet Mail Access Protocol
27
EmailEmailTre 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
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 mailbox
outgoing message queue
mailserver
useragent
useragent
useragent
mailserver
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
28
E-Mail: mail serverE-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
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
mailserver
useragent
useragent
useragent
mailserver
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
29
Scenario: Alice e Bob Scenario: Alice e Bob 1) Alice invia una e-
mail a [email protected]) Messsaggio è
inserito nella coda del mail server
3) SMTP (lato cliente) apre una connessione TCP con il mail server di Bob
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
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)
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)
useragent
mailserver
mailserver user
agent
1
2 3 4 56
30
31
32
33
34