Aplikacja peer-to-peer (P2P) umożliwia działanie urządzenia zarówno jako klient i jako serwer w tej samej komunikacji, jak pokazano na rysunku. W tym modelu każdy klient jest serwerem, a każdy serwer - klientem. Oba urządzenia mogą inicjować komunikację i oba w równym stopniu biorą udział w procesie komunikacji. Jednakże aplikacje peer-to-peer wymagają, aby każde urządzenie zapewniało interfejs użytkownika oraz aby uruchamiało usługi w tle. Gdy uruchomisz określoną aplikację peer-to-peer, ładuje ona odpowiedni interfejs użytkownika i usługi działające w tle; potem urządzenia mogą komunikować się bezpośrednio.

Niektóre aplikacje P2P wykorzystują system hybrydowy, w którym współdzielone zasoby są zdecentralizowane, ale odsyłacze (indeksy) do ich lokalizacji są gromadzone w scentralizowanym katalogu. W systemie hybrydowym każde urządzenie równorzędne (peer) ma dostęp do serwera przechowującego indeksy i w ten sposób może uzyskać informacje o lokalizacji zasobu przechowywanego na innym urządzeniu. Rola serwera przechowującego indeksy kończy się w momencie połączenia dwóch urządzeń. Połączone urządzenia komunikują się dalej już z pominięciem serwera.

Aplikacje P2P mogą być używane w sieciach P2P, sieciach klient / serwer oraz w Internecie.