viernes, 3 de julio de 2009

Guerreros de la red



Continua...

Computación Grid

Computación Grid

La computación grid es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores, clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet). Desarrollado en ámbitos científicos a principios de los años 1990, su entrada al mercado comercial siguiendo la idea de la llamada Utility computing supone una revolución que dará mucho que hablar.

El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un intercambio de datos, o de tiempo de computación, el propósito del grid es facilitar la integración de recursos computacionales. Universidades, laboratorios de investigación o empresas se asocian para formar grid para lo cual utilizan algún tipo de software que implemente este concepto.

Historia

Con el paso del tiempo, el desarrollo del hardware llevó a la mejora y abaratamiento de este, dando paso a tecnologías que antes era impensable emplear, debido a costes o el bajo rendimiento que ofrecían, como lo eran los clusters. Los clusters surgieron como una nueva alternativa muy recomendable en el campo de la computación, tanto paralela como distribuida. Consiste en unir un conjunto de computadores personales o estaciones mediante una red (LAN, SAN, etc.). Su principal ventaja es la mejor relación de coste a rendimiento, sin embargo la gran demanda tanto de computación como de espacio y gestión de almacenamiento requeridos por un gran número de aplicaciones que gestionan grandes cantidades de datos y han de hacerlo de forma eficiente y sencilla, exige el uso de nuevas tecnologías, como es el caso de la computación grid o grid computing.

¿Qué es?

Llamamos grid al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDA, portátiles, móviles, etc), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o personas/colaboradores.

La computación grid ofrece muchas ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de computadores conectados en red usando grid es prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.

Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas de seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su objetivo será el de compartir una serie de recursos en la red de manera uniforme, segura, transparente, eficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración. Esto nos puede llevar a pensar que la computación Grid permite la creación de empresas virtuales. Es importante saber que una grid es un conjunto de maquinas distribuidas que ayudan a mejorar el trabajo sobre software pesados

Actualidad

Existen muchos proyectos que han sido desarrollados en esta línea, tales como Edonkey, Emule o Limewire. Se trata de programas para compartir datos a nivel mundial entre diferentes máquinas. Las grid y Peer-to-peer (P2P) tienen mucho en común y especialmente la idea básica de compartición de recursos. Entre las características diferentes podemos ver la P2P como más anónima y generalizada en ordenadores de usuarios de Internet, mientras que las grids nacen de una estructura de nodos más controlada y jerarquizada en centros científicos. Una primera experiencia fue GriPhyN, para unir nodos en el proceso de físicas de altas energías en Estados Unidos.

Otro proyecto también muy usado es Seti@Home. Éste cuenta con miles de PC repartidos por Internet que ceden tiempo de sus procesadores, ciclos de proceso desocupados, para analizar señales buscando patrones inteligentes extraterrestres. Sin embargo, su uso destaca también en los centros de investigación desde finales del 1990 en proyectos que van desde Física de Partículas a Astrofísica o incluso Biología. En Europa con el apoyo de proyectos de CERN (Centro Europeo Investigación Nuclear) y el programa marco europeo se creó el software y red EDG (grid de datos europea). El uso de la computación grid en estos campos ha supuesto una mejora exponencial en los últimos años.

Las empresas e instituciones que han participado en el desarrollo de estas tecnologías quieren entrar cuanto antes en una etapa de explotación comercial. Empresas como Microsoft y Sun Microsystems se han dado cuenta de la importancia que tendrá a medio plazo ofrecer grid a sus clientes. Destacamos el papel de IBM invirtiendo en grid como plataforma para ofrecer a sus clientes las ventajas como ahorro de tiempo y recursos económicos.

Existen varias soluciones comerciales en forma de empresas, por ejemplo:

  • La Enterprise Grid Alliance (EGA): se crea en California, en abril de 2004, por un grupo de empresas líderes en tecnología para desarrollar soluciones comerciales-empresariales de informática distribuida y para acelerar el despliegue de esta tecnología en las empresas. Es un consorcio abierto enfocado en el desarrollo y promoción de soluciones de mallas empresariales.
  • Sun Microsystems: el software Grid Engine de Sun hace más fácil agregar máquinas al grid y automáticamente toma ventaja de la energía incrementada, por lo que ahorra tiempo y recursos a través de un grid rápido, eficiente y confiable para el manejo y despliegue.
  • Andago: con el objetivo de acercar la tecnología grid a los entornos industriales y de negocio, Andago añadió a su oferta de soluciones su experiencia en proyectos Grid.

