Las redes P2P pueden sonar a algo del pasado, y quien lo crea así no andaría muy descaminado. Este tipo de enrutamiento existe desde hace mucho tiempo, si bien el protocolo alcanzó su máximo pico de popularidad durante la primera década del siglo XXI con la aparición de Napster y otros clientes similares para compartir archivos. De hecho es con este tipo de usos con los que la mayoría de los usuarios asocian al P2P. Sin embargo, la utilización de este tipo de redes cubre otros ámbitos que nosotros, a través de este artículo, queremos repasar y ayudar a visibilizar.

Vale la pena señalar que las redes P2P tienen como misión final cambiar la forma de entender las conexiones entre máquinas, así como la de crear un Internet más igualitario. Y por muy utópico que esto pueda sonar, lo cierto es que en determinados aspectos de la vida digital (como las criptomonedas) este concepto hace tiempo que echó raíces.

¿Qué es exactamente una red P2P y cómo funciona?

En primer lugar conviene aclarar que P2P es el acrónimo de peer-to-peer. Se trata de una red de ordenadores que reciben el nombre de "nodos", que se conectan para compartir datos de todo tipo y en la que cada máquina puede actuar como cliente o servidor.

Esto choca frontalmente con la arquitectura cliente-servidor adoptada en la mayoría de infraestructuras informáticas corporativas, en las que un ordenador central (el servidor) cumple las demandas de otros adheridos a su red (los clientes). Además, este ordenador central es quien determina qué privilegios tienen sus clientes con respecto al acceso a recursos de la red e información disponible en la misma.

Imagen de un servidorImagen de un servidor

En una red P2P este sistema de privilegios desaparece. En una aplicación que haga uso de las redes P2P cada máquina tiene los mismos privilegios que su vecina, esté físicamente próxima (por ejemplo, otro ordenador en la red doméstica) o no (como serían dos máquinas que se comparten información entre sí separadas por miles de kilómetros de distancia).

Cada nodo o peer representa una fracción de los recursos de la red. La capacidad de la máquina aporta potencia de proceso, almacenamiento o ancho de banda de red a otras máquinas participantes, sin que haya un ordenador central que lo coordine todo. Dichos recursos se consumen y se proveen por igual por cada una de las máquinas en función de su potencia.

En otras palabras, la red P2P tradicional funciona interconectando varios equipos entre sí a través de un hub o concentrador, lo que permite que cada uno de los usuarios de dicha red pueda obtener la información que necesite de cualquier otro miembro.

Evolución de las redes P2P

Uno de los primeros PCs independientesUno de los primeros PCs independientes

Hoy en día todos, de alguna forma u otra, formamos parte de una red peer-to-peer. No es necesaria una gran infraestructura: basta con tener un router y varios dispositivos conectados a él, una situación que se da en cualquier casa. Sin embargo, hemos recorrido un largo camino hasta lograr llegar a este punto.

Para entender cómo hemos conseguido que dos ordenadores puedan comunicarse entre sí sin la necesidad de un ordenador central hay que remontarse a los años 80 del siglo XX. A principios de esta década se empezó a generalizar el uso de ordenadores independientes capaces de funcionar por sí mismos y sin afectar a otras máquinas.

Hasta este momento se habían usado grandes ordenadores centrales que tenían todos los componentes que hacen que un PC sea un PC, y que servía las aplicaciones a terminales vacías que eran básicamente teclado y pantalla. Cada terminal operaba directamente en el ordenador central, lo que afectaba a las demás máquinas a la hora de acceder a determinadas aplicaciones o documentos.

Cuando los ordenadores empezaron a poder funcionar sin incidir en el resto de computadoras, los trabajadores se vieron inmensamente liberados y contemplaron un sinfín de posibilidades. En estos momentos, donde todavía no existía la noción del grupo de trabajo que acuñaría Microsoft años más tarde, se coció el antepasado de las redes P2P. Este antepasado es conocido como sneakernet.

