Estado del arte de las redes peer to peer (P2P) Luis J...

17
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 [email protected] 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)

Transcript of Estado del arte de las redes peer to peer (P2P) Luis J...

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

[email protected]

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.