Peer to peer
Las tecnologías ‘peer to peer’ (P2P) hacen referencia a un
tipo de arquitectura para la comunicación entre aplicaciones que permite a
individuos comunicarse y compartir información con otros individuos sin
necesidad de un servidor central que facilite la comunicación. Es importante
destacar que el término “P2P” se refiere a un tipo de arquitectura de
aplicaciones y no a la funcionalidad específica de una aplicación final; es
decir, la tecnología P2P es un medio para alcanzar un fin superior. Sin
embargo, a menudo se utiliza el término “P2P” como sinónimo de “intercambio de
archivos”, ya que éste es uno de los usos más populares de dicha tecnología. No
obstante, existen muchos otros usos de la tecnología P2P, por ejemplo Skype
utiliza una arquitectura P2P híbrida para ofrecer servicios VoIP, mientras que
Tor utiliza una arquitectura P2P para ofrecer una funcionalidad de enrutamiento
anónimo. La ventaja principal de la tecnología P2P es que saca el máximo
partido de los recursos (ancho de banda, capacidad de almacenamiento, etc.) de
los muchos clientes/peers para ofrecer servicios de aplicación y red, sin tener
que confiar en los recursos de uno o más servidores centrales. De este modo se
evita que tales servidores se conviertan en un cuello de botella para toda la
red. Otra ventaja de la tecnología P2P es que no existe una autoridad central
única que se pueda eliminar o bloquear y colapsar toda la red P2P. Esto dota a
la red de la capacidad de sobrevivir por sí misma y de una gran robustez.
Amenazas P2P
Las aplicaciones P2P empleadas en la red de una empresa
pueden suponer una amenaza y una fuente de preocupaciones:
- 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.
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, EDonkey o BitTorrent.
- Los costos 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...
Clasificación
Una posible clasificación de las redes P2P pudiera ser
acorde a su grado de centralización:
Redes P2P centralizadas
Las tres topologías de red según los famosos grafos de Paul
Baran que aplican también al diseño P2P.
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
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, EDonkey y Direct
Connect.
Redes P2P "puras"
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.
Otras categorías
Algunos prefieren clasificar las redes P2P según 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:
- 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
llamados "metacomputing" o son clasificados como "Middleware".
Estos incluyen: Legión, Globus.
Redes P2P sin estructura y 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. 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.
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).
Referencias
http://www.ecured.cu/index.php/Red_Peer_to_Peer
No hay comentarios:
Publicar un comentario