W przypadku aplikacji P2P, każdy komputer w sieci z uruchomioną aplikacją może działać jako klient i serwer dla innych komputerów w sieci z uruchomioną taką samą aplikacją. Typowe aplikacje P2P to:

Niektóre aplikacje P2P oparte są na protokole Gnutella. Umożliwiają one ludziom współdzielenie plików przechowywanych na ich dyskach twardych z innymi. Jak pokazano na rysunku, oprogramowanie klienckie kompatybilne z protokołem Gnutella pozwala użytkownikom na podłączenie do usług Gnutella przez Internet oraz na zlokalizowanie i dostęp do zasobów współdzielonych przez innych równorzędnych (peer) użytkowników Gnutella. Istnieje wiele aplikacji obsługujących protokół Gnutella, m.in. BearShare, Gnucleus, LimeWire (zaprezentowany na rysunku), Morpheus, WinMX oraz XoloX.

Prace nad rozwojem protokołu prowadzi obecnie GDF (ang. Gnutella Developer Forum), jednak wiele rozszerzeń jest tworzonych również przez producentów oprogramowania.

Wiele aplikacji P2P nie zapisuje w centralnej bazie danych wszystkich plików dostępnych na urządzeniach uczestniczących w wymianie. Przeciwnie, to urządzenia te odpowiadają na zapytania o dostępność plików i korzystają z protokołu udostępniania plików i usług w celu wspierania lokalizacji zasobów.