Páginas

17 octubre 2007

¿Qué son las redes P2P (Peer to Peer)?


A grandes rasgos, una red informática entre iguales (en inglés peer-to-peer -que se traduciría de par a par- o de punto a punto, y más conocida como P2P) se refiere a una red que no tiene clientes ni servidores fijos, sino una serie de nodos que se comportan simultáneamente como clientes y como servidores de los demás nodos de la red. Este modelo de red contrasta con el modelo cliente-servidor el cual se rige de una arquitectura monolítica donde no hay distribución de tareas entre sí, solo una simple comunicación entre un usuario y una terminal en donde el cliente y el servidor no pueden cambiar de roles.

Las redes de ordenadores Peer-to-peer (o "P2P") son redes que aprovechan, administran y optimizan el uso de banda ancha que acumulan de los demás usuarios en una red por medio de la conectividad entre los mismos usuarios participantes de la red, obteniendo como resultado, mucho más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales donde una cantidad relativamente pequeña de servidores provee el total de banda ancha y recursos compartidos para un servicio o aplicación. Típicamente estas redes se conectan en gran parte con otros nodos vía "ad hoc".

Dichas redes son útiles para muchos propósitos (ver Aplicaciones de las redes P2P),pero se usan muy a menudo para compartir toda clase de archivos que contienen: audio, video, texto, software y datos en cualquier formato digital. Este tipo de red es también comúnmente usado en telefonía VoIP para hacer más eficiente la transmisión de datos en tiempo real así como lograr una mejor distribución del tráfico de la telefonía utilizando tecnología P2P.

Cualquier nodo puede iniciar, detener o completar una transacción compatible. La eficacia de los nodos en el enlace y transmisión de datos puede variar según su configuración local (cortafuegos, NAT, ruteadores, etc.), velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de almacenamiento en disco.

La primera aplicación P2P (Peer-to-peer, o entre pares) fue Hotline Connect, desarrollada en 1996 para el sistema operativo Mac OS por el joven programador australiano Adam Hinkley. Hotline Connect, distribuido por Hotline Communications, pretendía ser una plataforma de distribución de archivos destinada a empresas y universidades, pero no tardó en servir de intercambio de archivos de casi todo tipo de archivos, especialmente de contenido ilegal y muchos de contenido pornográfico. Sin embargo, también se podían compartir archivos de contenido libre de distribución.

El P2P se basa principalmente en la filosofía e ideales de que todos los usuarios deben compartir. Conocida como filosofía P2P, es aplicada en algunas redes en forma de un sistema enteramente meritocrático en donde "el que más comparta, más privilegios tiene y más acceso dispone de manera más rápida a más contenido". Con este sistema se pretende asegurar la disponibilidad del contenido compartido, ya que de lo contrario no sería posible la subsistencia de la red.

Aquellos usuarios que no comparten contenido en el sistema y con ello no siguen la filosofía propia de esta red, se les denomina "leechers"; los cuales muchas veces representan una amenaza para la disponibilidad de recursos en una red P2P debido a que únicamente consumen recursos sin reponer lo que consumen, por ende podrían agotar los recursos compartidos y atentar contra la estabilidad de la misma.
seis características deseables de las redes P2P:

1. Escalabilidad. Las redes P2P tienen un alcance mundial con cientos de millones de usuarios potenciales. En general, lo deseable es que cuantos más nodos estén conectados a una red P2P mejor será su funcionamiento. Así, cuando los nodos llegan y comparten sus propios recursos, los recursos totales del sistema aumentan. Esto es diferente en una arquitectura del servidor-cliente con un sistema fijo de servidores, en los cuales la adición de más clientes podría significar una transferencia de datos más lenta para todos los usuarios. Algunos autores advierten de que si proliferan mucho este tipo de redes, Cliente-Servidor, podrían llegar a su fin, ya que a cada una de estas redes se conectarán muy pocos usuarios.
2. Robustez. La naturaleza distribuida de las redes peer-to-peer también incrementa la robustez en caso de haber fallos en la réplica excesiva de los datos hacia múltiples destinos, y —-en sistemas P2P puros—- permitiendo a los peers encontrar la información sin hacer peticiones a ningún servidor centralizado de indexado. En el último caso, no hay ningún punto singular de falla en el sistema.
3. Descentralización. Estas redes por definición son descentralizadas y todos los nodos son iguales. No existen nodos con funciones especiales, y por tanto ningún nodo es imprescindible para el funcionamiento de la red. En realidad, algunas redes comúnmente llamadas P2P no cumplen esta característica, como Napster, eDonkey2000 o BitTorrent.
4. Los costes están repartidos entre los usuarios. Se comparten o donan recursos a cambio de recursos. Según la aplicación de la red, los recursos pueden ser archivos, ancho de banda, ciclos de proceso o almacenamiento de disco.
5. Anonimato. Es deseable que en estas redes quede anónimo el autor de un contenido, el editor, el lector, el servidor que lo alberga y la petición para encontrarlo siempre que así lo necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de autor son incompatibles entre sí, y la industria propone mecanismos como el DRM para limitar ambos.
6. Seguridad. Es una de las características deseables de las redes P2P menos implementada. Los objetivos de un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones entre nodos, creación de grupos seguros de nodos dentro de la red, protección de los recursos de la red... En su mayoría aún están bajo investigación, pero los mecanismos más prometedores son: cifrado multiclave, cajas de arena, gestión de derechos de autor (la industria define qué puede hacer el usuario, por ejemplo la segunda vez que se oye la canción se apaga), reputación (sólo permitir acceso a los conocidos), comunicaciones seguras, comentarios sobre los ficheros...

