Avec les applications P2P, chaque ordinateur du réseau exécutant l'application peut servir de client ou de serveur pour les autres ordinateurs du réseau exécutant l'application. Voici certaines des applications P2P courantes :

Certaines applications P2P sont basées sur le protocole Gnutella. Elles permettent aux utilisateurs de partager des fichiers stockés sur leurs disques durs avec d'autres personnes. Comme le montre la figure, les logiciels clients compatibles avec le protocole Gnutella permettent aux utilisateurs de se connecter aux services Gnutella via Internet et de localiser des ressources partagées par d'autres homologues Gnutella pour y accéder. De nombreuses applications clientes permettent d'accéder au réseau Gnutella, notamment BearShare, Gnucleus, LimeWire, Morpheus, WinMX et XoloX.

Le forum des développeurs Gnutella gère le protocole de base, mais les éditeurs d'applications développent souvent des extensions pour que le protocole fonctionne mieux avec leur application.

De nombreuses applications P2P n'utilisent pas de base de données centrale pour répertorier tous les fichiers disponibles sur les homologues. Au lieu de cela, chaque périphérique du réseau, lorsqu'il est interrogé, indique aux autres périphériques quels fichiers sont disponibles et utilise le protocole et les services de partage de fichiers pour prendre en charge la localisation des ressources.