El disquete, esencial en las sneakernetsEl disquete, esencial en las sneakernets

Una sneakernet comenzaba en un trabajador cualquiera, que necesitaba enviar a otro un documento. La forma más lógica de hacérselo llegar pasaba por varios métodos rudimentarios:

  • Guardar el documento en un disquete y llevarlo personalmente.
  • Guardar el documento en un disquete y enviarlo por mensajería interna de la empresa.
  • Enviarlo a una impresora conectada en red e indicar al destinatario que recogiese el documento.

Las sneakernets se mantuvieron como principal forma de transmisión de documentos en las oficinas hasta 1993, cuando Windows y Microsoft empezaron a ofrecer soporte para grupos de trabajo en red. Esto permitía que los usuarios pudiesen consultar recursos y documentos en la máquina de cualquier otro, pero aún así era necesario un servidor. Este servidor actuaba como intermediario, otorgando y denegando privilegios a las máquinas cliente sobre el acceso a recursos de la red.

Las redes P2P surgen como una necesidad de eliminar los intermediarios, con el objetivo de lograr que varias máquinas puedan compartir datos sin necesidad de un sistema de privilegios, como ya señalamos anteriormente.

Tipos de redes P2P

Conexiones de red en un switchConexiones de red en un switch

Los tipos de redes P2P dependen de su arquitectura. Una red de este tipo se diseña conforme a la noción de que un número de nodos pueden funcionar simultáneamente como clientes y servidores para los demás.

Para ello las redes peer-to-peer implementan una forma de red superpuesta, una red virtual donde los nodos no están enlazados de forma física. Los datos entre los nodos se intercambian bajo el protocolo de la red física (TCP/IP), pero en la capa de aplicación cada peer puede comunicarse con otro directamente.

Las redes superpuestas sirven, en las arquitecturas P2P, para descubrir e indexar peers y hacer que estas sean independientes de la red subyacente. Atendiendo a cómo se conectan los nodos en la red superficial, las redes P2P se pueden clasificar en dos grandes grupos que veremos a continuación.

Redes P2P desestructuradas

Las redes P2P de este tipo no imponen ninguna estructura particular en el diseño de la red superpuesta, sino que están compuestas de nodos que se conectan a otros aleatoriamente. Al no existir una estructura a la que ceñirse, son fáciles de construir y permiten optimizaciones concretas para diferentes regiones de la capa superpuesta.

Diagrama de una red P2P desestructuradaDiagrama de una red P2P desestructurada

En este tipo de redes todos los nodos comparten el mismo rol, con lo que se trata de redes muy robustas que pueden gestionar un gran número de peers que entran y salen de la misma constantemente. De hecho hay un buen número de programas que se sirven de este tipo de redes, pero de ejemplos de software hablaremos más adelante.

Las redes P2P desestructuradas también tienen algunas desventajas importantes, debido precisamente a su falta de estructura. Por ejemplo, cuando un peer intenta encontrar unos datos específicos en la red, su búsqueda se debe pasar por toda la red para encontrar tantos peers que tengan esos datos y que los puedan compartir.

Esta técnica se conoce como "flooding", lo que provoca una gran cantidad de tráfico en la red, mayor uso de CPU y memoria y no asegura que las búsquedas de los miembros se resuelvan siempre. Además, no existe correlación entre un peer y el contenido que gestiona, con lo que es imposible asegurar que la búsqueda que nos ha devuelto sea lo que realmente buscamos (¿os suena descargar porno cuando estabais buscando algo mucho más inocuo? es un ejemplo).

También hay que tener en cuenta que el contenido que más usuarios demanden es el que tendrá más posibilidades de estar disponible en un mayor número de peers, con lo que también será más fácil encontrarlo y acceder a él (seguramente esto también os suene).

Redes P2P estructuradas

Diagrama de una red P2P estructuradaDiagrama de una red P2P estructurada