En la actual Internet, el ancho de banda o las capacidades de almacenamiento y cómputo son recursos caros. En aquellas aplicaciones y servicios que requieran una enorme cantidad de recursos pueden utilizarse las redes P2P.

Algunos ejemplos de aplicación de las redes P2P:

* Intercambio y búsqueda de ficheros. Quizás sea la aplicación más extendida de este tipo de redes. Algunos ejemplos son BitTorrent o la red eDonkey2000.
* Sistemas de ficheros distribuidos, como CFS o Freenet.
* Sistemas de telefonía por Internet, como Skype.
* A partir del año 2006 cada vez más compañías europeas y americanas, como Warner Bros o la BBC, empezaron a ver el P2P como una alternativa a la distribución convencional de películas y programas de televisión, ofreciendo parte de sus contenidos a través de tecnologías como la de BitTorrent .
* Cálculos científicos que procesen enormes bases de datos, como los bioinformáticos.

Las redes P2P pueden ser también usadas para hacer funcionar grandes sistemas software diseñados para realizar pruebas que identifiquen la presencia de posibles drogas. El primer sistema diseñado con tal propósito fue desarrollado en 2001, en el Centro Computacional para el Descubrimiento de Drogas (Centre for Computational Drug Discovery) en la prestigiosa Universidad de Oxford con la cooperación de la Fundación Nacional para la Investigación del Cáncer (National Foundation for Cancer Research) de Estados Unidos.

Actualmente, existen varios sistemas software similares que se desarrollan bajo el auspicio de proyectos como el proyecto de Dispositivos Unidos en la Investigación del cáncer (United Devices Cancer Research Project). En una escala más pequeña, existen sistemas de administración autónoma para los biólogos computacionales, como el Chinook, que se unen para ejecutar y hacer comparaciones de datos bioinformáticos con los más de 25 diferentes servicios de análisis que ofrece. Uno de sus propósitos, consiste en facilitar el intercambio de técnicas de análisis dentro de una comunidad local.

Las instituciones académicas también han comenzado la experimentación con compartición de archivos, como es el caso de LionShare.

La mayor parte de los nodos de Internet no disponen de una dirección IP fija o incluso accesible para otros nodos de Internet. Este es el caso, por ejemplo, de los nodos que se conectan a través de redes locales como Wifi o Ethernet, de los que tienen algún tipo de Cortafuegos y NAT y de los que se conectan a través de la mayor parte de los ISPs del mundo. Para el correcto funcionamiento de una red P2P hay que resolver dos problemas fundamentales: cómo se encuentra un nodo que ya esté conectado a la red P2P, y cómo se conectan los nodos sin dirección IP pública entre ellos.

Para resolver el primer problema la solución habitual es realizar una conexión a un servidor (o servidores) inicial con dirección bien conocida (normalmente IP fija) que el programa P2P tiene almacenada. Este servidor inicial se encarga de mantener una lista con las direcciones de otros nodos que están actualmente conectados a la red. Tras esto, los clientes ya tienen información suficiente para entrar en la red y pueden intercambiar información con otro nodos ya sin intervención de los servidores iniciales.

Para resolver el problema de conexión cuando los nodos no tienen dirección pública, estos se conectan a través de otro nodo que funciona como proxy de la conexión. Los dos nodos se conectan al proxy, y éste envía la información que llega de uno al otro. Cualquier nodo con una dirección IP pública puede ser escogido como proxy de una conexión entre dos nodos. Por ejemplo, en la red Skype a través de nuestro ordenador pueden pasar conversaciones de otras personas. En estos casos, es imprescindible la implementación de algún mecanismo de seguridad para evitar que los proxies pueden llegar a entender la comunicación entre los dos nodos.

Una posible clasificación de las redes P2P pudiera ser acorde a su grado de centralización:

Redes P2P centralizadas
Este tipo de red P2P se basa en una arquitectura monolítica donde 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.

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.

Redes P2P "puras" o totalmente descentralizadas

Las redes P2P de este tipo son las más comunes, siendo las mas versátiles al no requerir de un gestionamiento 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 almacenistas 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 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 , Ares Galaxy, Gnutella, Freenet y Gnutella2.

