Een peer-to-peer netwerk (afgekort ‘P2P-netwerk’) is een gelijkwaardig netwerk van computers die gezamenlijk bestanden opslaan, ontvangen en delen. Gelijkwaardig wilt zeggen dat iedere gebruiker dezelfde rechten heeft. Dit geeft de deelnemer (node) de mogelijkheid om via internet data te delen zonder de tussenkomst van een vaste/cliënt-server.
Alle deelnemers binnen een P2P-netwerk noemen we; ‘de zwerm’. Deelnemers van de zwerm die data binnenhalen/downloaden noemen we ‘leechers’. Wanneer leechers hun download hebben voltooid veranderen zij in ‘seeders’. Seeders/uploaders geven andere deelnemers de mogelijkheid om te kunnen downloaden. Een P2P-netwerk schaalt automatisch in snelheid van het downloaden. Hoe meer ‘seeds’ (het aantal deelnemers die de download hebben voltooid) een bestand heeft, hoe sneller leechers kunnen downloaden.
Het grote verschil tussen een P2P-netwerk en het cliënt/server-model is dat er bij een P2P-netwerk gedownload wordt van alle deelnemers. Bij een cliënt/server-model wordt er vanaf één locatie gedownload. Wanneer deze locatie offline is kan er nooit worden gedownload vanaf deze locatie.
Er zijn drie hoofdtypen P2P-netwerken. Ongestructureerde P2P-netwerken, gestructureerde P2P-netwerken en Hybride P2P-netwerken.
Bij ongestructureerde P2P-netwerken communiceren de deelnemers willekeurig met elkaar. Zoekopdrachten binnen een ongestructureerd P2P-netwerk worden verzonden naar zoveel mogelijk deelnemers. Dit vereist meer rekenkracht en geheugen van je computer en kan ervoor zorgen dat het netwerk belast wordt met veel onnodige zoekopdrachten.
Gestructureerde P2P-netwerken maken gebruik van een georganiseerde architectuur, waardoor deelnemers op een efficiëntere manier kunnen zoeken. Dit gebeurd door het gebruik van hash-functies. Zo is er aan ieder bestand binnen het netwerk een hash-functie gekoppeld. Wanneer hierop wordt gezocht zal het gewenste bestand sneller worden getoond.
Een hybride P2P-netwerk is een mix tussen de P2P-architectuur en het cliënt/server-model. Zo kan een hybride P2P-netwerk een centrale server bevatten die het maken van een verbinding tussen gebruikers faciliteert (bijv; Bitorrent, Popcorn Time, Skype, Limewire, etc.)