Peer-to-peer är ett namn på en teknik som numer är rätt vanlig. Som namnet antyder handlar det om kommunikation mellan likar till skillnad från de traditionella hierarkiska systemen. När man tänker sig datorer som ska interagera är väl det vanligaste att tänka att man har en server vilken man kan ansluta ett antal noder till. Om då en nod vill berätta något för en annan nod skickar den helt enkelt ett meddelande till servern som sen vidarebefordrar informationen till den eller de noder den tycker ska ha den. Precis som med P2P har det här funnits olika grader från att servern gör allt arbete och sen berättar för klienterna vad som hänt till att klienterna sköter allt och berättar för servern.
Med P2P har man helt förenklat bort servern, man har ett antal klienter som gör allt jobb som ska göras och berättar för andra berörda klienter vad de kan behöva veta. I ett ”äkta” peer-to-peer system finns ingen hierarki utan alla noder är likadana. Det finns naturligtvis både för och nackdelar med båda metoderna, en av fördelarna med P2P är att belastningen på ett visst ställe på nätet inte blir så stort. En nackdel är att trafiken i helhet blir större.
Det finns som sagt lite olika nivåer eller sätt för P2P system, om grunden är ett antal lika klienter som talar med varandra så finns det några varianter för att lösa problem man haft. En krånglighet är att när en klient startas har den ingen stans att ansluta sig till nätverket, det finns ju ingen fast mottagare. En del har löst det här med en server, som Napster, som alltid finns beredd att lyssna på en klient och berätta vilka övriga användare det finns ute i världen. Kazaa har en något elegantare lösning med supernoder som är en klient som råkat hamna på en bra dator med bra anslutning och sedan kan tala om för klienter som ansluter till den vilka andra supernoder och klienter det finns där ute. Klienter som loggar av sparar en lista över supernoder den känner till och hoppas att någon av dessa finns online nästa gång den loggar på. Listan kan på lösningar är lång och det finns exempel med upp till ett antal lager hierarki.
Gemensamt för alla är att upphovsmannen eller den person som håller med servrar aldrig har någon av de filer som delas ut i sin ägo. Ingen laddar upp filer till servern så som skedde förr och filerna passerar aldrig via servern. Servern berättar bara var filen finns när en klient frågar efter den, sen sköts transporten direkt mellan klienterna. Man kan jämföra med en sökmotor som Google; jag frågar Google var det finns bilder på kråkor och Google ger mig en lista på sidor den känner till med kråkbilder. Om jag sen väljer att titta på bilderna eller ladda hem dem är mellan mig och sidan, sökmotorn är redan ute ur bilden.