PEER-TO-PEER • Is a type of network in which each workstation has equivalent capabilities and responsibilities. This differs from client/server architectures, in which some computers are dedicated to serving the others. • A peer-to-peer application is different from the traditional client/server model because the applications involved act as both clients and servers. That is to say, while they are able to request information from other servers, they also have the ability to act as a server and respond to requests for information from other clients at the same time.
P2P systems involve these seven key characteristics: • user computers can act as both clients and servers • the overall system is easy to use and well-integrated • the system includes tools to support users wanting to create content or add functionality • the system provides connections with other users • the system does something new or exciting • the system supports "cross-network" protocols like SOAP or XML-RPC
A typical peer-to-peer application has the following key features that help define it: • Discovering other peers: The application must be able to find other applications that are willing to share information. The application finds these peers by registering with a central server. • Querying peers for content:Once these peers have been discovered, the application can ask them for the content that is desired by the application. • Sharing content with other peers: In the same way that the peer can ask others for content, it can also share content after it has been discovered.
ARCHITECTUREPure Peer-toPeer • A pure peer-to-peer application has no central server whatsoever, as you can see in Figure. • It dynamically discovers other peers on the network and interacts with each of them for sending and receiving content. • Advantages:It does not rely on any one server to be available for registration of its location in order for other peers to find it. • Disadvantages:the lack of a central discovery server poses a problem because a relatively low number of clients can be discovered, thereby limiting the application's reach.
ARCHITECTUREPeer-to-peer with a Simple Discovery Server • Works just like the pure peer-to-peer architecture except that it relies on a central server for discovery of the other peers. • It uses this server to download a list of the other peers participating. • It goes through the list and contacts each peer individually with its request. • Advantages:it circumvents the issues of discovery by requiring only one request to the central server. • Disadvantages:If the central server is not available, the peer-to-peer application will not be able to find other peers.
ARCHITECTUREPeer-to-peer with a Discovery and Lookup Server • In this case, the peer application not only registers with a discovery server, but it also uploads a list of its contents at regular intervals. • When an application is looking for some particular content, it queries the central server rather than sending a query to each client. The central server then responds with a list of the clients that contain the requested content, and the peer application can contact those clients directly to retrieve the content. • Examples: NAPSTER, MORPHEUS.
ARCHITECTUREP2P with a Discovery, Lookup, and Content Server • This approach effectively becomes the client/server model because the peers are no longer contacting other peers for content. • Each peer registers with a server, queries it for information, and transfers any desired content down from the server. • Disadvantage:The server quickly becomes the bottleneck and is easily overwhelmed by the peers.
IMPLEMENTATION Some protocols used are: • SOAP:Simple Object Access Protocol. • BEEP:Blocks Extensible Exchange Protocol BEEP permits simultaneous and independent exchanges within the context of a single application user-identity, supporting both textual and binary messages. Refer RFC3080 at ftp://ftp.imag.fr/pub/archive/IETF/rfc/ rfc3080.txt • ODCP:Open Direct Connect Protocol.
Application model • Web Services:Web Services technology provides an excellent way to handle registration, discovery, and content lookup for your peer-to-peer application. • Windows Forms:GUI applications that help to make the peer-to-peer experience much more exciting. • Web Forms:makes it very easy to return HTML content to a peer application. This can be useful if you want to spice up your peer-to-peer application with general content about the service or advertisements about using the service.
Towards the Networking side Some of them available are: • System.web.Services Namespace:Uses SOAP. Provides classes for interacting with the service, storage of peer file info(IP addr, connection, file name and its size etc). • System.Net Namespace:Contains classes that provide support for creating aaplications that use IP’s to send and receive data. Provides classes for transfer of file from one peer to another, etc.
FIREWALLS AND PORTS The selection of ports and the protocol used by the peers should be taken into account when designing the application because firewalls are often designed to allow communication only over a particular port. In most cases, applications intended for general use over the Internet should use a port in the dynamic or private range or register. SCALABILITY Network bandwidth is often the scarcest resource (hence the bottleneck) in a peer-to-peer application. Ability to scale up to hundreds of thousands of clients. Some Points
SECURITY • Threats to the network, such as worm and virus attacks, and Denial of Service (DoS) attacks that flood the network with data and incapacitate computers . Other threats are password and data theft, violating intellectual property laws, using the corporate network for personal or illegal activities, and violating corporate security policies. • Some solutions: Enhanced authentication, authorization, access control, and encryption. • To know more about security issues and solutions visit http://www.networkmagazine.com/article/NMG20020206S0005
CONCLUSION • The peer-to-peer application model applied to large networks such as the Internet offers an exciting opportunity to share information and content over a network on a scale that has never been seen before.
WEBSITES • http://msdn.microsoft.com/msdnmag/issues/01/02/NetPeers/NetPeers.asp • http://www.compnetworking.about.com/library/weekly/aa093000a.htm • http://www.howstuffworks.com/napster2.htm • http://www.allot.com/html/solutions_notes_kazaa.shtm