PeerToPeer, P2P: Software that runs on many many independent clients that may or may not be online. Thus the software exhibits FaultTolerance and DistributedNetworking?. The software may or may not depend on a CentralServer?. These servers act as a NameSpaceServer? defining a protocol specific NameSpace; usually they map usernames to IP numbers, thereby providing a WorldWideName? for every person that wants one. These names may be ephemeral or stable, depending on the people and their mindset.

The AolInstantMessenger AIM and MirabilisIcq ICQ depends on a central server. Other InstantMessenger implementations may choose from a number of servers, thus reducing the dependencies. Names are usually quite stable. I've been using mine for years.

Services like InternetRelayChat depend on a network of servers. IRC is not PeerToPeer, since the majority of user interaction is mediated by the servers - it does, however serve as a DiscoveryMechanism? for P2P file transfers.

Gnutella, MojoNation, GrooveNet, ProjectJxta and others come to mind, too. Even Microsoft is getting into the fray, offering a general-purpose platform similar to Jxta (which is already bundled with SP2, so chances are you winXP users out there already have it, just not enabled) and a BitTorrent-like protocol called Avalanche.

FreeNet is interesting in that it adds elements of untraceability to the P2P filesharing.

JiniTechnology would be an interesting basis for a PeerToPeer architecture, since you can arbitrarily extend it to add new ways for the peers to interact.

The success of Skype http://www.skype.com has given Peer to Peer new impetus, partly due to the fact
that Scalable Internet Telephony is a more politically correct application than (illegal) file sharing.