En este tipo de redes la capa superpuesta está organizada con arreglo a una topología concreta, lo que también asegura que cada nodo podrá buscar de forma más eficiente un archivo o recurso, incluso aunque este sea extremadamente raro.

Las redes estructuradas más comunes implementan lo que se conoce como una tabla de hash distribuida o DHT. Este tipo de tablas almacena pares de datos (clave y valor), y buscando el valor se puede encontrar en la red la clave que lo acompaña y viceversa. Cualquier nodo participante puede hacerlo.

El enrutamiento del tráfico en estas redes distribuidas se realiza a través de listas de "vecinos" que satisfacen criterios específicos. Esto hace que las redes sean menos robustas con una tasa alta de entrada y salida de participantes. Además, en las redes basadas en DHT se produce un aumento de los costes en el descubrimiento y publicación de recursos, así como un desequilibrio de en las cargas dinámica y estática.

Hay voces que aseguran que la mejor solución para implementar una red P2P estructurada quizá pase por intentarlo con un modelo híbrido. Este tipo de redes combinan el P2P con el modelo cliente-servidor, donde un servidor central ayudaría a cada peer a encontrar el recurso o el archivo que busca.

De hecho, hoy en día los modelos híbridos tienen un mejor rendimiento que una red puramente desestructurada o estructurada. Esto se debe a que determinadas funciones, como podría ser la ya citada búsqueda, requieren de una funcionalidad centralizada.

Compartir archivos: su aplicación más conocida

Antiguo cliente P2P de NapsterAntiguo cliente P2P de Napster / Christiaan Colen editada con licencia CC BY-SA 2.0

No nos engañemos. Las redes P2P pueden utilizarse para muchos propósitos, como podría ser entregar contenidos a un grupo de usuarios, aunque lo cierto es que la función por la que este tipo de redes es más conocida es la de compartir archivos entre usuarios de forma fácil y rápida.

El furor de las redes P2P comenzó en 1999 con la irrupción de Napster. Se empezó a dar visibilidad a estas redes como una forma de intercambiar archivos (en este caso canciones en MP3) entre usuarios muy alejados entre sí, por lo que se convirtió en un fenómeno. El servicio fue demandado por Metallica (entre otros artistas), que les acusaron de robar su música.

Además de Napster, otro cliente P2P encargado de abrir la primera generación de redes para compartir archivos fue eDonkey2000 o ED2K. Si Napster era el reino de la música, en la red de este cliente se encontraban los archivos más grandes. Utilizaba la misma estructura de servidores que puso de moda Napster (y descargar fakes en ella era asombrosamente fácil) y cerró en 2005, con eMule como único sucesor "vivo" de esta época. Otros clientes que funcionaban en esta red eran Overnet y Lphant.

Uno de los encargados de recoger el testigo de Napster después de su cierre no fue otro que Gnutella. Para quienes no la conozcan, tiene casi 20 años de existencia y es la plataforma de compartición de archivos más popular de Internet. Actualmente no tiene muchos clientes activos: Shareaza para Windows, el paquete gtk-gnutella para Linux y uno basado en Java conocido como WireShare (disponible para Windows, macOS y Linux).

En medio de toda esta vorágine aparecieron los primeros clientes BiTtorrent, aunque el caso de este protocolo es algo especial. Por un lado utiliza un método de la primera generación de clientes para compartir archivos: se sirve de una serie de servidores centrales llamados trackers para coordinar a los usuarios. Y por otro lado, no crea una red en el sentido tradicional, sino que para cada archivo torrent crea redes separadas que coordinan a grupos de usuarios.

Algunos de los clientes P2P inactivos más conocidos

