Los sistemas P2P son sistemas
distribuidos en los cuales no existen ningún tipo de control central ni de
estructura jerárquica, pudiendo por ello ir más allá de los servicios ofrecidos
por los tradicionales sistemas centralizados de tipo Cliente/Servidor a costa
de una mayor complejidad técnica y teórica.
Red genérica P2P, obsérvese como unos clientes retransmiten los flujos de datos a otros clientes
El termino "peer-to-peer" o "P2P" se emplea popularmente para referirse a las redes de intercambio de ficheros entre particulares, sin embargo, como veremos, es un concepto más amplio puesto que también se utiliza para proporcionar diversos servicios de comunicaciones electrónicas, como son los telefónicos (p.ej. Skype), el almacenamiento de ficheros (p.ej. Freenet) o la difusión de televisión, (BBC) donde esta técnica recibe el nombre de Netcasting.
Es un modelo de comunicación en el que cada una de las partes que lo componen tiene las mismas capacidades funcionales y puede iniciar una sesión de comunicación. En una red P2P cada nodo (cada ordenador) tiene una capacidad, responsabilidad y funciones similar a los demás nodos. Por tanto, es un modelo opuesto al de cliente/servidor, donde unos ordenadores (especializados en ser clientes) piden datos a otros que se los sirven (especializados en ser servidores) y al de Maestro/Esclavo. En una red P2P cada nodo lo mismo actúa de cliente como de servidor.
Podemos considerar un sistema P2P como una arquitectura de varias capas,
a saber: – El nivel de red, representa el nivel más bajo de la arquitectura, ofreciendo
las capacidades básicas de comunicación entre ordenadores, bien a través de
redes IP o mediante redes Ad-Hoc.(La red es ad hoc porque no depende de una infraestructura
pre-existente, como routers (en redes cableadas) o de puntos de accesos en
redes inalámbricas administradas).
– El nivel de administración de la capa P2P, encargado de enrutar mensajes y
de realizar tareas de mantenimiento del overlay. – El nivel de características, que da soporte a funcionalidades de la red como
la seguridad, la resistencia a fallos o la administración de recursos. – El nivel de servicios, que es el encargado de proporcionar funcionalidades al
nivel de aplicación.
Overlays No Estructurados:
Una red P2P de tipo no estructurado puede considerarse como un sistema compuesto
por nodos interconectados entre si de una forma más o menos aleatoria,
sin ningún tipo de conocimiento previo acerca de la topología de la red. La red
usa un mecanismo de flooding o inundación para comunicar nodos no conocidos
entre si a través del overlay.
Overlays Estructurados:
Cuando hablamos de overlays estructurados, nos referimos a overlays en los que
la topología de la red y el contenido son controladas para situarlas en ubicaciones
no aleatorias, si no en posiciones del overlay que faciliten su búsqueda. Estos
sistemas P2P estructurados basan su funcionamiento en la implementación de
una Tabla Hash Distribuida (DHT), en la cual la información es almacenada
de forma determinista en el nodo o nodos cuyo identificador corresponda con
la clave del objeto a almacenar, siendo dicha clave única en el sistema
Sistemas de computación P2P existentes
WaveGrid: consiste en un overlay DHT,
soporta varios, entre ellos CAN, Chord y Pastry. Los nodos se dividen en husos
horarios de tal forma que en cada momento de tiempo, sólo se están usando
aquellos nodos que se encuentren en una zona donde sea de noche y los nodos
se encuentren inactivos.
P2P task scheduling in computation grid: Es un intento
por descentralizar parte de la infraestructura de un sistema de Grid Computing
como Globus. Mediante un nuevo módulo llamado Peer in Grid Scheduler
(PGS) permite que los nodos que conforman el sistema sean los encargados de
decidir como ejecutar las tareas que deseen lanzar.
CompuP2P CompuP2P: Es un sistema P2P basado en DHT, actualmente
implementado con Chord que divide el conjunto de los nodos del sistema entre
compradores y vendedores de recursos. Asiímismo, en cada sistema CompuP2P
se crean una serie de mercados con objeto de cubrir todas las posibles demandas
de los nodos del sistema en cuanto a CPU, uso de disco, sistema operativo, etc.
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.
Herramientas para el estudio de las redes P2P
Existen una serie de herramientas que permiten el estudio, la validación y la
implementación de sistemas basados en redes P2P así como de nuevas redes
P2P de forma relativamente rápida. Por un lado tenemos los simuladores que
nos permiten testear nuestras propuestas y por otro las librerías que implementan
ciertas redes ya existentes.