O aplicație peer-to-peer (P2P) permite unui echipament să se comporte atât ca un client, cât și ca un server în aceeași comunicație, așa cum se arată în figură. În acest model, fiecare client este un server și fiecare server este un client. Ambii pot iniția o comunicație și sunt considerați egali în procesul de comunicație. În orice caz, aplicațiile P2P necesită ca fiecare echipament final să furnizeze o interfață cu utilizatorul și să execute un serviciu de background. Atunci când lansați o anumită aplicație P2P, se încarcă interfața solicitată a utilizatorului și serviciile de background; apoi, echipamentele pot comunica în mod direct.

Unele aplicații P2P folosesc un sistem hibrid unde partajarea resurselor este descentralizată, dar indecșii care conduc la locațiile resurselor sunt stocate într-un director centralizat. Într-un sistem hibrid, fiecare "peer" accesează un server cu index pentru a obține locația unei resurse stocate pe un alt "peer". Serverul indexului poate ajuta la conectarea a două "peer-uri", dar după conectare, comunicația are loc între cele două "peer-uri" fără a adăuga comunicație adițională la serverul indexului.

Aplicațiile P2P pot fi utilizate în rețele P2P, rețele client/server și pe Internet.