LimewireLimewire
  • Napster: aunque ahora se trate de un servicio de pago, en sus inicios tal y como dijimos más arriba fue la primera gran red P2P a través de la que los usuarios compartían archivos. En su momento de máxima popularidad llegó a tener casi 15 millones de usuarios.
  • eDonkey2000: cuando desapareció Napster, uno de sus herederos fue la red ed2k. Esta red estaba pensada para conseguir archivos de gran tamaño, desde imágenes ISO a discos completos. Sin embargo y teniendo en cuenta las conexiones de la época, no era la opción más rápida.
  • Overnet: este cliente funcionaba a través de la red ed2k, con la diferencia de que implementaba el algoritmo Kademlia (también conocido como KAD, un tipo de tabla de hash distribuida) junto con el soporte para las redes de eDonkey. Se fusionó con eDonkey2000, y la combinación de ambos clientes llegó a tener 645.000 usuarios concurrentes en su momento de mayor popularidad.
  • Lphant: con este cliente cerramos el repaso a la red eD2k. En esencia se trataba de una versión mejorada de eDonkey2000, que combinaba el uso de sus redes con la inclusión de soporte para el protocolo BitTorrent.
  • LimeWire: este cliente usaba la red Gnutella para compartir archivos, y más adelante también hizo uso del protocolo BitTorrent. Era totalmente multiplataforma y estaba escrito en Java.
  • KaZaA: otro destinatario de gran parte de los usuarios de Napster fue este cliente que usaba el protocolo FastTrack. Generalmente se usaba para descargar archivos MP3, pero también se podían encontrar otro tipo de contenidos. Sin embargo este cliente, a pesar de su popularidad, estaba plagado de malware. La única forma de librarse del software malicioso era usar Kazaa Lite.
  • iMesh: quizá menos conocido que Napster o KaZaA dentro de nuestras fronteras, comenzó su andadura como un cliente muy similar a estos dos. Utilizaba su propia red P2P y su código era propietario. Tuvo la distinción de ser el primer cliente P2P cuya infraestructura y funcionamiento fue aprobado por la RIAA, la asociación de la industria discográfica estadounidense.

Algunos clientes P2P que continúan en activo hoy

Soulseek en Windows 10Soulseek en Windows 10
  • eMule: el único heredero en activo de eDonkey2000. eMule se desarrolló como una forma de mejorar lo que ofrecía eDonkey2000, lo que se notó especialmente en un aumento de las velocidades de descarga. Al igual que Overnet, eMule también implementa el algoritmo KAD. Sigue siendo una de las mejores opciones dentro de la comunidad P2P.
  • DC++: este cliente hace uso de la red Direct Connect. En este tipo de entornos los usuarios se conectan a un hub central, a través del cual pueden interactuar con otros participantes y compartir archivos entre ellos. DC++ tuvo un enorme pico de popularidad hacia principios del siglo XXI, pero hoy en día la cantidad de hubs y el número de usuarios no son tan boyantes como hace unos años.
  • Ares Galaxy: conocido simplemente como Ares, este cliente hacía uso de la red Gnutella en sus inicios (actualmente tiene su propia red) y hoy en día también del protocolo BitTorrent para encontrar y descargar archivos. Suele ser algo aparatoso de poner en marcha, pero es uno de los clientes P2P más conocidos.
  • qBittorrent: este es sin duda uno de los clientes de BitTorrent que más opciones ofrece al usuario. qBittorrent es configurable, fiable, rápido y completo, sin publicidad o malware de ningún tipo. Es fácil de instalar, con su configuración por defecto es más que suficiente para que funcione y no debería dar ningún problema a quien se decante por él.
  • Soulseek: este cliente es un clásico entre los fans de la música. Desarrollado por un antiguo programador de Napster, Soulseek es totalmente multiplataforma en sus últimas versiones y cuenta con salas de chat temáticas para hablar con fans que compartan gustos similares a los nuestros.
  • RetroShare: una de las funciones de este cliente es la de compartir archivos entre los usuarios, pero no es su única característica destacable. También funciona como un cliente de correo electrónico descentralizado, cliente de mensajería instantánea e incluso ofrece la posibilidad de funcionar como BBS. Todas sus comunicaciones están cifradas, lo que hace que RetroShare perfecto para la utilización anónima.

