Clasificación de las redes P2P, peer to peer

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 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

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 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.

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.

Redes P2P estructuradas y no estructuradas

La red de sobrecapa 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 sobrecapa. Basándonos en 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.

Se forma una red P2P no estructurada cuando los enlaces de la sobrecapa 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 compartido por él, entonces no hay garantía de 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