Peer to Peer

University of California, Irvine. ICS 243D – Internet Technologies - Spring 2001

Roberto Silveira Silva Filho ID# 85849631

This report is based on the two articles of Clay Shirky [1], [2], that address the new trend to peer to peer in the Internet. In this report, the Peer-to-Peer technology (or P2P for short) technology will be discussed, presenting their current status and applications, as well as their importance to the Internet.

Definition and History

According to Shirky, the P2P is not new in the Internet. Internet servers are peers that host pages referencing other computers. The new thing about this technology, is its use by clients without a fixed IP address. It is, home clients that use the Internet through a dial-up network. Applications as Napster [3] an Gnutella[5] are some popular examples of this technology.

The Internet was initially designed to connect computers with fixed IP numbers. This assumption was incorporated in the DNS (Domain Name Service), the distributed name service, which allows the resolution of human-readable names to IP addresses. With the advent WWW (World Wide Web) and the browsers, the Internet use dramatically increased in the last years. Together with this increase, a new form of access emerged, the dial-up networking. In order to cope with the increasing demand of Internet client connections, having a limited number of IP addresses, many Internet Service Providers (ISP) rely on the use of dynamic IP addresses. Clients contact the ISP through dial-up connections. The dial-up access automatically allocates and available IP number each time a computer connects to the ISP. This protocol prevented these hosts to have a DNS entry - since their IP addresses are continuously changing - and to be able to provide server applications, limiting their use to simple clients. In this context, Shirky defines P2P as "a class of applications that takes advantage of the resources – storage, cycles, content, human presence – available in the edges of the Internet". These edge computers, typically PCs, are characterized by unstable connectivity and unpredictable IP address. This characteristic requires that the P2P protocol and applications be independent of the DNS system. Another important characteristic of P2P applications is the autonomy of the hosts participating in these applications.

Shirky also claims that P2P technologies as Napster and ICQ [4] are important in the sense that these applications allows the use of the resources of the computers in the edge of the Internet. This technology changes the status of these computers from mere clients to servers and service providers.

In summary, a technology is considered P2P by Shirky if it provides autonomy to the edge computers, as well as it deals with the variable connectivity and temporary network address issues. Another aspect that can be used to determine if a technology is P2P is the degree of centralization of their administration and control. P2P is related to decentralization of control and administration. The more autonomous is the tool, the more it can be considered P2P.

A Broader Definition

Aside the current Internet hype about P2P, this paradigm is not a new term in Computer Science. In special, in the Software Architecture [8] field, P2P is represented as an architecture style in which the software components that integrate a (distributed) system are similar in their implementation or their roles in the protocol. Peers interact with each other using the same set of operations and protocols, without distinction with one another. This style contrasts with the client-server architecture style, in which a set of similar clients interact with a set of central servers, that are responsible for providing services to these clients. Roles, responsibilities and services provided by servers are different from the clients. In this context, the P2P architectural style can be seen as a set of equal components that provide client and server interfaces. In order to act as both clients and servers. Peers need to be more autonomous components than mere clients in the client-server architecture style.

P2P Applications

According to Shirky, using the test described above, the following technologies are considered P2P.

Napster

Napster is an application used to share music files in the Internet, in special MP3 tracks. It allows users to copy, search and provide music files to be copied. Each user has a nickname. When the application is started, a list of available MP3 files in the local host is generated. This information is passed to centralized servers with the user nickname, IP address and other information as the kind of connection. Once the user is registered, their files can be copied by other users. Napster is P2P since is does not rely on the DNS names or IP address to uniquely identify their peers. Instead, they use a proprietary naming schema. It also shifts the control to the peers when their dynamic allocated IP addresses are resolved. The file transferred using an end-to-end connection, without the intervention of a third entity. Users also have full control of what files to share and to copy.

ICQ

ICQ [4] is a distributed chat and communication tool. Using a similar approach, ICQ is also considered P2P. ICQ uses a proprietary naming schema to uniquely identify and locate "buddies", in a way independent from DNS names and IP addresses. The exchange of data and the chat functionality are performed using independent connections between hosts.

ICQ was initially developed as a chat application between uses and group of users in the Internet. ICQ bypasses the DNS limitation by assigning its own number schema to the users. Each user is identified by a nick name and a unique id number. Users can be aware of the presence of other users through the use of a "buddy list". When two users are online and available to chat, they can communicate, exchange files, messages, talk using the ICQphone and so on.

In ICQ and AOL Instant Messenger [9], for example, when users connect to the internet using a ISP the ICQ client registers the presence of the users in central ICQ servers. Other on-line users, having this user nickname in their "buddy list" are notified of his presence. Once users are communicating, their messages are exchanged without the intervention of a central server.

Many other applications as Gnutella [5], Groove [6], Microsoft Instant Messenger, CUSeeMe, VNC, and so on, exist. A comprehensive list of these applications can be found in [7]. New applications will come up with the popularization of PDAs and CellPhones, and their use of the Internet infrastructure.

Some Implications

According to Shirky [2], the process of adopting the P2P technology faces some resistances in the companies. For moving the administration control from the central servers to the users desktop, the P2P technology is not well accepted by the IT department. The IT department loose the control of the applications and services the user is providing in his PC. Users start adopting new applications, forming user communities without the intervention of the IT personnel.

One important aspect of these applications is security. The use of such applications can introduce many security roles in the system. Some P2P applications as ICQ, for example, provide a personal web server that can represent an entry door for attacks in the corporation. This aspect however, is not so critical if compared some recent security wholes found in client applications as MS Internet Explorer and Outlook Express.

In a global scale, the movement towards P2P increases copes with the initial democratic view of the Internet. It breaks with the centralized client-server paradigm and its idea of servers providing services to clients. The P2P technology creates the potential for new and specialized applications, allowing the sharing of different kinds of information, ranging from music, files, documents and knowledge between Internet users. This is provided without the intervention of a central server. This movement moves toward a more democratic world, centered on the needs of each individual (the peer), allowing the creation of communities, the exchange of knowledge and the democratization of the information production and sharing. A peer can now be a client and a server, a simultaneous producer and a consumer of services and information.

References

[1] Clay Shirky. What Is P2P… And What Isn’t. Published on the O’Reilly Network. November 2000. http://www.openp2p.com/pub/a/p2p/2000/11/24/shirky1-whatisp2p.html

[2] Clay Shirky. P2P Smuggled In Under Cover of Darkness. February 2001 http://www.openp2p.com/pub/a/p2p/2001/02/14/clay_darkness.html

[3] Napster http://www.napster.com

[4] ICQ (I seek you) http://www.icq.com

[5] Gnutella. http://gnutella.wego.com/

[6] Goove. http://www.groove.net/

[7] O'Reilly P2P Directory. http://www.oreillynet.com/pub/q/p2p_category

[8] David Garlan and Mary Shaw "An Introduction to Software Architecture" In V. Ambriola and G. Tortora (ed.), Advances in Software Engineering and Knowledge Engineering, Series on Software Engineering and Knowledge Engineering, Vol 2, World Scientific Publishing Company, 1993.

[9] AOL Instant Messenger. http://www.aol.com/aim/