El lector más avispado quizás haya echado de menos clientes de cierto renombre en la actualidad como son uTorrent o BitTorrent, disponibles también para dispositivos móviles, pero lo cierto es que éstos han tenido problemas de malware y empaquetan publicidad que requieren la suscripción a un modelo premium para deshacernos de ella, por lo que a día de hoy no están a la altura de otras alternativas como qBittorrent, a pesar de estar plenamente activos. 

Legalidad de usar redes P2P: ¿es delito compartir archivos?

¿Qué implicaciones legales tiene el P2P?¿Qué implicaciones legales tiene el P2P?

Para responder a esta pregunta hay que citar dos casos específicos: el de los usuarios y el de los desarrolladores. Para hablar de los desarrolladores debemos remontarnos a 2014 y a la resolución del Caso Soto, en la que diversas entidades relacionadas con el mundo de la música demandaron a Pablo Soto. Esta persona había creado los servicios Blubster, Piolet y ManolitoP2P.

Las entidades que demandaron a Soto estaban formadas por Promusicae, Warner Music, Universal Music, Emi Music y Sony BMG, y le demandaban 13 millones de euros en concepto de daños y perjuicios. Finalmente Soto no se enfrentó a ningún tipo de castigo, ya que los juzgados desestimaron la demanda.

De acuerdo con la sentencia dictaminada por la Audiencia Provincial, los creadores de software de intercambio de archivos "carecen de cualquier posibilidad de control sobre el empleo concreto que dan los usuarios a la herramienta informática puesto que éstos no precisan de intermediación técnica alguna por parte de aquellos para operar". Así que, si eres un desarrollador español y creas un programa P2P para compartir archivos, no has hecho nada malo.

Ahora hablemos de posibles responsabilidades jurídicas de los usuarios. En Estados Unidos se han dado casos de usuarios que han sido perseguidos por la Justicia y que han tenido que pagar multas altísimas a los demandantes. España no es Estados Unidos, lo que significa que las cosas se hacen de forma diferente.

Ángeles González Sinde, impulsora de la actual ley de LPIÁngeles González Sinde, impulsora de la actual ley de LPI / Mario Antonio Pena Zapatería editada con licencia CC BY-SA 2.0

En 2015 se aprobó la Ley Sinde-Wert, que principalmente estaba enfocada a perseguir a páginas web que alojaban enlaces (¿quién no se acuerda de lo que pasó con Series.ly, SeriesYonkis o SeriesPepito?). Estas páginas, además, muestran publicidad al usuario, con lo que se lucran a ojos de la legislación.

Sin embargo, esa misma ley especifica que no se persigue aquella persona que descarga un bien cultural protegido por los derechos de autor para el consumo propio. Los problemas llegarían si intentases vender DVDs piratas de películas o series descargadas de torrent. En otras palabras: siempre y cuando no ganes dinero por bajarte Juego de Tronos no hay de qué preocuparse.

La Unión Europea tiene una opinión similar a la del gobierno español. En septiembre de 2016 dijeron que un usuario no está cometiendo ningún acto ilegal si sube estos enlaces en una web sin ánimo de lucro y sin constancia de que las obras hayan sido publicadas sin permiso de los poseedores de los derechos.

Las redes P2P y el anonimato

Las redes P2P fundamentan distintos protocolos de anonimatoLas redes P2P fundamentan distintos protocolos de anonimato

No se puede dudar de que en los tiempos que corren, esos del llamado "Internet post-Snowden", se ha acrecentado la necesidad de implementar comunicaciones anónimas. En momentos como los que vivimos a día de hoy, con la existencia de métodos de vigilancia electrónicos que usan los gobiernos, es comprensible que haya una parte de los usuarios que quiera salvaguardar su privacidad.

Hablar en el punto anterior de RetroShare nos lleva a tratar el tema de las redes peer-to-peer anónimas. En los sistemas de comunicación P2P de este tipo el anonimato se logra enrutando las comunicaciones a través de redes superpuestas, lo que consigue ocultar la localización física de cada uno de los nodos.

