1 telematica di base applicazioni p2p. 2 the peer-to-peer system architecture peer-to-peer is a...

29
1 Telematica di Base Applicazioni P2P

Upload: emmeline-harrington

Post on 27-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

1

Telematica di BaseTelematica di Base

Applicazioni P2P Applicazioni P2P

Page 2: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

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

Page 3: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

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

Page 4: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

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.pro ce s s 1

r e q u e s t

r e s p o n s e

r e q u e s t

r e s p o n s e

pro ce s s 2

Page 5: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

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.

Page 6: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

6

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!

Page 7: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

7

NAPSTER1)The peer establishes a

connection to a centralized server

- IP address

- Shared information

2) Alice produces a query to find “Hey Jude”

3) Alice downloads the file from Bob

NAPSTER1)The peer establishes a

connection to a centralized server

- IP address

- Shared information

2) Alice produces a query to find “Hey Jude”

3) Alice downloads the file from Bob

centralizeddirectory server

peers

Alice

Bob

1

1

1

12

3

P2P:Centralized Directory

Page 8: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

8

DiscussionDiscussion

Single failure point

limited performance

Copyright ….

Single failure point

limited performance

Copyright ….

Two aspects

a) distributed file transfer

b) centralized information

Two aspects

a) distributed file transfer

b) centralized information

Page 9: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

9

Page 10: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

GnutellaGnutella

10

• It is one of the first systems wich does not depend from a centralized directory.

• Each node which implements Gnutella protocol knows a set of different nodes which implement the same protocol.

• Query message. Sent by a node to a close node with the specification of the request object.

• Query response. If one of the close nodes owns the object replays giving IP and port number.

• Get and put. To obtain the object.

Page 11: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

11

If the node that received the request does not able to satisfy it, send the Query message to each of the own close nodes belongimg to the overlay network and the process repeats.

TTL (Time to Live). For each request a limit time is fixed in order to limit the flooding of the network.

QID (query identifier). Each Query message contains QID, but does not contain the identity of the node of the original message.

Each node manages a directory of the Query messages recently received, storing either the QID or the identity of the close node which sent the message.

If the node receive a message with the same QID of a previous message, the message is rejected.Every time that a node receives a Query Response from a close node, send the response to the close node that sent the request

Page 12: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

12

Page 13: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

13

In this way the response flows to the source node without none of the intermediate nods knows the source node.

Page 14: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

14

GnutellaGnutella

Distributed: no global server

public domain

Distributed: no global server

public domain

overlay network: graph structureThe nodes are the peersarc between X e Y: it exists a TCP

connection between X e Yoverlay network= active peers

and their connectionstypically, for each node there

are (at maximum) 10 “close” nodes

overlay network: graph structureThe nodes are the peersarc between X e Y: it exists a TCP

connection between X e Yoverlay network= active peers

and their connectionstypically, for each node there

are (at maximum) 10 “close” nodes

Page 15: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

15

Page 16: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

16

GnutellaGnutella

the query is transmitted on the TCP con. Query Forward: peers forward the msg on

the overlay network QueryHit : the response to the query is sent

on the “reverse” path of the overlay network

the query is transmitted on the TCP con. Query Forward: peers forward the msg on

the overlay network QueryHit : the response to the query is sent

on the “reverse” path of the overlay network

Page 17: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

17

GnutellaGnutella

Query

QueryHit

Query

Query

QueryHit

Query

Query

QueryHit

File transfer:HTTP GET

Page 18: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

18

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

Page 19: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

19

Gnutella: Query floodingGnutella: Query floodingQueries are sent

to the close nodesQuery forwardingIf the object is

found, its reference is directly sent to the starting node.

Queries are sent to the close nodes

Query forwardingIf the object is

found, its reference is directly sent to the starting node.

Page 20: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

20

Gnutella:innovative featuresGnutella:innovative features

overlay networkPeers are nodesConnections

among peers Virtual networkbootstrap nodea connecting peer

(peer join) must find a peer in the overlay network

overlay networkPeers are nodesConnections

among peers Virtual networkbootstrap nodea connecting peer

(peer join) must find a peer in the overlay network

vantagesThere is’nt a

centralized directoryThe localization

service is distributed among the peers

disavantagesQuery flooding

Restriction of the area of the query

vantagesThere is’nt a

centralized directoryThe localization

service is distributed among the peers

disavantagesQuery flooding

Restriction of the area of the query

Page 21: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

21

KaZaAKaZaA

peer structure Peer = group leader o it

is associated to a group leader.

TCP with Peer -- Group leader

TCP cons among pairs of group leader.

Group leaders: is a particular type of centralized directory for the peers associated to the group

peer structure Peer = group leader o it

is associated to a group leader.

TCP with Peer -- Group leader

TCP cons among pairs of group leader.

Group leaders: is a particular type of centralized directory for the peers associated to the group

ordinary peer

group-leader peer

neighoring re la tionshipsin overlay network

Page 22: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

22

Page 23: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

23

Page 24: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

24

P2P Communications: IMP2P Communications: IM

Istant Messagingcentral server with the buddy listUser connects the server

chatting among peerscentralized server

Solution like Napster

Istant Messagingcentral server with the buddy listUser connects the server

chatting among peerscentralized server

Solution like Napster

Page 25: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

25

P2P CommunicationsP2P Communications

Skype: Internet Telephony SoftwareIt allows to use internet for telephone

calls. telephonic networks reached via internet

Architecture analogous to KaZaA

Skype: Internet Telephony SoftwareIt allows to use internet for telephone

calls. telephonic networks reached via internet

Architecture analogous to KaZaA

Page 26: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

26

SkypeSkype

Proprietary application: technical description is not available

Some informations:Central server for “billing”GroupLeader as KaZaA

Similar featuresdirectory service for the on-line users

Proprietary application: technical description is not available

Some informations:Central server for “billing”GroupLeader as KaZaA

Similar featuresdirectory service for the on-line users

Page 27: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

27

EmailEmailThree components: user agent mail server simple mail transfer

protocol: smtp

User Agent features: reading, writing

and sending mail Eudora, Outlook, Pine,

MacMail Messages are stored in

the server

Three components: user agent mail server simple mail transfer

protocol: smtp

User Agent features: reading, writing

and sending mail Eudora, Outlook, Pine,

MacMail Messages are stored in

the server

user mailbox

outgoing message queue

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 28: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

28

E-Mail: mail serverE-Mail: mail server

Mail Server mailbox contains

messages not i msg non still read by the users

Smtp: communication protocol among the mail servers

Mail Server mailbox contains

messages not i msg non still read by the users

Smtp: communication protocol among the mail servers

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 29: 1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services

29

Alice e Bob Alice e Bob 1) Alice sends a e-mail to

[email protected]

2) The message is inserted in the queue of the mail server

3) SMTP (client side) defines a connection TCP with the Bob mail server

1) Alice sends a e-mail to [email protected]

2) The message is inserted in the queue of the mail server

3) SMTP (client side) defines a connection TCP with the Bob mail server

4) SMTP (client side) sends the Alice message on the TCP connection

5)The mailserver of Bob stores the message in the mailbox of Bob

6) Bob read the message using its user agent (POP3 o IMAP)

4) SMTP (client side) sends the Alice message on the TCP connection

5)The mailserver of Bob stores the message in the mailbox of Bob

6) Bob read the message using its user agent (POP3 o IMAP)

useragent

mailserver

mailserver user

agent

1

2 3 4 56