1
哈工大计算机学院李全龙Network Application Development P2P Application Development 1
Chapter 7: P2P Application
development
Chapter goal:
? P2P application model
? P2P application design
? P2P example
哈工大计算机学院李全龙Network Application Development P2P Application Development 2
Chapter 7: P2P Application
development
Chapter goal:
? P2P application model
? P2P application design
? P2P example
哈工大计算机学院李全龙Network Application Development P2P Application Development 3
What is Peer-To-Peer? (1/3)
? P2P is a class of applications that:
? Takes advantage of resources – (storage, CPU,
etc,..) – available at the edges of the Internet.
? Because accessing these decentralized
resources means operating in an environment of
unstable connectivity and unpredictable IP
addresses, P2P nodes must operate outside the
DNS system and have significant or total
autonomy from central servers.
哈工大计算机学院李全龙Network Application Development P2P Application Development 4
What is Peer-To-Peer? (2/3)
? P2P computing is:
? The sharing of computer resources and
services by direct exchange between
systems.
? Peer-to-peer computing takes advantage
of existing computing power and
networking connectivity, allowing
economical clients to leverage their
collective power to benefit the entire
enterprise.
哈工大计算机学院李全龙Network Application Development P2P Application Development 5
What is Peer-To-Peer? (3/3)
? P2P computing is distributed
computing with the following
desirable properties:
? Resource Sharing
? Dual client/server role
? Decentralization/Autonomy
? Scalability
? Robustness/Self-Organization
哈工大计算机学院李全龙Network Application Development P2P Application Development 6
A Brief History of P2P
? P2P is not a new technology
? It has existed since the Internet was taking form in the 1970s
? Recent changes in technology and the improved computing
capability of desktops have brought about P2P’s revival on a
larger scale
? P2P model-based application is confined to sharing files
? As a result of the increased demand for Web-base services,
users felt the need to control, exchange, and share resources
directly
? Meanwhile, in the late 1990s, PCs became increasingly powerful
in terms of speed and processing power
? Software developers realized that they could put server
software on individual PCs and initiate a direct two-way data
flow between two peers
? Led to the revival of P2P
? Interestingly, the IP routing infrastructure is still P2P
? 1999-2000, Napster shows the true potential of P2P
2
哈工大计算机学院李全龙Network Application Development P2P Application Development 7
Application Architecture
? Client-server
? P2P
? Hybrid
哈工大计算机学院李全龙Network Application Development P2P Application Development 8
Client-server architecture
server:
? always-on host
? permanent IP address
? server farms for scaling
clients:
? communicate with server
? may be intermittently
connected
? may have dynamic IP
addresses
? do not communicate directly
with each other
哈工大计算机学院李全龙Network Application Development P2P Application Development 9
Pure P2P architecture
? no always on server
? arbitrary end systems
directly communicate
? peers are intermittently
connected and change IP
addresses
? example: Gnutella
Highly scalable
But difficult to manage
哈工大计算机学院李全龙Network Application Development P2P Application Development 10
Hybrid of client-server and P2P
Napster
? File transfer P2P
? File search centralized:
? Peers register content at central server
? Peers query same central server to locate content
Instant messaging
? Chatting between two users is P2P
? Presence detection/location centralized:
? User registers its IP address with central server
when it comes online
? User contacts central server to find IP addresses of
buddies
哈工大计算机学院李全龙Network Application Development P2P Application Development 11
From the Client/Server Model to P2P
? P2P-based models decrease the dependency on the
server
? Some P2P models do not requires servers
? No single point of failure problems in P2P
? Both models have advantages as well as
disadvantages
? Another advantage of P2P is that companies can
build collective computing powers
? P2P has shaken the boundaries of networking in
terms of sharing resources and costs incurred on
servers
哈工大计算机学院李全龙Network Application Development P2P Application Development 12
Various P2P Models
? P2P models can be divided into the
following categories:
? Pure P2P
? P2P with a simple discovery server
? P2P with discovery and lookup servers
? P2P with discovery, lookup, and content
servers
3
哈工大计算机学院李全龙Network Application Development P2P Application Development 13
Pure P2P Model
? Pure P2P model entirely
depends on computers (clients
in the C/S model)
? Peers find other connected
peers on the network
dynamiclly
? The entire communication
occurs among connected peers
without any assistance from a
server
? Pure P2P models provide almost
plug-and-play features for
working with the Internet
? The only problem with the pure
P2P model is finding peers
哈工大计算机学院李全龙Network Application Development P2P Application Development 14
P2P with Simple Discovery Server
? Such P2P models do not actually involve a
server
? The role of the server is restricted to
providing the names of already connected
peers to the incoming peer
? The server only assists peers by
providing a list of connected peers
? Establishing connection and
communication still remains the job of
the peers
? This model increases the chances of
finding a larger number of peers
? To download a resource, a peer has to
approach each connected peer individually
? May need more time
哈工大计算机学院李全龙Network Application Development P2P Application Development 15
P2P with a Discovery and Lookup
Server
? The server is used to provide the
list of connected peers along with
the resources available
? This model reduces the burden on
peers
? The server initiates communication
between two peers
? Once again, the two connected
peers establish communication,
and perform various activities
哈工大计算机学院李全龙Network Application Development P2P Application Development 16
P2P with a Discovery, Lookup,
and Content Server
? The server dominates as in a
typical client/server architecture
? Peers are not permitted to
connect with each other directly
? All resources are stored in the
database of the server
? Major disadvantage of this model
is that the server slows down if
too many requests come up
simultaneously
? There is single point of failure in
server
哈工大计算机学院李全龙Network Application Development P2P Application Development 17
Existing P2P Applications
? Napster
? Gnutella
哈工大计算机学院李全龙Network Application Development P2P Application Development 18
Centralized: Napster
? Napster used centralized servers to keep a
catalog of available files. (3rd model)
1. User sends out
request Napster
searches central
database
Search request
2. The central server sends
back a list of available files
for download
Search response
Napster
server
user
user
user
user
3. Requesting user downloads
the file directly from another
Napster user computer
Download
from user
4
哈工大计算机学院李全龙Network Application Development P2P Application Development 19
Centralized: pros and cons
? pros
? More effective, comprehensive searches
? Access is controlled
? cons
? System has single points of entry; one
fails could bring whole system down
? Broken links, out of date information.
哈工大计算机学院李全龙Network Application Development P2P Application Development 20
Decentralized
? Every user acts as a client, a server or
both (servent).
? User connects to framework and becomes a
member of the community, allowing others
to connect through him/her
? Users speak directly to other users with no
intermediate or central authority
? Not one entity controls the information
that passes through the community
哈工大计算机学院李全龙Network Application Development P2P Application Development 21
GNUTELLA
? Gnutella works more or less like a pure P2P model
? Gnutella is downloaded and installed on the
computer
? A message is sent to a computer, which passes it
to the other computers
? Gnutella is a client-based software that has a file-
sharing service and a mini search engine
? A machine which installed Gnutella can serve the
requests of other users, and can find the desired
content by sending requests
? Searching on Gnutella is almost like working with
any other search engine
? Gnutella facilitates to share all kinds of files
哈工大计算机学院李全龙Network Application Development P2P Application Development 22
GNUTELLA
? Key terms:
? Servent: client+server
? Horizon: a group of servents, not entire Gnutella
? Firewall: a shield that protects users inside the Gnutella
? Broadcasting: messaging service between servents in
Gnutella
? Dropped Packets: packages of data that have been lost of
dropped across the Gnutella nerwork
? Push Request: whenever a client behind the firewall is
unable to download a file from a servent, the firewall send
a request to the servent for uploading the file. This is
called a push request.
? Port: default port number for Gnutella servents is 6346
哈工大计算机学院李全龙Network Application Development P2P Application Development 23
Example: GNUTELLA
哈工大计算机学院李全龙Network Application Development P2P Application Development 24
Example: GNUTELLA
5
哈工大计算机学院李全龙Network Application Development P2P Application Development 25
Example: GNUTELLA
哈工大计算机学院李全龙Network Application Development P2P Application Development 26
Example: GNUTELLA
哈工大计算机学院李全龙Network Application Development P2P Application Development 27
Napster vs GNUTELLA
? Napster +
? Gives material to its customer in the form of MP3 music
files all across the continents. This is the key reason for
its popularity.
? Provides a protective layer to its user due to the
involvement of a server. Fully authenticated data travels
on Napster network.
? User friendly and easy to download on your computer
? Napster -
? Server presence slows down or brings services to a halt in
case of a technical problem
? Server can easily become the bottleneck
? Works for only MP3 files
? Facing copyright lawyers and the music industry
哈工大计算机学院李全龙Network Application Development P2P Application Development 28
Napster vs GNUTELLA
? Gnutella +
? Truly decentralized network (pure P2P)
? No single point of failure
? Share all kinds of files
? Has a provision for redirecting the request, and
supports HTTP protocol
? Gnutella -
? No provision for stopping the flood of requests
? Absence of the server makes user feel unsafe
? Encounters many bugs in its application, such as
lost packets
哈工大计算机学院李全龙Network Application Development P2P Application Development 29
Working of Various P2P Models
? The way an application works matters a lot
? A typical P2P-based application can be based
on any of the models
? Some of the key features every model P2P
application should have:
? Tracing out other peers
? Querying peers for required content
? Sharing content/resources with other peers
哈工大计算机学院李全龙Network Application Development P2P Application Development 30
Tracing out Other Peers
? Essential feature of every P2P-based application
? Discovering other peers in pure P2P-based model
? Peers find others dynamically and communicate between
themselves directly
? Affects security
? Discovering peers in P2P with simple discovery
server-based model
? The database of the server stores the information related
to all registered users
? Any query for searching a particular peer is processed by
the server
? Enhanced security
? Availability of a large number of peers
? Single point of failure of server
6
哈工大计算机学院李全龙Network Application Development P2P Application Development 31
Tracing out Other Peers
? Discovering peers in P2P with discovery and lookup
server-based model
? Server provides a list of services as well as a list of peers
? All users are required to notify their presence to the
server while they log in
? The server not only discovers other peers but also returns
vital information regarding all logged in peers
? Reduces time consumption
? Discovering peers in P2P with discovery, lookup, and
content server-based model
? This model traces out peers in response to a request much
like the others
? The server maintains all the vital information and also
furnishes the content to requesting peers
? Each peer is registered with the server
? The dependency on the server is therefore very high
哈工大计算机学院李全龙Network Application Development P2P Application Development 32
Querying Peers for Required
Content
? The user initiates the request for content
? Any application can make a request for
content to a peer once a peer has been
traced and located
? Only a peer can provide the content
required
? A peer might not entertain the query the
user presents or might not have the
information the user seeks
哈工大计算机学院李全龙Network Application Development P2P Application Development 33
Querying Peers for Required
Content
? Querying peers for content in pure P2P-based model
? A peer passes its request for content to another peer
(host peer)
? If the host peer contains the required information, it
satisfies the query
? This model provides an interchangeability of role of peers
(client or server)
? Querying peers for content in P2P with simple
discovery server-based model
? This model uses a server to provide the list of logged-in
peers to a requesting peer
? A requesting peer always gets a large number of peers of
interest so it can communicate with them
? The requesting peer has to contact each peer in the list by
itself and individually
? Processing time is large
哈工大计算机学院李全龙Network Application Development P2P Application Development 34
Querying Peers for Required
Content
? Querying peers for content in P2P with discovery
and lookup server-based model
? The server not only maintains a list of registered users,
but also process queries for the content
? The requesting peer passes its query to the server
? The searching path of a peer seeking content is thereby
shortened
? Querying peers for content in P2P with discovery,
lookup, and content server-based model
? The role of the server is the most significant
? The server not only processes the request but also
procures the result and returns it back
? This method protects information from invasion
哈工大计算机学院李全龙Network Application Development P2P Application Development 35
Sharing Contents with other
Peers
? Sharing resources with peers in pure P2P-based
model
? A peer sends a request for content to another peer
? Peer is the service provider which has shared resources
? It is the peer that has the requested information that
opens the connection
? Sharing resources with peers in P2P with simple
discovery server-based model
? A peer sends a request for content to the server
? The server returns the list of all connected peers
? The requesting peer approaches peers individually from
this list for required content
? Once the requesting peer locates the content required, the
server connect them
? The requesting peer downloads the required content from
the network
? Uploading content cannot occur in this model
哈工大计算机学院李全龙Network Application Development P2P Application Development 36
Sharing Contents with other
Peers
? Sharing resources with peers in P2P with discovery
and lookup server-based model
? The server doesn’t just furnish the list of peers
? The server carries out the search
? The requesting peer downloads the requested content
from the network stream
? Uploading is also possible with this method
? Sharing resources with peers in P2P with discovery,
lookup, and content server-based model
? This P2P model is almost like the C/S computing
architecture
? All information is housed in the server
? The server processes the request, procures the result,
and returns back
? Both uploading and downloading capable
7
哈工大计算机学院李全龙Network Application Development P2P Application Development 37
Searching for Shared
Resources
? Important to P2P applications
? Two distinct categories:
? Server-side searching
? A server acts as the reservoir of all
information
? The greatest advantage is that the user need
not worry about the location of a file
? Connection may be made of only to peers that
possess required content
? May send an avalanche of requests and may
slow down server’s services
哈工大计算机学院李全龙Network Application Development P2P Application Development 38
Searching for Shared
Resources
? Two distinct categories:
? Client-side searching
? Comes into play when peers are connected
with each other and are communicating
without the involvement of any other machine
or server
? Client-side searching is limited to the user’s
machine
? Faster than server-side searching
哈工大计算机学院李全龙Network Application Development P2P Application Development 39
Searching Technique in P2P
Models
? Searching for content in pure P2P-based model
? Client-side searching
? Searching for content in P2P with simple discovery
server-based model
? Client-side searching also
? Searching for content in P2P with discovery and
lookup server-based model
? Both server-side and client-side searching can be adopted
? Searching for content in P2P with discovery, lookup,
and content server-based model
? Only server-side searching can be adopted
哈工大计算机学院李全龙Network Application Development P2P Application Development 40
Chapter 7: P2P Application
development
Chapter goal:
? P2P application model
? P2P application design
? P2P example
哈工大计算机学院李全龙Network Application Development P2P Application Development 41
Case P2P Application
? File sharing takes place between two
connected peers regardless of file
extensions
? Three components:
? Listener: Handles requests of incoming
peer connections
? Server: Maintains the database required
for the application
? Browser: Shows results to the peer
through a user-friendly interface and
acts as an interactive layer for the client
哈工大计算机学院李全龙Network Application Development P2P Application Development 42
Structure of the P2P Application
8
哈工大计算机学院李全龙Network Application Development P2P Application Development 43
Listener to Server Communication
Using ASP
哈工大计算机学院李全龙Network Application Development P2P Application Development 44
Browser to Server Using ASP
哈工大计算机学院李全龙Network Application Development P2P Application Development 45
Listener to Browser Using ASP
哈工大计算机学院李全龙Network Application Development P2P Application Development 46
XML Request and Response
DesignSpecifications
哈工大计算机学院李全龙Network Application Development P2P Application Development 47
Server Design-DB
Peer Table
Share
Table
哈工大计算机学院李全龙Network Application Development P2P Application Development 48
Server Design-
login.asp
9
哈工大计算机学院李全龙Network Application Development P2P Application Development 49
Server Design-logout.asp
哈工大计算机学院李全龙Network Application Development P2P Application Development 50
Server Design-userlist.asp
哈工大计算机学院李全龙Network Application Development P2P Application Development 51
Server Design-
search.asp
哈工大计算机学院李全龙Network Application Development P2P Application Development 52
Listener Design-1
哈工大计算机学院李全龙Network Application Development P2P Application Development 53
Listener
Design-2
哈工大计算机学院李全龙Network Application Development P2P Application Development 54
Browser
Design-1
10
哈工大计算机学院李全龙Network Application Development P2P Application Development 55
Browser
Design-2
Download Process
哈工大计算机学院李全龙Network Application Development P2P Application Development 56
Browser
Design-3
Upload Process
哈工大计算机学院李全龙Network Application Development P2P Application Development 57
Browser Design-4
Global Searching
哈工大计算机学院李全龙Network Application Development P2P Application Development 58
Chapter 7: P2P Application
development
Chapter goal:
? P2P application model
? P2P application design
? P2P example
哈工大计算机学院李全龙Network Application Development P2P Application Development 59
Client: A Comprehensive View
The peer to peer login window
哈工大计算机学院李全龙Network Application Development P2P Application Development 60
Client: A Comprehensive View
Share Dialog allows the user to
share files of folders
11
哈工大计算机学院李全龙Network Application Development P2P Application Development 61
Client: A Comprehensive View
Select the file you want to share
哈工大计算机学院李全龙Network Application Development P2P Application Development 62
Client: A Comprehensive View
Share dialog to let the user share
his files or folders
哈工大计算机学院李全龙Network Application Development P2P Application Development 63
Client: A Comprehensive View
Select the folder you want to
share
哈工大计算机学院李全龙Network Application Development P2P Application Development 64
Client: A Comprehensive View
Connected peers get listed in this
window
哈工大计算机学院李全龙Network Application Development P2P Application Development 65
Client: A Comprehensive View
One can specify the search
criteria in this window
哈工大计算机学院李全龙Network Application Development P2P Application Development 66
Client: A Comprehensive View
The number of times of
information
12
哈工大计算机学院李全龙Network Application Development P2P Application Development 67
Client: A Comprehensive View
Resources shared by the peer you are
connected with are shown in this window
哈工大计算机学院李全龙Network Application Development P2P Application Development 68
Client: A Comprehensive View
File dialog to specify the location and the
name where downloaded file to save
哈工大计算机学院李全龙Network Application Development P2P Application Development 69
Client: A Comprehensive View
File dialog to select the file to upload
哈工大计算机学院李全龙Network Application Development P2P Application Development 70
Client: A Comprehensive View
Searching dialog
哈工大计算机学院李全龙Network Application Development P2P Application Development 71
Client: A Comprehensive View
Listener logout
哈工大计算机学院李全龙Network Application Development P2P Application Development 72
Example Application Source
Codes
? Coded by Java
? Downloadable
13
哈工大计算机学院李全龙Network Application Development P2P Application Development 73
Summary
? P2P application model
? P2P application design
? P2P example
哈工大计算机学院李全龙Network Application Development P2P Application Development 74
End of This Course!
Thanks for your cooperation!