Estado del arte de las redes peer to peer (P2P)
Luis J. Tena
Programa de Licenciatura en Informática
Universidad de Oriente
Cumaná, Sucre, Venezuela
Resumen: El término "peer-to-peer" (P2P) se refiere a
una clase de sistemas y aplicaciones que emplean
recursos distribuidos para un funcionamiento de manera
descentralizada. Con el despliegue generalizado de
computadoras, las redes P2P están recibiendo cada vez
más atención en la investigación, desarrollo de productos,
y en algunos círculos de inversión. Algunos de los
beneficios de un enfoque P2P: mejoran la escalabilidad,
evitando dependencia en puntos centralizados; eliminan
la necesidad de costosas infraestructuras, al permitir la
comunicación entre clientes; y permitiendo añadir
recursos a la red.
Palabras clave: P2P, Sistemas, Red
Motivación
El concepto de P2P se estableció por primera vez en
1969, en la primera Request for Comments (solicitud de
comentarios), RFC 1. La RFC implica una conexión
"host-to-host", una discriminación de la categoría cliente-
servidor, que proporciona las respuestas de la forma de
los terminales de teletipo (TTY). Sin embargo, la primera
verdadera implementación de una red P2P fue Usenet,
desarrollada en 1979. En Usenet, mientras que los
clientes todavía accedían a recursos a través de los
servidores, los servidores compartían entre ellos de la
manera en que lo hace una red P2P, enviando mensajes el
uno al otro, sin una autoridad central.
Sin embargo esto no atrajo tanta atención hacia los
sistemas P2P, sino hasta el nacimiento de Napster en
1999. Aunque las transferencias de los archivos tenían
lugar directamente entre dos equipos, Napster utilizaba
servidores centrales para almacenar la lista de equipos y
los archivos que proporcionaba cada uno, con lo que no
era una aplicación perfectamente P2P. Aunque ya
existían aplicaciones que permitían el intercambio de
archivos entre los usuarios, como IRC y Usenet, Napster
se presentó como la primera aplicación para PC
especializada en los archivos de música mp3.
El resultado fue un sistema que presentaba una gran
selección de música para descargar de forma gratuita. En
diciembre de 1999, varias discográficas estadounidenses
demandaron a Napster, y también músicos reconocidos.
La demanda, lejos de asustar a los usuarios, dio
publicidad al servicio, de forma que en febrero de 2001
Napster había llegado a su cima con 13,6 millones de
usuarios en todo el mundo. Hoy día Con el despliegue
generalizado de ordenadores, las redes P2P está
recibiendo cada vez más atención por parte de
investigadores, en el desarrollo de productos, y en
algunos círculos de inversionistas, como por ejemplo
Skype que cuenta con una red P2P Hibrida para la
comunicación entre usuarios a través de su aplicación;
también en el campo de investigación se usa como por
ejemplo SETI@home (Search for Extraterrestrial
Intelligence - Búsqueda de Inteligencia Extraterrestre),
que analiza las emisiones de radio recibidas desde el
espacio y recogida por el radiotelescopio gigante de
Arecibo, con el poder de procesamiento de millones de
ordenadores en Internet sin usar [Anderson 2002] con el
fin de descubrir civilizaciones alienígenas. Todo esto está
dando paso al continuo mejoramiento de este tipo de
redes P2P en cuanto a consumo de ancho de banda,
eficiencia en la ubicación de peers dentro de la red, etc.
Introducción
En una red tradicional de computadoras, uno o más
servidores centrales suelen ofrecer todos los servicios
disponibles en la red.
Un ejemplo de ello son los numerosos servidores FTP
(File Transfer Protocol) y HTTP (HyperText Transfer
Protocol) en Internet que ofrecen recursos de archivos
para su descarga, desde clientes que buscan estos
servicios. En contraste con este modelo cliente-servidor
de una red, otro enfoque consiste en distribuir el peso de
la prestación de servicios entre los nodos, o peers, de
manera que cada nodo es cliente y servidor. Este tipo de
red se llama red peer-to-peer (P2P)
2
Definición
Los sistemas y aplicaciones peer-to-peer (punto a punto)
(abreviado como P2P) son sistemas distribuidos sin
ningún tipo de control centralizado o una organización
jerárquica, donde se requiere que el software,
ejecutándose en cada nodo, use el mismo o un programa
compatible para conectarse a entre sí y acceder a archivos
y otros recursos que se encuentran en los ordenadores de
otros. Las arquitecturas P2P reparten las tareas o cargas
de trabajo entre peers, el dueño de cada equipo en una red
P2P, donara una parte de sus recursos -tales como
potencia de procesamiento, almacenamiento en disco o
ancho de banda en la red- los cuales estarán directamente
disponibles para otros participantes de la red. En estas
redes cada computadora puede actuar como un cliente o
servidor de las otras maquinas (todos los peers son
igualmente privilegiados), lo que permite el acceso
compartido, en contraste con el modelo tradicional
cliente-servidor, donde sólo los servidores de suministro
(envían), y los clientes consumen (reciben). 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
proveen el total del ancho de banda y recursos
compartidos para un servicio o aplicación.
Inicios del P2P
El concepto de P2P se estableció por primera vez en
1969, en la primera Request for Comments (solicitud de
comentarios), RFC 1. La RFC implica una conexión
"host-to-host", una discriminación de la categoría cliente-
servidor, que proporciona las respuestas de la forma de
los terminales de teletipo (TTY). Sin embargo, la primera
verdadera implementación de una red P2P fue Usenet,
desarrollada en 1979. En Usenet, mientras que los
clientes todavía accedían a recursos a través de los
servidores, los servidores compartían entre ellos de la
manera en que lo hace una red P2P, enviando mensajes el
uno al otro, sin una autoridad central.
Sin embargo esto no atrajo tanta atención hacia los
sistemas P2P, sino hasta el nacimiento de Napster en
1999. Aunque las transferencias de los archivos tenían
lugar directamente entre dos equipos, Napster utilizaba
servidores centrales para almacenar la lista de equipos y
los archivos que proporcionaba cada uno, con lo que no
era una aplicación perfectamente P2P. Aunque ya
existían aplicaciones que permitían el intercambio de
archivos entre los usuarios, como IRC y Usenet, Napster
se presentó como la primera aplicación para PC
especializada en los archivos de música mp3.
El resultado fue un sistema que presentaba una gran
selección de música para descargar de forma gratuita. El
hecho de que Napster fuera un servicio centralizado
resultó su perdición. En diciembre de 1999, varias
discográficas estadounidenses demandaron a Napster, y
también músicos reconocidos como Lars Ulrich, baterista
del grupo Metallica, reclamaron su cierre. La demanda,
lejos de asustar a los usuarios, dio publicidad al servicio,
de forma que en febrero de 2001 Napster había llegado a
su cima con 13.6 millones de usuarios en todo el mundo.
Muchos argumentaron que el cierre de Napster sólo
llevaría al surgimiento de otras aplicaciones similares de
intercambio de archivos. El juez dictó el cierre de
Napster en julio de 2001. Después de esa fecha, Napster
se transformó en un servicio de pago, a costa de ser
prácticamente olvidado por la comunidad internauta.
Durante un tiempo, el intercambio de archivos fue a la
deriva. Existían ya bastantes alternativas. Al principio se
seguía usando Napster mediante servidores no oficiales
(usando OpenNap, por ejemplo) a los que se podía
acceder gracias a un programa llamado Napigator.
También surgieron programas como Winmx (cerrado en
2005 por amenazas de la RIAA), e iMesh.
Después se estableció como líder P2P Audiogalaxy, otra
aplicación centralizada de intercambio de música, que
acabó también por orden judicial. Por otra parte, la RIAA
(la asociación estadounidense de discográficas) tomó
estas resoluciones judiciales como victorias importantes
encaminadas a acabar con la llamada "piratería".
Clientes nuevos y la aparición de la red Gnutella, fueron
sustituyendo a Napster y Audiogalaxy, entre otros.
Luego, en el año 2002, se dio un éxodo masivo de
usuarios hacia las redes descentralizadas, como Kazaa,
Grokster, Piolet y Morpheus. También están Ares y Ares
Lite, libres de spyware y que usan la red Ares Galaxy.
La RIAA intentó, también por la vía judicial, acabar con
los nuevos servicios descentralizados, y que permitían
compartir varios tipos de archivos (no sólo mp3), pero
3
Grokster y Morpheus ganaron sus juicios en abril de
2003.
Luego apareció eDonkey 2000 (ya existía en el 2001 pero
no era popular), esta aplicación que se mantuvo junto a
Kazaa como líder del movimiento P2P. Más tarde, la
aparición de otros clientes basados en el protocolo de
eDonkey 2000, como Lphant, Shareaza, eMule y sus
Mods, y otros menos conocidos como aMule y
MLDonkey para Linux, causó el progresivo declive del
programa original eDonkey 2000 el cual se hizo menos
popular porque fue remplazado por eMule y sus Mods.
Otro paso importante lo marcó el protocolo BitTorrent,
que pese a tener muchas similitudes con eDonkey 2000
proporciona, según los desarrolladores, una mayor
velocidad de descarga, pero a costa de una menor
variedad y longevidad de archivos en la red.
Características
1 Descentralización
Los modelos P2P cuestionan la decisión de almacenar y
procesar sólo los datos en servidores centralizados y el
acceso al contenido a través de protocolos de petición-
respuesta. Una de las ideas más poderosas de la
descentralización es el énfasis en posesión y el control de
los datos y recursos por parte del usuario.
En un sistema totalmente descentralizado, cada peer
(Punto o Igual) es un participante idéntico. Esto hace que
la implementación de los modelos P2P difícil en la
práctica, porque no hay servidores centralizados, con una
visión global de todos los compañeros en la red o de los
archivos que proporcionan. Esta es la razón por la que
muchos sistemas de archivos P2P se basan en enfoques
híbridos como en el caso de Napster, donde hay un
directorio centralizado de los archivos, pero los nodos
descargan los archivos directamente de sus peers.
2 Escalabilidad
Un beneficio inmediato de la descentralización es una
mejora en la escalabilidad. La escalabilidad se ve
limitada por factores tales como la cantidad de
operaciones centralizadas (por ejemplo, la sincronización
y coordinación) que necesitan ser realizadas, la cantidad
de estados que deben mantenerse, el paralelismo
inherente que una aplicación exhibe, y el modelo de
programación que se utiliza para representar el cálculo.
Napster ataco el problema de la escalabilidad al poner a
los peers a descargar directamente los archivos de música
de los peers que poseen el documento solicitado. Como
resultado, Napster fue capaz de escalar hasta más de 6
millones de usuarios como máximo durante su servicio.
3 Anonimato
Uno de los objetivos de P2P es permitir a la gente a
utilizar los sistemas sin preocupación por las
ramificaciones legales o de otro tipo. Otro objetivo es
garantizar que la censura de los contenidos digitales no
sea posible.
Los autores de la Free Haven, han identificado los
siguientes aspectos de anonimato:
• Autor: el autor de un documento o el creador no puede
ser identificado
• Editor (Publisher): La persona que publicó el
documento en el sistema no se puede identificar
• Lector: Las personas que lee o de otra manera consume
los datos, no pueden ser identificados
• Servidor: Los servidores que contienen un documento
no puede ser identificado basado en el documento
• Documento: Los servidores no saben los documentos
que están almacenando
• Consulta: Un servidor no puede decir que documento
está utilizando para responder a la consulta del usuario.
Independientemente de la entidad mencionada
anteriormente, existen tres diferentes tipo de anonimato
entre cada par comunicar:
El anonimato del Remitente, que oculta la identidad del
remitente; anonimidad del Receptor que oculta la
identidad del receptor; y anonimidad Mutua el cual oculta
la identidad del remitente y el receptor, ocultos unos de
otros y de otros peers.
Hay seis técnicas populares, cada una adecuada para
hacer cumplir los diferentes tipos de anonimato y cada
una con diferentes tipos de limitaciones:
• Multidifusión
• Suplantación de la dirección del remitente
• La suplantación de identidad
• Las rutas clandestinas
• Los alias intratables
• De implantación No Voluntarias
4
4 Auto-Organización
En la cibernética, la auto-organización se define como un
proceso donde la organización (restricción, la
redundancia) de un sistema espontáneamente aumenta,
es decir, sin este aumento siendo controlado por el medio
ambiente o circundando o de alguna otra manera el
sistema externo.
En los sistemas P2P, la auto-organización es necesaria
debido a escalabilidad, la falta de resiliencia, conexión
intermitente de los recursos, y el costo de posesión.
Es difícil para cualquier configuración predefinida
permanecer intacta durante un largo período de tiempo.
La adaptación es necesaria para manejar los cambios
causados por los peers conectándose y desconectándose
de los sistemas P2P. Por último, porque sería costoso
tener equipos y/o personas dedicadas a la gestión de un
entorno tan fluctuante, la administración es distribuida
entre los peers.
5 Costo de Propiedad
Una de las premisas de la computación P2P es el
intercambio de las pertenencias. La propiedad compartida
reduce el costo de ser dueño del sistema y el contenido, y
el costo de mantenimiento de ellos. Esto es aplicable a
todas las clases de sistemas P2P. Esto es probablemente
más obvio en la computación distribuida. Por ejemplo,
SETI@home es más rápido que la supercomputadora
más rápida en el mundo, sin embargo, a sólo una fracción
de su costo - 1%. Un enfoque similar lo hacen en la
comunicación inalámbrica en los Estados Unidos. Un
movimiento inalámbrico llamada "Red Parasito", permite
el intercambio del existente ancho de banda 802.11b
instalado en casas entre los usuarios. Estas redes
compiten con las empresas de instalación de
infraestructura inalámbrica a una fracción del costo.
6 Conectividad Ad-Hoc
La naturaleza ad hoc de la conectividad tiene un fuerte
efecto sobre todas las clases de sistemas P2P. En la
computación distribuida, las aplicaciones paralelizadas
no se puede ejecutar en todos los sistemas todo el tiempo;
algunos de los sistemas estará disponible todo el tiempo,
algunas estarán disponible una parte del tiempo, y
algunos no estarán disponibles en absoluto. Los sistemas
P2P y las aplicaciones en computación distribuida deben
estar conscientes de esta naturaleza ad hoc y ser capaz de
manejar la unión de sistemas y remoción, de los sistemas
P2P disponibles.
Mientras que en los tradicionales sistemas distribuidos,
este era un evento excepcional, en los sistemas P2P se
considera normal.
En los sistemas y aplicaciones P2P para compartir
contenidos, los usuarios esperan tener acceso al
contenido de forma intermitente, sujetos a la conectividad
de los proveedores de contenido. En los sistemas con
mayores garantías, como los acuerdos de nivel de
servicio, la naturaleza ad hoc es reducida a través de
proveedores servicios redundantes, pero las partes de los
proveedores pueden estar aún no disponibles.
En los sistemas y aplicaciones P2P de colaboración, la
naturaleza ad hoc de la conectividad es aún más evidente.
Usuarios colaborativos están esperando cada vez más el
uso de dispositivos móviles, así pueden estar más tiempo
conectados a Internet y disponibles para colaborar. Para
manejar esta situación, sistemas colaborativos soportan
un retraso transparente en la comunicación con los
sistemas desconectados. Esto puede ser posible al tener
proxis delegados en las redes para recibir mensajes, o
teniendo otros tipos de repetidores en el sistema que
envía o en algún otro lugar de la red que temporal
mantendrá la comunicación de un sistema que no esté
disponible.
7 Rendimiento
El rendimiento es una preocupación importante en los
sistemas P2P. Los sistemas P2P tienen como objetivo
mejorar el rendimiento mediante la agregación de
capacidad de almacenamiento distribuido (por ejemplo,
Napster, Gnutella) y ciclos de computo (por ejemplo,
SETI@home) de los dispositivos ampliamente
extendidos a través de una red. Debido a la naturaleza
descentralizada de estos modelos, el rendimiento se ve
influenciada por tres tipos de recursos: procesamiento,
almacenamiento y funcionamiento en las redes.
Hay tres enfoques principales para optimizar el
rendimiento:
La replicación de los objetos y archivos más cercanos al
peer que lo solicito; “cachear” reduce la longitud del
camino requerido para ir a buscar un archivo/objeto y por
lo tanto el número de mensajes intercambiados entre los
peers; y Enrutamiento Inteligente y la organización de la
red. Para darse cuenta totalmente del potencial de las
redes P2P, es importante entender y explorar las
interacciones sociales entre los peers.
5
8 Seguridad
Los sistemas P2P comparten la mayoría de sus
necesidades en materia de seguridad con los sistemas
distribuidos comunes: los lazos de confianza entre peers
y los objetos compartidos, los esquemas de las sesiones
de intercambio de claves, encriptación, digests digitales,
y las firmas.
Nuevos requisitos de seguridad aparecieron con sistemas
P2P:
• Cifrado Multi-clave. Los sistemas de intercambio de
archivos, intentan proteger a un objeto compartido, así
como el anonimato de su autor, peer que realiza la
distribución y peer en el que se alojara.
• Sandboxing (Cajas de Arena). Algunos sistemas de
computación distribuida P2P requieren la descarga de
código en los equipos de otros peers. Es crucial proteger
las máquinas de peers de lo que pudiese ser código
malicioso y proteger el código de una posible maquina
maliciosa. La protección de una máquina de un peer
normalmente implica la aplicación de (1) propiedades de
seguridad de manera que el código externo no provocara
daños en la “caja” del host, o sólo accederá a los datos
del host de una manera segura, y la aplicación de (2) las
propiedades de seguridad para evitar que los datos
sensibles se filtren a terceros malintencionados. Técnicas
para hacer cumplir la primero incluye sandboxing (es
decir, técnicas que aíslan el código externo a sus propios
dominios de protección), lenguajes seguros que impiden
que sea escrito código inseguro (por ejemplo, Java),
máquinas virtuales (por ejemplo, Internet, máquina
virtual de C++ POSIX, modo real derivados de Linux,
que ejecutan una máquina virtual sobre el SO, VMware),
códigos firmados y compiladores certificados y técnicas
de verificación de programas aplicadas a la verificación
de las características de seguridad del código de máquina.
Técnicas para comprobar lo último incluyen teoría del
flujo de información, y el modelo de verificación.
• Administración de derechos digitales. El intercambio
de archivos P2P hace de la copia algo fácil. Es necesario
ser capaz de proteger a los autores de que le roben su
propiedad intelectual. Una manera de lograrlo es agregar
una firma en el archivo que lo haga reconocible (la firma
permanece unida a los contenidos del archivo), aunque
contenido del archivo no son afectados. Esta técnica, es
conocida como marca de agua o la esteganografía
Katzenbeisser, se ha experimentado con la RIAA para
proteger los archivos de audio tales como MP3,
ocultando información de Derechos de Autor en el
archivo de manera inaudible.
• Reputación y Responsabilidad. En los sistemas P2P,
esto es a menudo importante para mantener registro de la
reputación de los peers para prevenir comportamientos
negativos que puedan dañar todo el sistema.
La reputación requiere de formas de medir que tan
"bueno" o "útil" es un peer. Para evitar un "mal" tipo de
comportamiento no cooperativo, algún mecanismo de
rendición de cuentas debe ser concebido.
Los sistemas actuales suelen basarse en un rating
universal entre los usuarios autenticados de la
comunidad. Sin embargo, la autenticación no ofrece
ninguna garantía de la conducta de un peer; por lo tanto,
es difícil producir un sistema sólido.
• Cortafuegos. Inherentemente las aplicaciones P2P
requieren conexión directa entre pares. Sin embargo, en
entornos corporativos las redes internas se aíslan de la
red externa (Internet), dejando un menor derecho de
acceso a las aplicaciones. Por ejemplo, la mayoría de los
cortafuegos bloquean conexiones TCP entrantes. Esto
significa que una máquina con un Cortafuegos no será
accesible desde una máquina externa a la red.
Peor aún, los usuarios desde casa utilizan con frecuencia
enmascarado de IP o tecnología de Network Address
Translation (NAT) para compartir una conexión a
Internet entre varias máquinas, lo que conduce al mismo
problema de inaccesibilidad.
Sin embargo, como el acceso de salida a través del puerto
80(HTTP) se permite a menudo por los cortafuegos,
algunos mecanismos se han ideado que permitan las
conexiones entre ocultas (las máquinas detrás de un
cortafuegos o NAT, inaccesible desde Internet) y las
máquinas de Internet.
Esto es bastante limitante sin embargo, ya que requiere
que la conexión se inicie desde la máquina oculta.
Cuando ambos peers, quienes desean comunicarse,
residen detrás de diferentes cortafuegos, el problema se
vuelve más difícil. Se requiere un servidor central
reflector (o repetidor) en Internet, que proporciona una
conexión entre los peers ocultos.
6
9 Transparencia y usabilidad
En los sistemas distribuidos, la transparencia era
tradicionalmente asociada con la capacidad de conectar
de forma transparente, sistemas distribuidos en un
sistema local. La principal forma de transparencia fue la
transparencia de localización, pero otras formas incluyen
la transparencia de acceso, de concurrencia, de
replicación, de fracaso, de movilidad, de escala, etc.
Los usuarios por lo general no son expertos y ellos no
administran o no pueden administrar su software y
dispositivos. El software P2P no debería exigir ningún
ajuste o configuración significativa de sus redes o
dispositivos para poder ejecutarse. Además, la auto-
actualización de software es una característica deseable.
Además, los sistemas P2P deberían ser transparentes para
la red y para los dispositivos (independientes). Ellos
deben trabajar en Internet, intranets y redes privadas,
utilizando enlaces de alta velocidad o de acceso
telefónico. También deberían ser transparentes para los
dispositivos, lo que significa que deberían funcionar en
una variedad de dispositivos portátiles, tales como
asistentes digitales personales (PDA), computadoras de
escritorio, teléfonos celulares y tabletas.
Otra forma de transparencia está relacionada con la
seguridad y la movilidad. Autenticación automática y
transparente de los usuarios y la delegación a los usuarios
de proxis puede reducir significativamente las acciones
de los usuarios. Dar soporte a los usuarios móviles y a la
desconexión en particular, pueden permitir a los usuarios
trabajar independientemente de si están o no conectados a
la Internet o intranets.
10 Falla en Resiliencia
Uno de los principales objetivos de diseño de un sistema
P2P es evitar un punto de falla. Aunque la mayoría de los
sistemas P2P (P2P puros) ya hacen esto, no obstante
también se enfrentan con fallos comúnmente asociados
con los sistemas que abarcan múltiples hosts y redes:
desconexiones/inaccesibilidad, las particiones, y fallas en
los nodos.
11 Interoperabilidad
Aunque muchos sistemas P2P ya existían anteriormente,
todavía no hay soporte para permitir que estos sistemas
P2P puedan tener interoperabilidad.
En el pasado, había diferentes maneras de acercarse a la
interoperabilidad, tales como los estándares (por ejemplo,
las normas de IEEE para Ethernet, Token Ring, y por
cable); especificaciones comunes,
(Por ejemplo, Object Management Group); código fuente
común, (por ejemplo, OSF DCE); de código abierto (por
ejemplo, Linux); y los estándares de facto (Por ejemplo,
Windows o Java).
En el mundo del P2P, algunos han hecho esfuerzos hacia
la mejora de la interoperabilidad, pero incluso la
interoperabilidad todavía no se la ha dado soporte. El
Grupo de Trabajo P2P es un intento de reunir a la
comunidad de desarrolladores P2P juntos y establecer
una base común al escribir informes y documentos
técnicos que permitan el entendimiento común entre los
desarrolladores P2P.
JXTA, se enfoca en la interoperabilidad como un
esfuerzo de código abierto, tratando de imponer un
estándar de facto.
Un número de desarrolladores están invitados a
contribuir al árbol de código fuente común, con
diferentes piezas de funcionalidad.
Sólo una arquitectura subyacente mínima es compatible
como una base, permitiendo a otros sistemas contribuir
con partes que puedan ser compatibles con sus propias
implementaciones.
Un número de los actuales sistemas P2P ya se han
portado a JXTA
Ventajas y desventajas
En las redes P2P, los clientes proporcionan recursos, que
pueden incluir ancho de banda, espacio de
almacenamiento y potencia de cómputo. Esta propiedad
es una de las principales ventajas de usar las redes P2P,
ya que hace los costes de instalación y ejecución muy
bajos para el distribuidor de contenido original. Mientras
los nodos llegan y la demanda en el sistema aumenta, la
capacidad total del sistema también aumenta, y la
probabilidad de fallas disminuye. Si un peer en la red no
funciona correctamente, toda la red no se ve
comprometida o dañada. Por el contrario, en una típica
arquitectura cliente-servidor, los clientes comparten sólo
sus demandas con el sistema, pero no sus recursos. En
este caso, a medida que más clientes ingresen al sistema,
menos recursos están disponibles para servir a cada
cliente, y si el servidor central falla, toda la red se cae. La
naturaleza descentralizada de las redes P2P aumenta la
robustez, ya que elimina el punto de fallo que puede ser
inherente a un sistema basado en la arquitectura cliente-
servidor.
7
Otra propiedad importante de los sistemas peer-to-peer es
la falta de un administrador del sistema. Esto conduce a
una red que sea más rápida y fácil de instalar y mantener,
porque un personal completo no está obligado a
garantizar la eficiencia y la estabilidad. Las redes
descentralizadas introducen nuevos temas de seguridad
ya que están diseñadas para que cada usuario sea
responsable de controlar sus datos y recursos. Las redes
peer-to-peer, junto con casi todos los sistemas de red, son
vulnerables a los códigos no seguros y sin firmas, que
pueden permitir el acceso remoto a los archivos en el
ordenador de la víctima, o incluso poner en peligro toda
la red. Un usuario puede encontrar datos perjudiciales, al
descargar un archivo que fue subido originalmente como
un virus disfrazado en un .exe, .mp3, .avi, o cualquier
otro tipo de archivo. Este tipo de problema de seguridad
es debido a la falta de un administrador que mantiene la
lista de ficheros que se distribuye.
Se pueden distribuir datos dañinos también, en las redes
P2P mediante la modificación de los archivos que ya
están siendo distribuidos en la red. Este tipo de violación
de la seguridad es creado por el hecho de que los usuarios
se conectan a fuentes no fiables, en oposición a un
servidor que tenga mantenimiento. En el pasado esto ha
ocurrido a la red FastTrack, cuando la RIAA logró
introducir trozos falsos en las descargas y los archivos
descargados (archivos MP3 en su mayoría). Los archivos
infectados con el virus de la RIAA eran inutilizables
después, o incluso contener código malicioso. También
se sabe que la RIAA ha subido música y películas falsas
a las redes P2P con el fin de impedir el intercambio ilegal
de archivos. En consecuencia, las redes P2P de hoy han
visto un enorme aumento de su seguridad y mecanismos
de verificación de archivos. Hash modernos, la
verificación de segmentos del archivo y diferentes
métodos de cifrado han hecho la mayoría de las redes
resistentes a casi cualquier tipo de ataque, incluso cuando
las partes principales de la red respectiva han sido
sustituidos por host falsos o no funcionales.
Hay ventajas y desventajas en las redes P2P relacionados
con el tema de la copia de seguridad de los datos,
recuperación y disponibilidad. En una red centralizada,
los administradores de sistemas son las únicas fuerzas
que controlan la disponibilidad de los archivos que se
comparten. Si los administradores deciden no distribuir
un archivo, simplemente tiene que quitarlo de sus
servidores, y ya no estará disponible para los usuarios.
Además de dejar a los usuarios sin poder para decidir lo
que se distribuye en toda la comunidad, esto hace todo el
sistema vulnerable a amenazas y a exigencias del
gobierno y otras fuerzas mayores. Por ejemplo, YouTube
ha sido presionado por la RIAA, MPAA y la industria del
entretenimiento para filtrar contenido con derechos de
autor. Sin embargo las redes servidor-cliente son capaces
de supervisar y gestionar la disponibilidad de contenidos,
que pueden tener más estabilidad en la disponibilidad de
los contenidos que opten por alojar. Un cliente no debe
tener problemas para acceder a los contenidos oscuros
que se comparte en una red centralizada estable. Las
redes P2P, sin embargo, son menos fiables en el
intercambio de archivos impopulares porque compartir
archivos en una red P2P requiere que al menos un nodo
en la red tenga los datos solicitados, y que el nodo debe
ser capaz de conectar con el nodo que solicita los datos.
Estos requisitos son a veces difíciles de cumplir porque
los usuarios pueden eliminar o dejar de compartir datos
en cualquier momento.
En este sentido, la comunidad de usuarios en una red P2P
es completamente responsable de decidir qué contenido
se encuentra disponible. Archivos impopulares con el
tiempo van a desaparecer y dejan de estar disponibles a
medida que más personas dejen de compartirlas.
Archivos populares, sin embargo, será fácilmente y
altamente distribuidos. Los archivos más populares en
una red P2P en realidad tienen más estabilidad y
disponibilidad que los archivos en las redes centralizadas.
En una red centralizada, sólo la pérdida de conexión entre
los clientes y el servidor es suficientemente como para
provocar un fallo, pero en las redes P2P, las conexiones
entre cada nodo debe perderse para dejar de compartir
datos. En un sistema centralizado, los administradores
son responsables de toda la recuperación de datos y
copias de seguridad, mientras que en los sistemas P2P,
cada nodo requiere su sistema de copia de seguridad
propia. Debido a la falta de autoridad centralizada en las
redes P2P -tales como las fuerzas de la industria
discográfica, RIAA, MPAA, y el gobierno- no puede
eliminar o detener el uso de intercambio de contenidos en
los sistemas P2P.
La selección de un método P2P es a menudo impulsado
por uno o más de los siguientes objetivos.
• Distribución/Reducción de los costos.
Los sistemas centralizados que sirven a muchos clientes,
típicamente son los que generan la mayor cantidad de los
costos en el sistema. Cuando ese costo principal es
8
demasiado grande, una arquitectura P2P puede ayudar a
repartir los gastos entre todos los peers. Por ejemplo, en
el ámbito de intercambio de archivos, el sistema de
Napster permitió el reparto del coste de almacenamiento
de archivos entre los peers, y fue capaz de mantener el
índice requerido para el intercambio.
Gran parte de la distribución de costos viene por la
utilización y la agregación de los recursos no utilizados
(Por ejemplo, SETI@home), que se traduce en la
reducción de costos en un margen neto y en un menor
costo para los componentes de sistema mas caros. Debido
a que los peers tienden a ser autónomos, es importante
que los costos se distribuyan de manera razonablemente
equitativa.
• Añadir Recursos (mejor rendimiento) e
interoperabilidad.
Un enfoque descentralizado se presta naturalmente para
la agregación de recursos. Cada nodo en el sistema P2P
trae consigo algunos recursos como poder de cómputo o
espacio de almacenamiento. Aplicaciones que se
benefician de grandes cantidades de estos recursos, tales
como simulaciones de computo intensivo o los sistemas
de archivos distribuidos, que naturalmente se inclinan
hacia una estructura P2P para agregar recursos, para
resolver el problema más grande.
Sistemas de computación distribuida, tales como
SETI@home, distributed.net, y Endeavours son ejemplos
obvios de este enfoque. Al añadir recursos de cómputo a
miles de nodos, estos son capaces de realizar funciones
de computación intensiva. Los sistemas de intercambio
de archivos, tales como Napster, Gnutella, y otros,
también añaden recursos. En estos casos, es tanto espacio
de disco para almacenar las colecciones de datos de la
comunidad, como ancho de banda para mover los datos
que son añadidos. La interoperabilidad es también un
requerimiento importante para poder añadir diversos
tipos de recursos.
• Escalabilidad mejorada / fiabilidad
Con la falta de una autoridad central fuerte, para los peers
autónomos, la mejora de escalabilidad y fiabilidad del
sistema es un objetivo importante. Como resultado, la
innovación algorítmica en el área de descubrimiento y
búsqueda de recursos ha sido un amplio campo libre para
la investigación, dando lugar a nuevos algoritmos para
los sistemas existentes, y el desarrollo de nuevas
plataformas P2P (por ejemplo, CAN, Chord, y PAST).
La escalabilidad y la fiabilidad se definen en términos de
los sistemas distribuidos tradicionales, como el uso de
banda ancha –a cuantos sistemas se puede llegar desde un
nodo, cuantos sistemas son compatibles, cuantos usuarios
puede soportar, y cuanto almacenamiento se puede
utilizar. La fiabilidad está relacionada con fallas del
sistema y en la red, desconexión, la disponibilidad de
recursos, etc.
• Aumento de la autonomía
En muchos casos, los usuarios de un sistema distribuido
no están dispuestos a confiar en cualquier proveedor de
servicios centralizado. En su lugar, prefieren que todos
los datos y trabajo en su nombre, se realice localmente.
Los sistemas P2P soportan este nivel de autonomía,
simplemente porque requieren que el nodo local haga el
trabajo en lugar de su usuario. El principal ejemplo de
esto, son los diversos sistemas de intercambio de
archivos tales como Napster, Gnutella, y Freenet. En
cada caso, los usuarios tienen permitido descargar
archivos que no estarían disponibles en un servidor
central debido a las restricciones por licencias. Sin
embargo, las personas que corren sus propios servidores
de forma independiente han sido capaces de compartir los
archivos porque ellos son más difíciles de encontrar que
lo que seria encontrar un operador del servidor.
• Anonimato/privacidad
Relacionado con la autonomía es la noción de guardar el
anonimato y la privacidad. Un usuario puede no querer
que un proveedor de servicios o que alguna persona sepa
acerca de su acciones en el sistema. Con un servidor
central, es difícil asegurar el anonimato porque el
servidor suele ser capaz de identificar al cliente, por lo
menos a través de la dirección de Internet. Mediante el
empleo de una estructura P2P en las que las actividades
se llevan a cabo localmente, los usuarios pueden evitar
facilitar información sobre sí mismos a cualquier
persona. Freenet es un excelente ejemplo de cómo el
anonimato se puede construir en una aplicación P2P. Se
utiliza un esquema de transmisión para los mensajes para
asegurar que el solicitante original de un servicio no
pueda ser rastreado. Esto aumenta el anonimato mediante
el uso de algoritmos probabilísticos de modo que los
orígenes no pueden ser fácilmente seguidos, analizando
el tráfico de la red.
• Dinamismo
Los sistemas P2P asumen que el ambiente de
computación es altamente dinámico. Esto es, recursos,
tales como nodos de computo, que entraran y saldrán del
9
sistema continuamente. Cuando una aplicación está
destinada a dar soporte a un ambiente altamente
dinámico, los sistemas P2P son un enfoque adecuado. En
las aplicaciones de comunicación, tales como mensajería
instantánea, las llamadas "buddy-lists" son usadas para
informar a los usuarios cuando las personas con quien
deseen comunicarse estén disponibles.
Sin esta característica, los usuarios estarían obligados a
"encuestar" a los otros usuarios del chat mediante el
envío de mensajes periódicos. Del mismo modo,
aplicaciones de computación distribuida como
distributed.net y SETI@home tienen que adaptarse al
cambio de participantes. Por lo tanto, deben volver a
emitir el trabajo de cómputo a otros participantes para
garantizar que el trabajo no se pierda si los participantes
anteriores abandonan la red mientras se realiza uno de los
pasos en el cálculo.
• Habilitación de comunicación y colaboración ad hoc
Relacionada al dinamismo, esta la noción de soporte de
ambientes ad hoc. Con ad hoc, nos referimos a entornos
donde los miembros van y vienen, basado quizás en su
ubicación física actual o sus intereses actuales.
Una vez más, el P2P se ajusta a este tipo de aplicaciones,
ya que, naturalmente, toma en cuenta cambios en el
grupo de participantes. Los sistemas P2P por lo general
no se basan en establecer infraestructura - por ejemplo,
construyen su propio, recubrimiento lógico en CAN y
PAST
Los sistemas P2P están diseñados con las metas de la
descentralización, conectividad ad hoc, un costo de
propiedad reducido, y anonimato. P2P tiene un control y
datos más descentralizados comparado a sus alternativas,
además soporta sistemas cuyas partes pueden entrar y
salir y se puede comunicar de una manera ad hoc, el
costo de propiedad se distribuye entre los peers, y los
peers pueden ser anónimos. En comparación con los
sistemas P2P, los centralizados son inherentemente
centralizados y los sistemas cliente-servidor tienen
puntos de control y datos centralizados en los servidores.
Aplicaciones
Hay numerosas aplicaciones de las redes peer-to-peer. El
uso más común es para la distribución de contenido
• Entrega de contenido
Muchas de las redes de intercambio de archivos, como
Gnutella, G2 y la red eDonkey popularizaron las
tecnologías peer-to-peer. A partir de 2004, estas redes
constituyen el mayor tráfico de red en Internet.
• Peer-to-peer (P2P de distribución de contenido-
CDN). Ejemplos Giraffic, Kontiki, Ignite, RedSwoosh.
• Peer-to-peer servicios de contenidos, por ejemplo,
almacena en caché para mejorar el rendimiento, tales
como Correli Caches
• Software de edición y distribución (Linux, varios
juegos), a través de redes de intercambio de archivos.
• Streaming media. P2PTV y PDTP. Las aplicaciones
incluyen TVUPlayer, Joost, CoolStreaming, Cybersky-
TV, PPLive, Livestation, y Giraffic Didiom.
-- Spotify utiliza una red peer-to-peer, junto con
servidores de streaming para transmitir música a su
reproductor de música de escritorio.
-- Peercasting para flujos de multidifusión. Ejemplos
PeerCast, IceShare, FreeCast, Rawflow
• Pennsylvania State University, MIT y Simon Fraser
University están llevando a cabo un proyecto
denominado LionShare diseñado para facilitar el
intercambio de archivos entre las instituciones educativas
a nivel mundial.
• Osiris (sistema de portal sin servidor) permite a sus
usuarios crear portales anónimos y autónomos
distribuidos a través de la red P2P.
• Intercambio de bienes físicos, servicios, o espacios
Plataformas web peer-to-peer para alquilar que la gente
pueda encontrar y reservar los bienes, servicios, o el
espacio en la plataforma virtual, pero llevar a cabo la
transacción P2P real en el mundo físico (por ejemplo:
enviar un correo electrónico a un vendedor de calzado
locales para reservar para usted ese cómodo par de
zapatillas que siempre has tenido en tus ojos, o ponerse
en contacto con un vecino que ha enumerado su corta-
césped en alquiler).
-- Redes
• Dalesa, una caché web peer-to-peer para redes de área
local (basada en multidifusión IP).
10
• VoIP Peering Fabric es un sistema de interconexión
peer-to-peer para el enrutamiento de tráfico de VoIP
entre las organizaciones mediante la utilización de
tecnología BGP y ENUM.
-- Ciencia
• En la bioinformática, la identificación del fármaco
candidato. El primero de este tipo de programa se inició
en el año 2001 en el Centro para el Descubrimiento de
Fármacos Computacionalmente CCDD en la Universidad
de Oxford, en colaboración con la Fundación Nacional
para la Investigación del Cáncer. En la actualidad hay
varios programas similares que se ejecutan en el proyecto
de United Devices Cancer Research.
• El motor de búsqueda ScienceNET P2P.
-- Buscar
• Motor de búsqueda distribuido, un motor de búsqueda
donde no hay servidor central
• YaCy, un motor de búsqueda distribuido, basado en los
principios de las redes peer-to-peer.
• Faroo, un motor de búsqueda web peer-to-peer
-- Redes de comunicaciones
• Skype, una de las aplicaciones del teléfono más
utilizados de Internet usa la tecnología P2P.
• VoIP (a través de protocolos de capa de aplicación,
tales como SIP)
-- La mensajería instantánea y chat en línea
• Redes completamente descentralizadas de peers: Usenet
(1979) y WWIVnet (1987).
-- General
• Investigaciones como el proyecto Chord, la utilidad de
almacenaje PAST, la Grid-P, y el sistema de distribución
de contenido CoopNet.
• JXTA, para aplicaciones con peers. Ejemplo Collanos
Workplace (software para el trabajo en equipo)
• Sixearch
-- Misceláneos
• El Departamento de Defensa de EE.UU. ha iniciado una
investigación en las redes P2P, como parte de su
estrategia de guerra más moderna de la red. En mayo de
2003 el Dr. Tether Director de la Agencia de Defensa
para Proyectos de Investigación Avanzada testificó que
los militares de EE.UU. están utilizando las redes P2P.
• Estudios de Kato et al. indican que más de 200
empresas con aproximadamente 400 millones de dólares
son invertidos en las redes P2P. Además de compartir
archivos, las empresas también están interesadasen la
computación distribuida, distribución de contenido.
-- Comunidad de la red inalámbrica, Netsukuku
• Una generación previa de sistemas peer-to-peer fueron
llamados "metacomputing" o fueron clasificados como
"middleware". Estos incluyen: Legión, Globus
• Bitcoin es una moneda digital basado en peer-to-peer.
Leyes, Condenas y Acciones contra las descargas
ilegales vía P2P
La RIAA, SGAE, MPA y otros no sólo han optado por
llevar a juicio a los creadores de los programas de
intercambio de archivos, sino que también han realizado
algunas acciones en contra de sus usuarios. En
septiembre de 2003, la RIAA demandó a 261 internautas
por copiar música de manera ilegal. Resultó
particularmente polémico que, entre esos 261 internautas,
se encontrara una niña de 12 años, que acabó condenada
a pagar 2000 dólares por compartir cerca de mil
canciones. También ha habido acciones legales en contra
de sitios web que almacenan y permiten buscar elinks,
Torrents, archivos NZB (para grupos de noticias) y otros
links de P2P.
También se ha implementado el uso de servidores
falsificados. Un servidor falso se caracteriza porque en
realidad no está dedicado verdaderamente a actuar como
servidor de la red eDonkey 2000, sino que intenta obtener
información de los clientes que a él se conectan (para
posibles pleitos posteriores) o contaminar la red con
elinks falsos, corruptos, o simplemente llenos de basura.
Como ejemplo cabe destacar los servidores Razorback
11
2.2, 2.3, ... , 2.6, que aparecieron "un buen día" al calor
del éxito de Razorback 2.0 y 2.1.
En el 2006, los servidores verdaderos Razorback 2.0 y
2.1 fueron cerrados por acciones legales de la Motion
Picture Association (MPA). Razorback 2 era el servidor
más importante de la red P2P de eDonkey 2000,
albergaba 3 millones de usuarios diarios, y manejaba más
de 1.3 millones de conexiones simultáneamente,
indexando más de 170 millones de archivos; actualmente
los responsables de Razorback 2 se disponen a reabrir el
servidor. Sin embargo, a pesar del cierre de estos
servidores, sólo se logró que los usuarios se cambiaran a
otros servidores de la red eDonkey 2000, y que se diera a
conocer mucho más la red Kademlia.
El 12 de septiembre de 2006, MetaMachine, la compañía
propietaria de eDonkey, se comprometió con la RIAA a
pagar una multa de US$ 30 millones en un acuerdo
extrajudicial, para evitar posibles demandas de la
industria discográfica; debido a esto, en el sitio web de
eDonkey se colocó un aviso que informa sobre la
ilegalidad de compartir música y vídeos que tengan
copyright. Asimismo, el programa cliente, eDonkey 2000
dejó de funcionar, desplegando este mismo mensaje e
iniciando su desinstalación automáticamente. No
obstante, la red eDonkey 2000 no pudo ser cerrada, y
sigue funcionando hasta la actualidad debido a otros
programas como eMule, MLDonkey, etc.
Amenazas
• Fuga de datos:
Publicación de información o archivos de la empresa de
forma consciente o inconsciente.
• Violación de derechos de propiedad intelectual:
Descarga por parte de los usuarios de contenidos
ilegales/protegidos por derechos de propiedad intelectual.
• Consumo de recursos:
Consumo excesivo de ancho de banda, incluyendo un
consumo de ancho de banda adicional por el servicio
prestado a otros peers en lugar de para usos directamente
relacionados con la actividad del usuario.
• Control de acceso
La naturaleza descentralizada de las tecnologías P2P
hacen que sea difícil prevenir su uso mediante el empleo
de mecanismos tradicionales para el control del acceso a
la red.
• Retención de datos:
Registrar y auditar de forma correcta los datos de las
comunicaciones P2P es una tarea difícil y en muchos
casos imposible.
• Malware:
Los usuarios pueden descargar virus, troyanos u otros
tipos de malware.
• Pérdida de tiempo:
El tiempo que se emplea utilizando las aplicaciones P2P
es tiempo que no se dedica a trabajar.
-- Ataques en las redes P2P
Dado que los sistemas P2P se basan esencialmente en la
dependencia de los peers entre sí, surgen implicaciones
en la seguridad por abusar de la confianza entre peers. En
el modelo tradicional cliente-servidor, los datos internos
no tiene por qué estar expuestos al cliente, pero con P2P,
los datos internos deben ser expuestos a los compañeros
colegas en nombre de la distribución de la carga de
trabajo. Los atacantes pueden aprovechar esto y poner en
peligro las redes P2P.
1 denegación de servicio distribuido
En una red P2P, los atacantes pueden hacer uso de la
naturaleza de consulta de las redes P2P para sobrecargar
la red. En el caso de consultas que inunden la red P2P, el
ataque es directo:
Sólo tiene que enviar una gran cantidad de solicitudes a
los peers, y la trasmisión resultante hará porciones de la
red inoperable.
Más recientemente, los ataques pueden aprovechar la red
P2P como un agente para atacar a otro objetivo, como
por ejemplo un sitio web. Esencialmente, los peers en la
red se subvierten para solicitar los archivos de un
objetivo, aplastando a la víctima con el uso de un
exagerado ancho de banda.
2 Envenenando la Red
Otro enfoque para atacar a una red P2P es la inyección de
datos inútiles (veneno) en el sistema. Dado que las redes
P2P deben implementar un servicio de búsqueda de
alguna manera, ya se trate de un directorio centralizado o
un DHT, un atacante puede inyectar grandes cantidades
de búsqueda inútiles de pares clave-valor en el índice.
Artículos falsos en el índice podría ralentizar los tiempos
de consulta o, peor aún, dar resultados no válidos.
3 Privacidad y la identidad
Las redes P2P también presentan problemas de
privacidad y la identidad. En lo que respecta a la
12
privacidad, el flujo de datos de un peer puede verse
comprometido por peers compañeros que colaboran en la
transmisión de los datos. Un ejemplo es el de las
aplicaciones de VoIP, como Skype, que enruta el tráfico
de un modo P2P. Aunque el flujo de datos esta cifrado,
un peer que lleve el flujo tiene ahora acceso directo a los
paquetes de datos, lo cual no sería posible en el caso del
enrutamiento tradicional. Por otra parte, el esquema de
cifrado de Skype es propietario, por lo que no puede
haber ninguna comprobación de que el método es
completamente seguro. Además, inherente a la naturaleza
de las aplicaciones P2P es el libre intercambio de
archivos privados. En un sondeo a los usuarios, una
minoría muy pequeña en realidad eran conscientes de los
archivos específicos que el usuario estaba compartiendo.
En otro estudio sobre la red Kazaa, se encontró que
muchos peers sin saberlo compartían su correo
electrónico, financieros y datos de la web de caché.
Debido a la facilidad de uso de las aplicaciones típicas de
intercambio de archivos, muchos usuarios no pueden ser
lo suficientemente astuto para darse cuenta de las
implicaciones de privacidad de la utilización de una
aplicación P2P, haciendo el trabajo del atacante muy
sencillo.
En las redes P2P, que distribuyen los recursos de dudosa
legalidad, el problema de la falta de anonimato se hace
evidente. Por ejemplo, el sistema de intercambio de
archivo de BitTorrent expone directamente la dirección
IP de los peers entre sí en un enjambre. Esto permitiría a
los peers en el enjambre, conocer la identidad de otros
peers que se descargan ciertos recursos, por ejemplo. Una
vez que la identidad de los peers se ve comprometida,
más ataques, ya sean físicos o judiciales, puede seguir
siendo dirigida a ese objetivo específico.
4 Justicia en el Intercambio
Dado que las redes P2P dependen de la cooperación de
sus peers, uno asume que todos los peers a deberían
contribuir al proceso de distribución de recursos. Sin
embargo, puesto que no hay autoridad en el sistema, no
hay ningún administrador real, los peers son a libres de
vivir a costa de otros peers. En la comunidad de
intercambio de archivos, esto se suele llamar leeching y
está mal visto y considerado, hacer trampa. Aunque es
extremadamente frecuente en redes P2P más antiguas,
como el IRC (Internet Relay Chat), hacer leeching se ha
mitigado en las nuevas aplicaciones P2P. Por ejemplo, en
BitTorrent, se aplica un sistema para reducir el ancho de
banda a los peers que no suban una cantidad justa. Por lo
tanto, los leechers son permitidos a hacerlo, durante un
corto periodo de tiempo antes que otros peers sepan de su
presencia y, posteriormente, se nieguen a cooperar con él,
compartiendo con él en una tasa cada vez más lenta.
5 El bloqueo de tráfico P2P
Una cuestión importante que se cierne sobre las redes
P2P es el bloqueo y el embotellamiento del tráfico P2P.
De acuerdo con un estudio de Internet en 2007, el 69%
del tráfico de Internet en Alemania es P2P, por HTTP un
10%. Dentro del tráfico P2P, BitTorrent acumula un
67%, siendo la más alta, y la siguiente eDonkey con un
29%. Teniendo en cuenta la proporción asombrosa del
tráfico de Internet acumulado por las aplicaciones P2P,
especialmente BitTorrent, no es de extrañar que los ISPs
estén empezando a bloquear los puertos en los cuales las
aplicaciones más populares se ejecutan. Por ejemplo,
Comcast ha comenzado recientemente a regular y
eliminar los paquetes del tráfico de BitTorrent,
bloqueando efectivamente que sus clientes ejecute el
software. Yendo aún más lejos, la Universidad de Ohio
ha comenzado recientemente a bloquear todo el tráfico
P2P en su campus.
Si bien las cuestiones de seguridad con los P2P se están
convirtiendo cada vez más incontrolables, los esfuerzos
recientes han tratado de anular algunos de los de las
vulnerabilidades de seguridad de las redes P2P.
Clasificación
Una posible clasificación de las redes P2P pudiera ser
acorde a su grado de centralización:
Las tres topologías de red según los famosos grafos de
Paul Baran que aplican también al diseño P2P.
1 Redes P2P centralizadas
Este tipo de red P2P se basa en una arquitectura
monolítica en la que todas las transacciones se hacen a
través de un único servidor que sirve de punto de enlace
entre dos nodos y que, a la vez, almacena y distribuye los
nodos donde se almacenan los contenidos.
Poseen una administración muy dinámica y una
disposición más permanente de contenido. Sin embargo,
está muy limitada en la privacidad de los usuarios y en la
falta de escalabilidad de un sólo servidor, además de
ofrecer problemas en puntos únicos de fallo, situaciones
legales y enormes costos en el mantenimiento, así como
el consumo de ancho de banda.
13
Una red de este tipo reúne las siguientes características:
Se rige bajo un único servidor, que sirve como punto de
enlace entre nodos y como servidor de acceso al
contenido, el cual distribuye a petición de los nodos.
Todas las comunicaciones (como las peticiones y
encaminamientos entre nodos) dependen exclusivamente
de la existencia del servidor.
Algunos ejemplos de este tipo de redes son Napster y
Audiogalaxy.
2 Redes P2P híbridas, semicentralizadas o mixtas
En este tipo de red, se puede observar la interacción entre
un servidor central que sirve como hub y administra los
recursos de banda ancha, enrutamientos y comunicación
entre nodos pero sin saber la identidad de cada nodo y sin
almacenar información alguna, por lo que el servidor no
comparte archivos de ningún tipo a ningún nodo. Tiene la
peculiaridad de funcionar (en algunos casos como en
Torrent) de ambas maneras, es decir, puede incorporar
más de un servidor que gestione los recursos
compartidos, pero también, en caso de que el servidor o
los servidores que gestionan todo caigan, el grupo de
nodos puede seguir en contacto a través de una conexión
directa entre ellos mismos, con lo que es posible seguir
compartiendo y descargando más información en
ausencia de los servidores. Este tipo de P2P presenta las
siguientes características:
Tiene un servidor central que guarda información en
espera y responde a peticiones para esa información.
Los nodos son responsables de hospedar la información
(pues el servidor central no almacena la información) que
permite al servidor central reconocer los recursos que se
desean compartir, y para poder descargar esos recursos
compartidos a los usuarios que lo solicitan.
Las terminales de enrutamiento son direcciones usadas
por el servidor, que son administradas por un sistema de
índices para obtener una dirección absoluta.
Algunos ejemplos de una red P2P híbrida son BitTorrent,
eDonkey y Direct Connect.
3 Red P2P pura o totalmente descentralizada
Las redes P2P de este tipo son las más comunes, siendo
las más versátiles al no requerir de una gestión central de
ningún tipo, lo que permite una reducción de la necesidad
de usar un servidor central, por lo que se opta por los
mismos usuarios como nodos de esas conexiones y
también como almacenadores de esa información. En
otras palabras, todas las comunicaciones son
directamente de usuario a usuario con ayuda de un nodo
(que es otro usuario) quien permite enlazar esas
comunicaciones. Las redes de este tipo tienen las
siguientes características:
• Los nodos actúan como cliente y como servidor.
• No existe un servidor central que maneje las conexiones
de red.
• No hay un enrutador central que sirva como nodo y
administre direcciones.
Algunos ejemplos de una red P2P pura son: Kademlia,
Ares Galaxy, Gnutella, Freenet y Gnutella2.
3 Redes P2P estructuradas y no estructuradas
La red de superposición del P2P consiste en todos los
usuarios que participan como nodos de red. Hay enlaces
entre dos nodos cualesquiera que se conozcan: es decir, si
un usuario participante conoce la localización de otro
usuario en la red del P2P, entonces hay un borde dirigido
del nodo anterior al último nodo en la red de
superposición. Basándonos en cómo los nodos en la red
de superposición se enlazan el uno al otro, podemos
clasificar las redes del P2P como no estructuradas o
estructuradas.
Se forma una red P2P no estructurada cuando los enlaces
de la superposición se establecen arbitrariamente. 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.
En una red P2P no estructurada, si un usuario desea
encontrar información específica en la red, la petición
tiene que recorrer toda la red para encontrar tantos
usuarios como sea posible, para conseguir a alguien que
comparta los datos. La desventaja principal con estas
redes es que las peticiones no siempre podrán resolverse.
Es muy probable que un contenido popular esté
disponible para varios usuarios, y es muy probable que
cualquier usuario que lo busque lo encuentre; sin
embargo, si un usuario está buscando datos no muy
populares que comparten sólo unos cuantos usuarios, será
altamente probable que la búsqueda no dé los resultados
esperados. Dado que no hay correlación entre un usuario
y el contenido que comparte, entonces no hay garantía de
14
que el usuario encuentre al que tiene la información
deseada.
El flooding también incrementa el tráfico en la red y, por
lo tanto, estas redes suelen tener una eficacia muy baja en
los resultados de búsqueda. La mayor parte de las redes
populares P2P (Napster, Gnutella y Kazaa) son redes P2P
sin estructura.
Las redes P2P estructuradas superan las limitaciones de
las redes no estructuradas, mantienen una tabla de hash
distribuida (DHT) y permiten que cada usuario sea
responsable de una parte específica del contenido en la
red. Estas redes utilizan funciones de hash distribuido y
asignan valores a cada contenido y a cada usuario en la
red. Después siguen un protocolo global en la
determinación de qué usuario es responsable de qué
contenido. De esta manera, siempre que un usuario desee
buscar ciertos datos, utilizará el protocolo global para
determinar al usuario o usuarios que lo tiene(n) y después
dirigirá la búsqueda hacia éstos. Algunas redes P2P
estructuradas son:
Chord
Pastry P2P Network
Tapestry P2P Network
Content Addressable Network
Tulip Overlay
4 Otras categorías con base en la red P2P
Algunos prefieren clasificar las redes P2P según su
estructuración:
• Redes P2P estructuradas, como CAN.
• Redes P2P sin estructura, como Gnutella.
También se podría clasificar las redes P2P según su
generación:
• Primera generación de P2P: son literalmente las
primeras redes P2P, que eran centralizadas.
• Segunda generación de P2P: en esta generación se
implementó por primera vez la característica de la
descentralización, y esta característica es la más frecuente
en los actuales P2P.
• Tercera generación de P2P: los más recientes, que
implementan una comunicación no directa, cifrada y
anónima.
Existe también la posibilidad de clasificar las redes P2P
según sus características de anonimidad o exclusividad:
• Sin características de anonimidad
• Pseudónimo
• Red P2P Privada
• Friend-to-friend (de amigo-a-amigo)
Una reciente generación de sistemas peer-to-peer son los
llamados metacomputing o se clasifican como
middleware. Por ejemplo, Legión y Globus.
Arquitectura de los sistemas P2P
Los sistemas peer-to-peer suelen implementar una red
superpuesta abstracta, construido a nivel de la capa de
Aplicación, en la parte superior de la topología de red
nativa o física. Tales superposiciones son usadas para la
indexación y el descubrimiento de peers y hacer que el
sistema P2P independiente de la topología de red física.
El contenido se suele intercambiar directamente sobre el
Protocolo Internet subyacente (IP). Sistemas peer-to-peer
anónimo son una excepción, y aplican capas adicionales
de enrutamiento para ocultar la identidad de la fuente o el
destino de las consultas.
En sistemas estructurados peer-to-peer, los peers (y, a
veces, los recursos) se organizan según criterios y
algoritmos específicos, que conducen a superposiciones
con propiedades y topologías específicas. Se suelen
utilizar indexación de hash distribuido basado en tablas
(DHT), como en el sistema Chord (MIT).
En peer-to-peer no estructurados no se impone ninguna
estructura en las redes superpuestas. Los peers en estas
redes se conectan en forma ad hoc. Lo ideal sería que los
sistemas P2P no estructurados no tuviesen absolutamente
ningún sistema centralizado, pero en la práctica existen
varios tipos de sistemas no estructurados con diferentes
grados de centralización. Se pueden ver tres categorías.
En peer-to-peer puros toda la red se compone
exclusivamente de peers equivalentes. Sólo hay una capa
de enrutamiento, ya que no existen nodos preferidos con
alguna función especial para la infraestructura.
Los sistemas híbridos peer-to-peer permiten que tales
nodos de infraestructura existan, a menudo llamados
supernodos.
En sistemas centralizados peer-to-peer, un servidor
central se utiliza para las funciones de indexación y para
arrancar el sistema. Aunque esto tiene similitudes con
15
una arquitectura estructurada, las conexiones entre peers
no están determinadas por un algoritmo.
El primer sistema prominente y popular para el
intercambio de archivos, Napster, fue un ejemplo del
modelo centralizado. Freenet y las primeras
implementaciones del protocolo Gnutella, por el
contrario, son ejemplos del modelo descentralizado. Las
implementaciones modernas Gnutella, Gnutella2, así
como la ahora en desuso de la red Kazaa son ejemplos
del modelo híbrido.
Una red P2P pura no tiene noción de los clientes o
servidores, sino, sólo nodos iguales que ambos
simultáneamente funcionan como "clientes" y
"servidores" a los demás nodos de la red. Este modelo de
configuración de red difiere del modelo cliente-servidor,
donde la comunicación es por lo general desde y hacia un
servidor central. Un ejemplo típico de una transferencia
de archivos que no utiliza el modelo P2P es el File
Transfer Protocol (FTP) en el que los programas del
cliente y el servidor son distintos: los clientes inician la
transferencia, y los servidores de satisfacen las
peticiones.
La red superpuesta en P2P, consiste en todos los peers
que participan como nodos de la red. Hay enlaces entre
cualquier par de nodos que se conocen entre sí: es decir,
si un peer participante conoce la ubicación de otro peer
en la red P2P, entonces hay una arista dirigida desde el
primer nodo hasta el segundo en la red superpuesta. De
acuerdo a como los nodos de la red superpuesta están
vinculados el uno al otro, podemos clasificar las redes
P2P como no estructuradas o estructuradas.
1 Los sistemas estructurados
Las redes P2P estructuradas utilizan un protocolo
consistente global para asegurar que cualquier nodo de
manera eficiente puede enrutar la búsqueda a un peer que
tiene el archivo deseado, incluso si el archivo es
extremadamente raro. Esta garantía requiere un modelo
más estructurado de los enlaces de superposición. Por
mucho, el tipo más común de las redes P2P estructuradas
es la tabla distribuida de hash (DHT), en el cual se utiliza
una variante de hashing consistente para asignar la
pertenencia de cada archivo a un peer en particular, de
una manera análoga a la asignación de una tabla
tradicional de hash de cada clave a un array en particular
de una ranura. Aunque el término DHT se usa
comúnmente para referirse a la estructura superpuesta, en
la práctica, la DHT es una estructura de datos
implementada en la parte superior de una estructura
superpuesta.
-- Tablas de hash distribuidas
Las tablas de hash distribuidas (DHTs) son una clase de
sistemas distribuidos descentralizados que proporcionan
un servicio de búsqueda similar a una tabla hash: se
almacenan pares (clave, valor) en la DHT, y cualquier
nodo participante puede de manera eficiente devolver el
valor asociado a una determinada clave. La
responsabilidad de mantener el mapeo de las claves a sus
valores se distribuye entre los nodos, de tal manera que
un cambio en el conjunto de los participantes causa una
cantidad mínima de interrupción. Esto permite a las
DHTs escalar a un número extremadamente grande de
nodos y de manejar la entrada continua de nodos, los
despachados, y las fallas.
Las DHTs forman una infraestructura que puede ser
usado para construir peer-to-peer. Redes distribuidas
notables que utilizan DHTs pueden ser seguimiento de
distribución de BitTorrent, la red Kad, el botnet Storm,
YaCy, y la Red de Distribución de Contenido de Coral
(Coral Content Distribution Network).
Algunos proyectos de investigación destacados incluyen
el proyecto Chord, la utilidad de almacenaje en PAST, la
P-Grid, una red superpuesta auto-organizada y emergente
y el sistema de distribución contenido CoopNet).
Las DHT a base de redes han sido ampliamente utilizadas
para llevar a cabo el descubrimiento eficiente de recursos
para los sistemas de cómputo en grid, ya que ayuda en la
gestión de recursos y la sincronización de aplicaciones.
Los avances recientes en el ámbito de descubrimiento de
recursos descentralizados se han basado en la ampliación
de las existentes DHTs con la capacidad de la
organización de datos multi-dimensionales y de los
enrutamiento de consultas. La mayoría de los esfuerzos
han analizado los índices de incorporación de bases de
datos espaciales, tales como las Curvas de Llenado del
Espacio (SFC), incluyendo las curvas de Hilbert, curvas-
Z, árboles k-d, árboles MX-CIF Quad y arboles-R* para
la gestión, enrutamiento, y la indexación de complejos
Grids de objetos de consulta de recursos a través de redes
de DHT. Los índices espaciales son adecuados para el
manejo de la complejidad de Grids de objetos de
consultas de recursos. Aunque algunos índices espaciales
pueden tener problemas en lo que respecta a la ruta de
16
equilibrio de carga en el caso de un conjunto de datos
sesgados establecidos, todos los índices espaciales son
más escalables en términos del número de saltos
recorridos y los mensajes generados durante la búsqueda
y el enrutamiento de consultas de recursos del Grid. Una
evaluación más reciente de las soluciones P2P para el
descubrimiento de recursos en cargas de trabajo reales,
han señalado varias cuestiones en las soluciones basadas
en tales como los altos costos de la
publicidad/descubrimiento de recursos y el desequilibrio
de carga estática y dinámica.
2 Los sistemas no estructurados
Una red P2P no estructurada se forma cuando los enlaces
de superposición son establecidos arbitrariamente. Estas
redes pueden ser fácilmente construidas como un nuevo
peer que quiere unirse a la red, puede copiar enlaces
existentes de otro nodo y después formar sus propios
vínculos con el tiempo. En una red P2P no estructurada,
si un compañero quiere encontrar un segmento deseado
de datos en la red, la consulta tiene que ser suministrada a
través de la red para encontrar a cuantos peers sea
posible, que compartan esos datos. La desventaja
principal con tales redes es que las consultas no siempre
pueden ser resueltas. El contenido popular es probable
que esté disponible en varios peers y si algún de esos
peer lo busca es probable que encuentre el mismo
contenido. Pero si un peer está buscando datos poco
conocidos compartidos por sólo unos pocos peers,
entonces es muy poco probable que la búsqueda tenga
éxito. Dado que no existe correlación entre un peer y el
contenido administrado por éste, no hay garantía de que
la consulta encuentre un peer que tenga los datos
deseados. La consulta también causa una alta cantidad de
señalización de tráfico en la red y por lo tanto tales redes
tienen típicamente una pobre eficiencia de búsqueda.
Muchas de las redes P2P populares son no estructuradas
En las redes P2P puras: los peers actúan como iguales, es
decir como la fusión de los roles de cliente y servidor. En
este tipo de redes, no hay un servidor central de gestión
de la red, ni hay un router central. Algunos ejemplos de
redes Aplicaciones de Capas en P2P diseñadas para
compartir archivos peer-to-peer son Gnutella (antes de la
versión 0.4) y Freenet.
También existen híbridos de sistemas P2P, que
distribuyen a sus clientes en dos grupos: los nodos cliente
y nodos de superposición. Por lo general, cada cliente es
capaz de actuar de acuerdo a la necesidad momentánea
de la red y puede llegar a ser parte de la respectiva red
superpuesta usada para coordinar la estructura P2P. Esta
división entre lo normal y los nodos "mejores" se realiza
con el fin de abordar los problemas de escalabilidad en
las primeras redes P2P puras. Como ejemplos de este tipo
de redes se pueden nombrar las implementaciones
modernas de Gnutella (después de la versión 0.4) y
Gnutella2.
Otro tipo de red P2P híbrida son las redes que utilizan de
un lado servidor(es) central(es) o mecanismos
bootstrapping, y por el otro lado P2P para las
transferencias de sus datos. Estas redes son, en general,
llamado 'redes centralizadas' debido a su falta de
capacidad para trabajar sin su servidor(es) central(es). Un
ejemplo de este tipo de red es la red eDonkey (a menudo
también se llama eD2k).
Las redes peer-to-peer mas antiguas duplican los recursos
a través de cada nodo de la red, configurado para llevar
ese tipo de información. Esto permite la búsqueda local,
pero requiere de mucho tráfico.
Las redes modernas utilizan servidores centrales
coordinadores y solicitudes de búsqueda dirigidas. Los
servidores centrales se utilizan normalmente para la
inclusión de peers potenciales (Tor), coordinar sus
actividades (Folding@home), y búsqueda (Napster,
Emule). La búsqueda descentralizada se realizó por
primera vez al suministrar solicitudes de búsqueda a
través de sus peers. Estrategias de búsqueda dirigidas
más eficientes, incluyendo supernodos y tablas de hash
distribuidas, ahora se utilizan.
P2P en el futuro
A medida que la tecnología P2P se vuelve más madura,
sus futuras infraestructuras mejoraran. Habrá una mayor
interoperabilidad, más conexiones con el mundo (a través
de Internet), y software y hardware más robusto. Sin
embargo, algunos problemas inherentes permanecerán.
La P2P seguirá siendo un enfoque importante por las
siguientes razones:
• Escalabilidad siempre será un problema en ciertos
niveles (Redes, Sistemas y Aplicaciones), especialmente
con conectividad global, inalámbrica gran parte de ella.
Será difícil de predecir y garantizar todos los acuerdos de
nivel de servicio. La P2P puede contribuir a cada área.
17
• Ciertas partes del mundo no serán cubiertas para ofrecer
(suficiente) conectividad, lo que requiere de ad hoc, que
se formen grupos descentralizados. La P2P es una
alternativa muy apropiada cuando existe una falta de
infraestructura.
• Ciertas configuraciones de sistemas y aplicaciones sí
serán inherentemente P2P y se prestarán para soluciones
con la P2P.
-- Futuros Proyectos
• Los algoritmos de P2P probablemente tengan la mayor
posibilidad de hacer impacto. Mientras el mundo se
vuelve cada vez más descentralizado y conectado, habrá
una creciente necesidad de algoritmos de P2P para
superar los problemas de escalabilidad, anonimato y
conectividad.
• Las aplicaciones P2P son las siguientes más probables
de tener éxito en el futuro. Ejemplos como Napster son
una convincente prueba de esta posibilidad.
• Las plataformas P2P son el tercer escenario posible para
P2P. Plataformas como JXTA pueden llegar a ser
ampliamente adoptadas, en caso que muchos otros
sistemas P2P también puedan ganar una amplia
adopción.
Conclusión
La P2P es una tecnología importante que ya encontró su
camino en los productos existentes y la investigación de
proyectos. Se mantendrá como una solución importante
para ciertos problemas inherentes en los sistemas
distribuidos. La P2P no es una solución a todos los
problemas en el futuro de la computación. Alternativas a
la P2P son las tecnologías tradicionales, tales como
sistemas centralizados y el modelo cliente-servidor. Los
sistemas y las aplicaciones no necesariamente tiene que
ser monolíticos, ellos puedan entrar en los distinto
niveles de paradigmas centralizado/cliente-servidor/P2P.
La P2P seguirá siendo una alternativa sólida para la
escalabilidad, el anonimato y los requisitos de fallos.
Algoritmos, aplicaciones y las plataformas P2P tienen
una oportunidad para ser ampliamente desplegadas en el
futuro. Desde la perspectiva del mercado, el costo de
adquisición puede ser el factor determinante para el P2P.
La fuerte presencia de productos P2P indica que P2P no
es sólo una tecnología de investigación interesante, pero
también un producto base prometedor.
Top Related