Redes P2P híbridas, semi-centralizadas 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 o los servidores que gestionan todo caigan, el grupo de nodos sigue 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 sigue 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 peers 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, eDonkey2000 y Direct Connect

Otras categorías en base a la red P2P

Algunos prefieren clasificar las redes P2P en base a su estructuración, clasificando las redes en:

* Redes P2P estructuradas como CAN
* Redes P2P sin estructura como Gnutella

También se podría clasificar las redes P2P de acuerdo a su generación y estas son:

* Primera Generación de P2P: Son literalmente las primeras redes P2P las cuales eran centralizadas
* Segunda Generación de P2P: En esta generación se implementa por primera vez la característica de la descentralización, siendo esta característica la mas común en los actuales P2P
* Tercera Generación de P2P: Son aquellos P2P de generación mas reciente, que implementan una comunicación no directa, cifrada y anónima

Existe también la posibilidad de clasificar las redes P2P concorde a sus características de anonimidad o exclusividad como:

* Sin características de anonimidad
* Pseudonimo
* Red P2P Privada
* Friend-to-friend (de amigo-a-amigo)

Redes P2P sin estructura vs. Redes P2P estructuradas

La red de sobrecapa del P2P consiste en todos los peer que participan como nodos de red. Hay enlaces entre dos nodos cualesquiera que se conozcan: es decir si un peer participante conoce la localización de otro peer en la red del P2P, entonces hay un borde dirigido del nodo anterior al último nodo en la red de sobrecapa. En base a cómo los nodos en la red de sobrecapa se enlazan el uno al otro, podemos clasificar las redes del P2P como no estructuradas o estructuradas.

Una red P2P no estructurada se forma cuando los enlaces de la sobrecapa se establecen arbitrariamente. Tales redes pueden ser construidas tan fácilmente como un peer que desea unirse a la red puede copiar enlaces existentes de otro nodo y después formar sus propios enlaces en un cierto plazo.

En una red P2P no estructurada, si un peer desea encontrar un pedazo deseado de datos en la red, la petición tiene que recorrer toda la red para encontrar tantos peers como sea posible, para conseguir a alguien que comparta los datos. La desventaja principal con estas redes es que las peticiones no pueden ser resueltas siempre.

Un contenido popular es muy probable estar disponible en varios peers y cualquier peer que busca ese contenido popular, es muy probable que encontrase lo mismo pero, si un peer está buscando datos raros o no-tan-populares compartidos por solamente algunos otros peers, después es altamente probable que la búsqueda no sea acertada. Puesto que no hay correlación entre un peer y el contenido compartido por él, no hay garantía que la petición encontrará al peer que tiene los datos deseados.

El flooding también causa una alta cantidad de señalar tráfico en la red y por lo tanto tales redes tienen típicamente una eficacia muy pobre en los resultados de búsqueda. La mayoría de las redes populares P2P tales como Napster, Gnutella y KaZaA son redes P2P sin estructura.

Las redes P2P estructuradas superan las limitaciones de redes no estructuradas manteniendo una tabla de hash distribuida(DHT) y permitiendo que cada peer 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 peer en la red. Después siguen un protocolo global en la determinación de qué peer es responsable de qué contenido. Esta manera, siempre que un peer desee buscar ciertos datos, utiliza el protocolo global para determinar el(los) peer(s) responsable(s) de los datos y después dirige la búsqueda hacia el(los) peer(s) responsable(s). Algunas redes P2P estructuradas son:

* Chord
* Pastry P2P Network
* Tapestry P2P Network
* Content Addressable Network
* Tulip Overlay

Controversia legal

Buena parte de los archivos compartidos y que se pueden descargar en estas redes son archivos de música (mp3) y vídeo (DivX). Esto ha llevado a muchos observadores, entre ellos la mayor parte de las empresas discográficas y distribuidoras y algunos defensores del sistema P2P, a concluir que estas redes suponen una gran amenaza a los modelos empresariales ya establecidos.

Debe tenerse en cuenta sin embargo que también se intercambia gran cantidad de contenidos no sujetos a derechos de autor, así como obras cuyos autores no han prohibido dichos intercambios (por ejemplo, distribuciones Linux sujetas a la licencia GPL). Además, debe tenerse en cuenta que existen aplicaciones específicas de redes P2P directamente orientadas al intercambio de este tipo de contenidos y obras, como por ejemplo Skype (VoIP) o Hello, de Picasa (álbumes de fotos personales), etc.

Debido a la ola de demandas, muchos desarrolladores de estas redes están pensando en nuevos métodos que permitan al usuario permanecer en anonimato a través de la creación del concepto P2P anónimo; además del uso y desarrollo de las redes descentralizadas.

http://es.wikipedia.org/wiki/Peer-to-peer

No hay comentarios:

Publicar un comentario