actividad
5 bloque 3
Peer-to-peer
Una red peer-to-peer, red de pares, red entre iguales, red entre pares o red
punto a punto (P2P,
por sus siglas en inglés) es unared de computadoras en la que todos o algunos aspectos
funcionan sin clientes ni servidores fijos, sino una serie de nodos que
se comportan como iguales entre sí. Es decir, 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.
Normalmente
este tipo de redes se implementan como redes superpuestas construidas en la capa de aplicación
de redes públicas como Internet.
El
hecho de que sirvan para compartir e intercambiar información de forma directa
entre dos o más usuarios ha propiciado que parte de los usuarios lo utilicen
para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright, lo que ha generado
una gran polémica entre defensores y detractores de estos sistemas.
Las
redes peer-to-peer aprovechan, administran y optimizan el
uso del ancho de banda de los demás usuarios de la red por
medio de la conectividad entre los mismos, y obtienen así más rendimiento en
las conexiones y transferencias que con algunos métodos centralizados
convencionales, donde una cantidad relativamente pequeña de servidores provee
el total del ancho de banda y recursos compartidos para un servicio o
aplicación.
Dichas
redes son útiles para diversos propósitos. A menudo se usan para compartir
ficheros (archivos) de cualquier tipo (por ejemplo, audio, vídeo o software).
Este tipo de red también suele usarse en telefonía VoIP para hacer más eficiente la
transmisión de datos en tiempo real.
La
eficacia de los nodos en el enlace y transmisión de datos puede variar según su
configuración local (cortafuegos, NAT, ruteadores, etc.),
velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de
almacenamiento en disco.
Historia
Mientras
que los sistemas P2P previamente se habían utilizado en muchos dominios de
aplicación,1 el concepto fue popularizado por los sistemas de intercambio de
archivos, tales como la aplicación de Napster para compartir música
(originalmente publicado en 1999). El movimiento de peer-to -peer permite que
millones de usuarios de Internet se conecten "directamente, formando
grupos y colaborando para convertirse en el usuario creado motores de búsqueda,
supercomputadoras virtuales y sistemas de archivos". 2 La visión de Tim
Berners-Lee para la World Wide Web estaba cerca de una red P2P, ya que supone
que cada usuario de la web sería un editor activo y colaborador, creación y
vinculación de contenidos para formar una "web" (red)
interrelacionada de enlaces. El Internet primitivo era más abierto que el día
presente, en el que dos equipos conectados a Internet pueden enviar paquetes
con medidas de seguridad.3 Esto contrasta con la estructura de radiodifusión
como de la web, ya que se ha desarrollado a lo largo del años.4
La idea
del peer-to-peer se inició en la década de 1960, cuando ARPANET fue creada como
una red para compartir archivos entre los centros de investigación de Estados
Unidos y todos los hosts se veían como iguales, ninguno más importante que los
otros.5 Como precursor de la Internet, ARPANET era una red cliente-servidor con
éxito, donde "cada nodo participante puede solicitar y servir
contenido". Sin embargo, ARPANET no era auto organizada y carecía de la
capacidad de "proporcionar todos los medios para el contexto o el
contenido en función de enrutamiento más allá de 'simple' dirigida enrutamiento
basado".6
Por lo
tanto, se estableció un sistema de mensajería distribuido que a menudo se
asemeja a los principios de la arquitectura peer-to-peer: USENET. USENET fue
desarrollado en 1979 y es un sistema que aplica un modelo descentralizado de
control. El modelo básico es un modelo cliente-servidor desde el punto de vista
del usuario o cliente que ofrece un enfoque de auto-organización de los
servidores de grupos de noticias. Sin embargo, los servidores de noticias se
comunican entre sí como iguales para propagar noticias USENET sobre todo el
grupo de servidores de red. La misma consideración se aplica al SMTP de correo
electrónico, en el sentido de que el correo electrónico de red central de
transmisión de agentes de transferencia de correo tiene un carácter
peer-to-peer, mientras que la periferia de clientes de correo electrónico y sus
conexiones directas son estrictamente una relación de cliente-servidor.
En mayo
de 1999, con millones de personas más en Internet, Shawn Fanning introdujo la
aplicación para compartir música y archivos llamada Napster.7 Napster fue el
comienzo de las redes peer-to-peer, como las conocemos hoy en día, donde
"los usuarios que participan establecer una red virtual, totalmente
independiente de la red física, sin tener que obedecer a cualquier autoridad administrativa
o restricciones".8
Aplicaciones
de las redes
1.
Actualmente, en Internet el ancho de banda o las capacidades de
almacenamiento y cómputo son recursos caros. En aquellas aplicaciones y
servicios que requieran una enorme cantidad de recursos pueden usarse las redes
P2P.
2.
Algunos ejemplos de aplicación de las redes P2P son los
siguientes:
3.
Intercambio y búsqueda de ficheros. Quizás sea la aplicación más
extendida de este tipo de redes. Algunos ejemplos son BitTorrent o emule (de la
red eDonkey2000) .
4.
Sistemas de ficheros distribuidos, como CFS o Freenet.
5.
Sistemas para proporcionar cierto grado de anonimato, como i2p,
Tarzan o MorphMix. Este tipo de tecnologías forman parte de la llamada red
oscura y constituyen el llamado peer-to-peer anónimo.
6.
Sistemas de telefonía por Internet, como Skype.
7.
A partir del año 2006, cada vez más compañías europeas y
norteamericanas, como Warner Bros o la BBC, empezaron a ver el P2P como una
alternativa a la distribución convencional de películas y programas de
televisión, y ofrecen parte de sus contenidos a través de tecnologías como la
de BitTorrent.9
8.
Cálculos científicos que procesen enormes bases de datos, como
los procedimientos bioinformáticos.
9.
Monedas virtuales para transacciones entre partes. Bitcoin
10.
Características
Escalabilidad. Las redes P2P
tienen un alcance mundial con cientos de millones de usuarios potenciales. En
general, lo deseable es que cuantos más nodos estén conectados a una red P2P,
mejor será su funcionamiento. Así, cuando los nodos llegan y comparten sus
propios recursos, los recursos totales del sistema aumentan. Esto es diferente
en una arquitectura del modo servidor-cliente con un sistema fijo de
servidores, en los cuales la adición de clientes podría significar una
transferencia de datos más lenta para todos los usuarios. Algunos autores
advierten que, si proliferan mucho este tipo de redes, cliente-servidor,
podrían llegar a su fin, ya que a cada una de estas redes se conectarán muy
pocos usuarios.
Robustez. La naturaleza
distribuida de las redes peer-to-peer también incrementa la robustez en caso de
haber fallos en la réplica excesiva de los datos hacia múltiples destinos, y
—-en sistemas P2P puros—- permitiendo a los peers encontrar la información sin
hacer peticiones a ningún servidor centralizado de indexado. En el último caso,
no hay ningún punto singular de falla en el sistema.
Descentralización. Estas
redes por definición son descentralizadas y todos los nodos son iguales. No
existen nodos con funciones especiales, y por tanto ningún nodo es
imprescindible para el funcionamiento de la red. En realidad, algunas redes
comúnmente llamadas P2P no cumplen esta característica, como Napster, eDonkey o
BitTorrent.
Distribución de costes entre
los usuarios. Se comparten o donan recursos a cambio de recursos. Según la
aplicación de la red, los recursos pueden ser archivos, ancho de banda, ciclos
de proceso o almacenamiento de disco.
Anonimato. Es deseable que
en estas redes quede anónimo el autor de un contenido, el editor, el lector, el
servidor que lo alberga y la petición para encontrarlo, siempre que así lo
necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de
autor son incompatibles entre sí, y la industria propone mecanismos como el DRM
para limitar ambos.
Seguridad. Es una de las
características deseables de las redes P2P menos implementada. Los objetivos de
un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el
contenido infectado, evitar el espionaje de las comunicaciones entre nodos,
creación de grupos seguros de nodos dentro de la red, protección de los
recursos de la red... La mayor parte de los nodos aún están bajo investigación,
pero los mecanismos más prometedores son: cifrado multiclave, cajas de arena,
gestión de derechos de autor (la industria define qué puede hacer el usuario;
por ejemplo, la segunda vez que se oye la canción se apaga), reputación
(permitir acceso sólo a los conocidos), comunicaciones seguras, comentarios
sobre los ficheros, etc.
Problemas de funcionamiento
La mayor parte de los nodos
de Internet no disponen de una dirección IP fija o siquiera accesible para
otros nodos de Internet. Este es el caso, por ejemplo, de los nodos que se
conectan a través de redes locales como Wifi o Ethernet, de aquellos que tienen
algún tipo de cortafuegos y NAT o de los que se conectan a través de la mayor
parte de los ISPs del mundo. 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. Este servidor inicial se encarga de mantener una
lista con las direcciones de otros nodos que están actualmente conectados a la
red. Tras esto, los clientes ya tienen información suficiente para entrar en la
red y pueden intercambiar información con otro nodos, ya sin intervención de
los servidores iniciales.
Para resolver el problema de
conexión cuando los nodos no tienen dirección pública, estos se conectan a
través de otro nodo que funciona como proxy de la conexión. Los dos nodos se
conectan al proxy y éste envía la información que llega de uno al otro. Cualquier
nodo con una dirección IP pública puede ser escogido como proxy de una conexión
entre dos nodos. Por ejemplo, en la red Skype a través de nuestro ordenador
pueden pasar conversaciones de otras personas. En estos casos, es
imprescindible la implementación de algún mecanismo de seguridad para evitar
que los proxies pueden llegar a entender la comunicación entre los dos nodos.
Características
Escalabilidad. Las redes P2P
tienen un alcance mundial con cientos de millones de usuarios potenciales. En
general, lo deseable es que cuantos más nodos estén conectados a una red P2P,
mejor será su funcionamiento. Así, cuando los nodos llegan y comparten sus
propios recursos, los recursos totales del sistema aumentan. Esto es diferente
en una arquitectura del modo servidor-cliente con un sistema fijo de
servidores, en los cuales la adición de clientes podría significar una
transferencia de datos más lenta para todos los usuarios. Algunos autores
advierten que, si proliferan mucho este tipo de redes, cliente-servidor,
podrían llegar a su fin, ya que a cada una de estas redes se conectarán muy
pocos usuarios.
Robustez. La naturaleza
distribuida de las redes peer-to-peer también incrementa la robustez en caso de
haber fallos en la réplica excesiva de los datos hacia múltiples destinos, y
—-en sistemas P2P puros—- permitiendo a los peers encontrar la información sin
hacer peticiones a ningún servidor centralizado de indexado. En el último caso,
no hay ningún punto singular de falla en el sistema.
Descentralización. Estas
redes por definición son descentralizadas y todos los nodos son iguales. No
existen nodos con funciones especiales, y por tanto ningún nodo es
imprescindible para el funcionamiento de la red. En realidad, algunas redes
comúnmente llamadas P2P no cumplen esta característica, como Napster, eDonkey o
BitTorrent.
Distribución de costes entre
los usuarios. Se comparten o donan recursos a cambio de recursos. Según la
aplicación de la red, los recursos pueden ser archivos, ancho de banda, ciclos
de proceso o almacenamiento de disco.
Anonimato. Es deseable que
en estas redes quede anónimo el autor de un contenido, el editor, el lector, el
servidor que lo alberga y la petición para encontrarlo, siempre que así lo
necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de
autor son incompatibles entre sí, y la industria propone mecanismos como el DRM
para limitar ambos.
Seguridad. Es una de las
características deseables de las redes P2P menos implementada. Los objetivos de
un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el
contenido infectado, evitar el espionaje de las comunicaciones entre nodos,
creación de grupos seguros de nodos dentro de la red, protección de los recursos
de la red... La mayor parte de los nodos aún están bajo investigación, pero los
mecanismos más prometedores son: cifrado multiclave, cajas de arena, gestión de
derechos de autor (la industria define qué puede hacer el usuario; por ejemplo,
la segunda vez que se oye la canción se apaga), reputación (permitir acceso
sólo a los conocidos), comunicaciones seguras, comentarios sobre los ficheros,
etc.
Problemas de funcionamiento
La mayor parte de los nodos
de Internet no disponen de una dirección IP fija o siquiera accesible para
otros nodos de Internet. Este es el caso, por ejemplo, de los nodos que se
conectan a través de redes locales como Wifi o Ethernet, de aquellos que tienen
algún tipo de cortafuegos y NAT o de los que se conectan a través de la mayor
parte de los ISPs del mundo. 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. Este servidor inicial se encarga de mantener una
lista con las direcciones de otros nodos que están actualmente conectados a la
red. Tras esto, los clientes ya tienen información suficiente para entrar en la
red y pueden intercambiar información con otro nodos, ya sin intervención de
los servidores iniciales.
Para resolver el problema de
conexión cuando los nodos no tienen dirección pública, estos se conectan a
través de otro nodo que funciona como proxy de la conexión. Los dos nodos se
conectan al proxy y éste envía la información que llega de uno al otro.
Cualquier nodo con una dirección IP pública puede ser escogido como proxy de
una conexión entre dos nodos. Por ejemplo, en la red Skype a través de nuestro
ordenador pueden pasar conversaciones de otras personas. En estos casos, es
imprescindible la implementación de algún mecanismo de seguridad para evitar
que los proxies pueden llegar a entender la comunicación entre los dos nodos.
Dominio público, Copyleft y
Creative Commons
Las aplicaciones P2P
resultan útiles para intercambiar y compartir todo tipo de obras, entre ellas
destacan los siguientes ejemplos:
Obras que pertenecen al
dominio público, como libros, películas, fotografías, etc.
Facilitan el intercambio de
creaciones propias, como vídeos, fotografías y animaciones que no tengan
licencia.
Facilitan el intercambio de
programas libres publicados con licencias GPL, BSD, MPL, etc.
Facilitan el intercambio de
todo tipo de documentos con diversas licencias como el Copyleft y obras
publicadas con licencias Creative Commons.