Les xarxes d'igual a igual (peer to peer o P2P en anglès) són un sistema de comunicació per Internet que no té clients ni servidors fixos, sinó una sèrie de nodes que es comporten alhora com a clients i com a servidors dels altres nodes de la xarxa, en el qual les dades o les metadades es transfereixen a través d'una xarxa dinàmica. Aquesta tecnologia permet l'intercanvi de fitxers en xarxa sense que calgui un servidor central que redistribueixi les dades.

Normalment, aquests tipus de xarxes s'implementen com a xarxes superposades construïdes a la capa d'aplicació de xarxes públiques com Internet.

Aquest model contrasta amb el model client-servidor: qualsevol node pot iniciar o completar una transacció compatible, i això converteix, doncs, els PC en elements actius que permeten als usuaris intercanviar informació o agrupar capacitat de processament, fent-ho a més al marge de la World Wide Web i sense necessitar un servidor centralitzat.Rüdiger Schollmeier, A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications, Proceedings of the First International Conference on Peer-to-Peer Computing, IEEE (2002).

Els arxius poden ser compartits de forma legal o il·legal, amb relació a la pirateria informàtica, si es distribueixen arxius amb drets d'autor sense pagar-ne el preu corresponent. Un dels sistemes més populars és el protocol BitTorrent àmpliament utilitzat en la distribució de programari.

Les xarxes P2P aprofiten, administren i optimitzen l'ús de l'amplada de banda dels altres usuaris de la xarxa a través de la connectivitat entre ells, obtenint així més rendiment en les connexions i transferències que amb altres mètodes centralitzats convencionals, on una quantitat relativament petita de servidors proveeix el total de l'amplada de banda i recursos compartits per a un servei o aplicació.

Aquestes xarxes són útils per a diversos propòsits, però principalment s'utilitzen per a compartir arxius de qualsevol tipus (àudio, vídeo o programari) així com en telefonia VoIP per a fer més eficient la transmissió de dades en temps real.

Funcionament miniatura|Una xarxa d'igual a igual (peer-to-peer o P2P en anglès) en què cada node comparteix recursos amb els altres sense un servidor centralitzat que ho gestioni.

S'utilitza fonamentalment per compartir arxius per internet: textos, arxius audiovisuals, imatges i d'altres recursos informàtics de tota mena, els quals es distribueixen la càrrega de forma apropiada entre els nodes. Això permet la distribució massiva de fitxers, en perfecta escalabilitat, sense necessitat d'un servidor central. Per a això els destinataris finals són alhora nodes que col·laboren en els metamissatges de la xarxa i reenvien les dades que reben a altres interessats.

Com que la majoria d'ordinadors personals no tenen una IP fixa, no poden connectar-se entre si perquè no coneixen la IP que han d'utilitzar. La solució habitual és realitzar una connexió a un servidor (o servidors) amb una adreça coneguda, que s'encarrega de mantenir la relació d'adreces IP dels clients de la xarxa, dels altres servidors i normalment d'informació addicional, com un índex de la informació de què disposen els clients. Després d'això, els clients ja tenen una informació sobre la resta de la xarxa i poden intercanviar informació entre ells, ja sense la intervenció dels servidors.

Per resoldre el problema de connexió quan els nodes no tenen direcció pública, aquests es connecten a través d'un altre node que funciona com proxy de la connexió: els dos nodes es connecten al proxy i aquest envia la informació que arriba de l'un a l'altre. Qualsevol node amb una adreça IP pública pot ser escollida com a proxy d'una connexió entre dos nodes.

L'eficàcia dels nodes en l'enllaç i la transmissió de dades pot variar segons la seva configuració local (tallafocs, NAT, encaminadors, etc.), velocitat de procés, disponibilitat de l'amplada de banda de la seva connexió a la xarxa i la capacitat d'emmagatzematge en dics. Així i tot, mentre el nombre de nodes creixi, més difícil serà l'administració de recursos de la xarxa i la seguretat pot ser afectada, ja que si un node és infectat, és possible que pugui infectar a cada node de la xarxa (a més nombre de nodes connectats, més risc que un d'aquests nodes es pugui presentar a la xarxa).

