Everything you wanted to know but never dared ask about
Peer-to-Peer (P2P) network
A network where all connected PCs, called clients, can talk to one another directly, without having to connect through a centralised server. Each networked PC can act as a server, providing files and other information to any other computer on the network.
A network where powerful, centralised computers called servers are used to perform functions such as storing data and running applications on behalf of attached "client" computers. Clients are typically PCs on users' desktops. The World Wide Web is a client/server network.
A combination of the P2P and client/server models, where a centralised server may help locate peers or synchronise data. Once peers discover each other, they communicate directly, without further involving the server. Napster is such a hybrid.
Broadcasting - Messages on the P2P network are sent in one of two ways. First, they may
be broadcast, or sent to all hosts on your network horizon. Pings and search requests are
broadcast. Second, messages may be routed, or sent only to particular location. Not all routed
messages go directly to their intended recipient; they may pass through other hosts in transit. For
example, if A broadcasts a search request, B receives it and broadcasts it on, and C receives it
and wishes to reply with a search result, C will route that search result back to B, who in turn
will route it back to A. Pongs and search results are routed on the P2P network. As for push
requests, some Servants route them and others broadcast them. However, there is no good reason to
broadcast push requests, and no good Servant broadcasts them.
Dropped Packets - Packets, or small "packages" of data, are sometimes dropped, or lost, on the P2P network. There might be several reasons for this. For example, Servant A might be unable to keep up with the rate at which Servant B is transmitting data, or Servant A might be running a buggy P2P clone.
GUID - Short for Global Unique Identifier, the GUID is a randomised string that is used to uniquely identify a host or message on the P2P network. This prevents duplicate messages from being sent on the network.
Horizon - Your horizon is the group of P2P Servants that you are capable of communicating with at a particular time. Because of the decentralised nature of the P2P network, your horizon will not encompass the entire active P2P network.
Hops - The number of hosts a packet has passed through.
Host - See Peer.
Host Catcher - When you join the P2P network and send out ping requests, other P2P hosts respond with pongs. Your P2P software's host catcher keeps track of the P2P hosts that sent these pongs, so that you will have a list of active P2P hosts that you can connect to. Most P2P Servants have some sort of an automatic connection feature; these automatic connections are usually made with hosts from the host catcher's list.
Message - All information sent over the P2P network is in one of five message types. It is either a ping, a pong, a search request, a search reply, or a push request.
Node - See Peer.
Peer - Two computers are considered peers if they are communicating with each other and playing similar roles. For example, a desktop computer in an office might communicate with the office's mail server; however, they are not peers, since the server is playing the role of server and the desktop computer is playing the role of client. P2P's peer-to-peer model uses no servers, so the network is composed entirely of peers. Computers connected to the P2P network are also referred to as "nodes" or "hosts."
Ping - When a new user joins the P2P network, he broadcasts a message called a "ping request" to the network, announcing his presence on the network. Nodes, which receive this ping, send a pong back to the pinging user to acknowledge that they have received this message.
Pong - When a node on the P2P network receives a ping request, it replies with a pong (also sometimes referred to as a "ping response"). This pong contains the responding host's IP address and port, as well as number of files the responding host is sharing and their total size.
Port - Each application on a computer that communicates on the net has a specific port number assigned to it. On most Servants, the default port for P2P is 6346. This means that a Servant running P2P software is listening on port 6346. However, the user can change the port that is assigned to P2P on his computer, and he will still be able to communicate with other Servants that are listening on port 6346.
Push request - When a Servant is behind a firewall, other hosts are not able to connect to that Servant directly to download a file. When this happens, the host trying to download the file sends a push request, asking the Servant behind the firewall to connect out and upload the file to him.
Routing - See Broadcasting.
Search - When a Servant initiates a search request, he broadcasts a search message to the P2P network that contains the query string as well as the minimum speed specified by the Servant initiating the search request. Also called a query message.
Search result - When a host receives a search request and has files that satisfy the search criteria, it responds with a search result message. The search result message contains the IP address, port, and speed of the Servant sending the search result message, as well as a list of file sizes and names. Also called a query hit.
Servant - A combination of a server and a client. In the old centralised file-sharing model, there were distributors of information, called servers, and requestors of information, called clients. In the decentralised P2P model, each computer on the network is both a client and a server and is thus called a "Servant."
Time to Live - Abbreviated "TTL," the Time to Live is the number of hops that a message will make on a peer-to-peer network before being discarded. Each Servant that views a message will decrement its TTL by 1, and will discard that message when the TTL reaches 0. This prevents messages from being sent back and forth across the P2P network indefinitely. Most P2P clones set TTL at around 7, although some allow the user to configure it.
Useful P2P Links
CW360 P2P Debate: The Meaning of P2P
The PeerProfit P2P news headlines and Company Watch headlines are automated, sifting from 1500 sources across the internet - http://www.peerprofits.com/ .
This was first published in July 2001