[1] Es más, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red.Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados.Cuando un cliente entra a este sistema, hace una conexión directa a uno de estos últimos, en donde recolecta y almacena toda la información y contenido disponible para compartir.A menudo se usan para compartir archivos de cualquier tipo (por ejemplo, audio, vídeo o software).En aquellas aplicaciones y servicios que requieran una enorme cantidad de recursos pueden usarse las redes P2P.Actualmente existen varios sistemas software similares que se desarrollan bajo el auspicio de proyectos como el proyecto de Dispositivos Unidos en la Investigación del Cáncer (United Devices Cancer Research Project).La Internet inicial era más abierta que el presente, donde dos máquinas conectadas a Internet podían enviar paquetes entre sí sin firewalls y otras medidas de seguridad.Como precursor de Internet, ARPANET fue una exitosa red cliente-servidor donde "cada nodo participante podía solicitar y servir contenido".Para el correcto funcionamiento de una red P2P, hay que resolver dos problemas fundamentales: cómo se encuentra un nodo que ya esté conectado a la red P2P y cómo se conectan los nodos sin dirección IP pública entre ellos.Para resolver el primer problema, la solución habitual es realizar una conexión a un servidor (o servidores) inicial con dirección bien conocida (normalmente IP fija) que el programa P2P tiene almacenada.Algunos ejemplos de una red P2P "pura" son: Kademlia, Ares Galaxy, Gnutella, Freenet, Gnutella2 y Maidsafe.Tales redes pueden construirse muy fácilmente cuando un usuario que desea unirse a la red puede copiar enlaces existentes de otro nodo y después formar sus propios enlaces en un plazo determinado.La desventaja principal con estas redes es que las peticiones no siempre podrán resolverse.En esta generación se implementó por primera vez la característica de descentralización, por la cual no existe ningún servidor central y todos los nodos actúan de la misma manera (como cliente y como servidor).Esta característica se ha extendido a la mayoría de las redes P2P actuales.Un software Middleware funciona como un puente para unir 2 sistemas que son heterogéneos.Alto nivel[8] Ofrece funcionalidades esenciales, generalmente relacionadas con cambios sobre el soporte básico TCP/UDP + IP.El middleware P2P está diseñado para distribuir los recursos en múltiples nodos conectados vía internet.El conocimiento sobre la ubicación de los recursos debe estar distribuido por toda la red.Napster (primera generación P2P), para solucionar dicho problema, mantenía un índice unificado de archivos disponibles.Esta función hace posible que usuarios conectados desde diferentes dispositivos puedan interactuar en un ambiente virtual concurrentemente.En ellas se ha extendido y estabilizado el concepto de Middleware P2P que se dio a conocer en la segunda generación, descentralizando el proceso indizado (DHT) y estableciendo un enrutamiento más eficiente (routing overlay, tablas de encadenamiento).En la actualidad el uso de las redes P2P está totalmente permitido en España, ya que su uso puede servir para compartir archivos personales, creaciones propias, obras bajo dominio público, distribuciones Linux o incluso software libre.Si bien los sistemas distribuidos existen desde antes de la arquitectura P2P, esta última representó una revolución en el campo.Así, P2P tomó los fundamentos existentes de los sistemas distribuidos y los llevó al siguiente nivel.A su vez, los sistemas distribuidos más recientes retomaron lo aprendido de las redes P2P, generando una relación simbiótica.Profundizando más sobre el middleware P2P, en la actualidad las aplicaciones que corren sobre sistemas distribuidos requieren poder ejecutarse desde cualquier sitio, sin que esto afecte a su velocidad de respuesta o su rendimiento en general.Todos estos aspectos fundamentales para cualquier sistema distribuido, fueron traídos a la luz en el desarrollo de las redes P2P primigenias.
Representación gráfica de un
enjambre
que muestra la distribución de los
peers
con sus respectivas trasmisiones y recepciones de datos dentro de un
torrent
en
Vuze
.
Las tres topologías de red según los famosos grafos de
Paul Baran
que aplican también al diseño P2P.