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