Uno de los exponentes de las comunicaciones P2P anónimas no es otro que Freenet. Esta plataforma se ideó con la idea de evitar la censura en Internet. Usa un sistema de almacenamiento de datos descentralizado para mantener y entregar información, y cuenta con una suite de software libre para publicar y comunicarse en la web sin correr el riesgo de ser censurado.

Otro protocolo que usa el P2P para implementar las comunicaciones anónimas es Invisible Internet Project o I2P. Utiliza una variante del onion routing de Tor llamado garlic routing para dificultar el análisis de tráfico y aumentar la velocidad de transferencia de datos. I2P permite navegar por Internet de forma anónima, comunicaciones seguras, blogging anónimo y transferencia de archivos cifrada.

Máquina de mineo de bitcoinsMáquina de mineo de bitcoins

En este punto conviene aclarar que Tor no es un protocolo basado en P2P. El funcionamiento de Tor se asemeja más al de una serie de túneles VPN, que ocultan y redirigen el tráfico desde el nodo de entrada (tu ordenador) al nodo de salida (la web que deseas visitar).

La red P2P anónima de más reciente aparición es la llamada ZeroNet, que funciona como una especie de Internet descentralizado creado a base de usuarios peer-to-peer. Una característica interesante de esta red es que las webs, en lugar de estar identificadas por una IP, lo están por una dirección de Bitcoin.

El P2P también juega un papel fundamental en la moneda virtual Bitcoin, la divisa digital y anónima que ya se ha convertido en un tema recurrente. Es esencial para el desarrollo de la moneda, que cuenta con una red de nodos de la que cualquiera puede formar parte. Los nodos sirven para mantener actualizado el "libro de cuentas" de Bitcoin, pero son los mineros (un subgrupo de estos nodos) los que vigilan a los nodos y realizan las operaciones que generan la moneda.

Redes P4P: ¿el futuro del P2P?

El P4P podría ser el futuro y estar impulsado por los ISPsEl P4P podría ser el futuro y estar impulsado por los ISPs

Hace unas líneas hemos hablado de los modelos híbridos dentro de las redes P2P estructuradas. Dentro de estos sistemas entre dos aguas encontramos los Proactive network Provider Participation for P2P o P4P. Este protocolo permite a los proveedores de Internet optimizar las conexiones entre los diferentes nodos.

En otras palabras, se trata de una optimización de red por parte de los proveedores de servicios de Internet orientado a las redes P2P. A través de dicha optimización pueden ofrecer un mejor servicio y controlar mucho mejor el consumo de recursos, ya que el tráfico que mayor prioridad tiene suele ser siempre del de un mismo nodo y a continuación los más cercanos a él.

La ventaja más destacable es que de esta manera se consigue acelerar la velocidad de transferencia hasta un 600%, con una tasa de mejora media del 200%. Son números que impresionan al leerlos y se podría pensar que el P4P es la próxima gran panacea en la circulación de datos en Internet, pero no es oro todo lo que reluce.

El P4P también implica un mayor control del tráfico de datos (de lo que se transfiere) por parte de los ISPs, lo que les permite priorizar ciertos contenidos sobre otros afectando a la neutralidad de la red. También el P4P es una parte integral de los nuevos planes contra las descargas en Europa, precisamente por ese control del tráfico del que hablábamos.

Por otra parte, sí es posible que el P4P sea el futuro de las redes descentralizadas. Aunque suscite dudas con respecto a la pérdida de neutralidad de la red y con respecto al control de datos, lo cierto es que aporta ventajas para los proveedores de servicios y los usuarios: los contenidos legales podrán diversificar sus fuentes y el usuario se va a beneficiar de una mayor velocidad de transferencia ante un sistema de transferencia de archivos que comercialmente no explotan muchos actores (el P2P a nivel corporativo), entre los que se encuentra Spotify.

La historia del software está aquí

Otros relacionados