Existen diversos middleware con capacidades y funcionalidades muy variadas que, en función de la complejidad, servicios ofrecidos y dimensión de la red grid a implantar, se seleccionará la opción idónea. Las soluciones middleware, todas ellas software open source, utilizadas (por ejemplo por Andago) son: EGEE para grandes proyectos, Globus Solutions para proyectos medios, Grid Engine para pequeñas implantaciones.

Características

  • Capacidad de balanceo de sistemas: no habría necesidad de calcular la capacidad de los sistemas en función de los picos de trabajo, ya que la capacidad se puede reasignar desde la granja de recursos a donde se necesite;
  • Alta disponibilidad. con la nueva funcionalidad, si un servidor falla, se reasignan los servicios en los servidores restantes;
  • Reducción de costes: con esta arquitectura los servicios son gestionados por "granjas de recursos". Ya no es necesario disponer de "grandes servidores" y podremos hacer uso de componentes de bajo coste. Cada sistema puede ser configurado siguiendo el mismo patrón;

Se relaciona el concepto de grid con la nueva generación de Internet. El nuevo protocolo de Internet IPv6 permitirá trabajar con una Internet más rápida y accesible. Una de las ideas clave en la superación de las limitaciones actuales de Internet IPv4 es la aparición de nuevos niveles de servicio que harán uso de la nueva capacidad de la red para intercomunicar los ordenadores.

Este avance en la comunicación permitirá el avance de las ideas de grid computing al utilizar como soporte la altísima conectividad de Internet. Es por ello que uno de los campos de mayor innovación en el uso del grid computing, fuera de los conceptos de supercomputación, es el desarrollo de un estándar para definir los Grid Services frente a los actuales Web Services.

Desventajas

No obstante, la computación grid presenta algunos inconvenientes que deben solucionarse. Estos problemas son:

  • Recursos heterogéneos: la computación grid debe ser capaz de poder manejar cualquier tipo de recurso que maneje el sistema, si no resultará totalmente inútil.
  • Descubrimiento, selección, reserva, asignación, gestión y monitorización de recursos son procesos que deben controlarse externamente y que influyen en el funcionamiento del grid.
  • Necesidad de desarrollo de aplicaciones para manejar el grid, así como desarrollo de modelos eficientes de uso.
  • Comunicación lenta y no uniforme.
  • Organizativos: dominios de administración, modelo de explotación y costes, política de seguridad...
  • Económicos: precio de los recursos, oferta/demanda...

Ventajas y requisitos

En definitiva, grid supone un avance respecto a la World Wide Web:

El World Wide Web proporciona un acceso transparente a información que está almacenada en millones de ordenadores repartidos por todo el mundo. Frente a ello, el grid es una infraestructura nueva que proporciona acceso transparente a potencia de cálculo y capacidad de almacenamiento distribuida por una organización o por todo el mundo.

Los requisitos que debe cumplir cualquier grid son:

Los datos deben compartirse entre miles de usuarios con intereses distintos. Se deben enlazar los centros principales de supercomputación, no sólo los PC. Se debe asegurar que los datos sean accesibles en cualquier lugar y en cualquier momento. Debe armonizar las distintas políticas de gestión de muchos centros diferentes. Debe proporcionar seguridad.

Y los beneficios que se obtienen:

  • Proporciona un mecanismo de colaboración transparente entre grupos dispersos, tanto científicos como comerciales.
  • Posibilita el funcionamiento de aplicaciones a gran escala.
  • Facilita el acceso a recursos distribuidos desde nuestros PC.
  • Todos estos objetivos y beneficios se engloban en la idea de "e-Ciencia".

Estos beneficios tendrán repercusión en muchos campos:

del planeta, modelos y predicción de sistemas complejos).

La tecnología derivada del grid abre un enorme abanico de posibilidades para el desarrollo de aplicaciones en muchos sectores. Por ejemplo: desarrollo científico y tecnológico, educación, sanidad, y administración pública.

miércoles, 1 de julio de 2009

Peer to Peer

Peer to Peer

http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/P2P-network.svg/200px-P2P-network.svg.png