Història La idea de compartició d'arxius d'igual a igual va començar a la dècada de 1960 quan es va crear la xarxa ARPANET (antecessor d'Internet). ARPANET fou creat per compartir arxius entre centres d'investigació dels Estats Units d'Amèrica i cada node de la xarxa tenia la mateixa importància.

Les primeres xarxes P2P que sorgiren van ser les híbrides o centralitzades, utilitzant servidors per a l'obtenció de metadades (informació que indexa les dades o els recursos interns a la xarxa). Les principals funcions que s'implementaven en el servidor centralitzat d'una xarxa de compartició de fitxers eren totes les necessàries per posar en contacte el node buscador i el posseïdor. Per tant, el servidor incloïa la identificació dels nodes, la recerca dels diversos nodes que ofereixen el fitxer desitjat, la ponderació d'aquestes resolucions i definitivament l'entrega de les opcions detectades. Finalment, l'esquema P2P sols es manté en l'últim procés, el de transferència de fitxers.

Així i tot, els sistemes centralitzats de compartició de fitxers van assolir un èxit massiu a la fi del gràcies a lloc web de Napster ideat per Shawn Fanning. Aquest va ser el primer sistema de distribució d'arxius que permetia als seus usuaris compartir les seves col·leccions de fitxers MP3 fàcilment. Aquest fet portà Napster als jutjats, ja que diferents discogràfiques veien perillar el seu negoci. Tot això va comportar un increment de la popularitat de la xarxa fins a assolir un màxim de 13,6 milions d'usuaris als inicis de l'any 2001.

Aproximadament al cap d'un any del naixement de Napster, es va presentar la xarxa eDonkey2000 (ed2k) que superava en molts aspectes la seva predecessora. El fet de ser concebuda com a xarxa de compartició de qualsevol tipus d'arxius sense limitar-se a fitxers MP3, va fer que nasqués amb característiques més evolucionades com el suport a la descàrrega simultània de diferents porcions d'un sol arxiu provinents de diversos clients. D'aquesta manera s'explotava l'amplada de banda de tots els clients sense limitar-se a un sol peer. Altres millores provenien de la utilització de funcions resum per identificar arxius o de la recerca interna entre servidors, per localitzar fitxers en clients llunyans. Al cap de cinc anys del naixement d'aquesta xarxa l'empresa que distribuïa el client eDonkey va arribar a un acord amb l'associació de la defensa dels interessos de la discografia americana, la Recording Industry Association of America (RIAA), per causes similars a la fi de Napster. Aquest acord va suposar la fi d'aquest client i de l'empresa. Així i tot, la xarxa que s'havia desenvolupat havia crescut de forma impressionant i va continuar operativa a través de clients creats en iniciatives personals com el famós eMule o projectes codi obert com aMule.

Arran dels diversos problemes judicials i d'altres mancances que presentaven aquestes xarxes, va sorgir la necessitat de crear un Macaco (el servidor central) i així crear una xarxa més robusta i a la vegada, més difícil de litigar judicialment. D'aquesta forma es va iniciar la recerca per a crear les xarxes P2P pures o completament descentralitzades, que tenen com a màxim exponent els sistemes Gnutella i Freenet. Aquestes xarxes funcionen per inundació, i.e. eliminen la necessitat d'un servidor centralitzat a còpia d'enviar missatges en mode broadcast. Aquest fet les fa clarament poc escalables, ja que diversos estudis demostren que només el 12% del tràfic relacionat amb la recerca de nodes genera respostes rellevants i, per tant, el 88% restant és tràfic inútil.

Actualment es treballa per eliminar aquest inconvenient amb les xarxes P2P de tercera generació, les xarxes estructurades (structured peer-to-peer overlays), com és el cas de CAN, Chord, Pastry, Tapestry i que neixen amb la intenció de proporcionar un substrat per a aplicacions d'alta disponibilitat i escalabilitat, i a la vegada complir el paradigma del P2P (oferir un sistema capaç de funcionar d'una forma completament autònoma sense requerir una entitat centralitzada). La majoria d'aquestes plataformes no s'han dissenyat específicament per a una aplicació, sinó que han sigut dissenyats com un substrat per implementar-hi diversos serveis descentralitzats, tal com pot ser l'emmagatzemament en xarxa, distribució de continguts o web-caching. A diferència de les xarxes precedents, les P2P estructurades han estat i són objecte d'una anàlisi més extensa i d'un disseny més acurat per a complir uns mínims requisits d'eficiència, repartiment de càrrega, escalabilitat i tolerància a fallades. Aquestes configuracions permeten localitzar un element en un nombre limitat de salts, requerint que cada node mantingui una taula d'encaminament amb un cert nombre d'entrades. Aquestes taules d'encaminament es basen en sistemes DHT. En aquests moments s'estan dissenyant protocols anomenats One Hop, que són capaços de localitzar el recurs desitjat utilitzant un sol salt dins la xarxa i sense necessitat de cap control centralitzat.

Característiques Hi ha sis característiques principals que tota xarxa P2P hauria de complir:

Escalabilitat. Les xarxes P2P tenen un gran abast mundial amb centenars de milions d'usuaris potencials. En general, és desitjable que a més nodes connectats a una xarxa P2P, millor sigui el seu funcionament. Així, quan tots els nodes arriben i comparteixen els seus propis recursos, els recursos totals del sistema augmenten. Això és diferent en una arquitectura de mode client-servidor amb un sistema fix de servidors, en els quals l'addició de clients podria significar una transferència de dades més lenta per a tots els usuaris. Alguns autors adverteixen que, si aquestes xarxes client-servidor proliferen molt, podrien arribar a desaparèixer ja que cadascuna arribaria a molt pocs usuaris. Robustesa. La naturalesa distribuïda de les xarxes P2P també incrementa la robustesa en cas d'haver errors en la rèplica excessiva de dades cap a múltiples destinacions. En sistemes P2P purs, permet als peers trobar la informació sense fer peticions a cap servidor centralitzat indexat, permeten que no hi hagi cap punt singular d'error en el sistema. Descentralització. Aquestes xarxes, per definició, són descentralitzades i tots els nodes són iguals. No existeixen nodes amb funcions especials i, per tant, cap node és imprescindible per al funcionament de la xarxa. En realitat, algunes xarxes anomenades P2P no compleixen aquesta característica, com són Napster, eDonkey o BitTorrent. Distribució de costos entre els usuaris. Es comparteixen o donen recursos a canvi d'altres recursos. Segons l'aplicació de la xarxa, els recursos poden ser arxius, amplada de banda, cicles de procés o emmagatzematge de disc. Anonimat. És desitjable que en aquestes xarxes quedi anònim l'autor d'un contingut, l'editor, el lector, el servidor que l'allotja i la petició per trobar-lo, sempre que així ho necessitin els usuaris. Moltes vegades el dret a l'anonimat i els drets d'autor són incompatibles entre sí, la indústria proposa mecanismes com el DRM per a limitar-los.