Ejemplo de una red basada en peer-to-peer.

Una red peer-to-peer (P2P) o red de pares, es una red de computadoras en la que todos o algunos aspectos de esta funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre si. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red.

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, obteniendo más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales, donde una cantidad relativamente pequeña de servidores provee el total del ancho de banda y recursos compartidos para un servicio o aplicación.

Dichas redes son útiles para diversos propósitos. A menudo se usan para compartir ficheros de cualquier tipo (por ejemplo, audio, video o software). 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.

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.

El inicio

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, 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 sistema Hotline Connect estaba descentralizado, puesto que no utilizaba servidores centrales, sino completamente autónomos: los archivos se almacenaban en los ordenadores de los usuarios que deseaban funcionar como servidores, y permitían, restringían o condicionaban la entrada al resto de usuarios, los clientes. En caso de que un servidor se cerrase, no existía ningún otro lugar del cual seguir descargando ese mismo archivo, y no quedaba más remedio que cancelar la descarga y empezar de cero en otro servidor.

Este sistema, en el que cada usuario dependía de un único servidor, no tardó en quedar obsoleto. Por otra parte, al ser una aplicación desarrollada fundamentalmente para una plataforma minoritaria como Mac OS, no atrajo la atención de la prensa generalista. Esto cambió con el nacimiento de Napster en 1999, a quien erróneamente se atribuye la invención del P2P. 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, batería 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".

Aplicaciones de las redes P2P

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 usarse 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.[1]
  • Cálculos científicos que procesen enormes bases de datos, como los bioinformáticos.

http://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Leech_bittorrent.png/280px-Leech_bittorrent.png

Gráfico de un enjambre mostrando la distribución de los peers con sus respectivas trasmisiones y recepciones de datos dentro de un torrent en Azureus.

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 Medicamentos (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 Lion Share.

Características

Seis características deseables de las redes P2P:

  • Escalabilidad. Las redes P2P tienen un alcance mundial con cientos de millones de usuarios potenciales. En general, lo deseable es que cuantos más nodos estén conectados a una red P2P mejor será su funcionamiento. Así, cuando los nodos llegan y comparten sus propios recursos, los recursos totales del sistema aumentan. Esto es diferente en una arquitectura del modo servidor-cliente con un sistema fijo de servidores, en los cuales la adición de 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.
  • Robustez. La naturaleza distribuida de las redes peer-to-peer también incrementa la robustez en caso de haber fallos en la réplica excesiva de los datos hacia múltiples destinos, y —-en sistemas P2P puros—- permitiendo a los peers encontrar la información sin hacer peticiones a ningún servidor centralizado de indexado. En el último caso, no hay ningún punto singular de falla en el sistema.
  • Descentralización. Estas redes por definición son descentralizadas y todos los nodos son iguales. No existen nodos con funciones especiales, y por tanto ningún nodo es imprescindible para el funcionamiento de la red. En realidad, algunas redes comúnmente llamadas P2P no cumplen esta característica, como Napster, eDonkey2000 o BitTorrent.
  • 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.
  • Anonimato. Es deseable que en estas redes quede anónimo el autor de un contenido, el editor, el lector, el servidor que lo alberga y la petición para encontrarlo siempre que así lo necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de autor son incompatibles entre sí, y la industria propone mecanismos como el DRM para limitar ambos.
  • Seguridad. Es una de las características deseables de las redes P2P menos implementada. Los objetivos de un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones entre nodos, creación de grupos seguros de nodos dentro de la red, protección de los recursos de la red... 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...

Problemas de funcionamiento

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

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

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.

Clasificación

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

http://upload.wikimedia.org/wikipedia/commons/4/46/Topolog%C3%ADas_de_red.gif

Las tres topologías de red según los famosos grafos de Paul Baran que aplican también al diseño P2P

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.

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 más 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: Kademlia, 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

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 más común en los actuales P2P
  • Tercera Generación de P2P: Son aquellos P2P de generación más 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:

Una reciente generación de sistemas peer-to-peer son llamados "metacomputing" o son clasificados como "middleware". Estos incluyen: Legión, Globus

Redes P2P sin estructura y Redes P2P estructuradas

La red de sobre capa 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 sobre capa. En base a cómo los nodos en la red de sobre capa 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 sobre capa 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:


Video de Peer to Peer Aquí