Guía fácil de las TIC del... P2P
Autor: Ramón Jesús Millán Tejedor
Publicado en Guías fáciles de las TIC del Día de Internet, COIT, 2006
¿QuÉ es el P2P?
La conjunción
de tecnologías de compresión de contenidos
digitales, conexiones a Internet de
banda ancha y programas P2P, hacen factible descargar en muy poco
tiempo
archivos grandes y de alta calidad. Esta mezcla tan atractiva para los
usuarios
de Internet, ha intensificado involuntariamente el dolor de cabeza
provocado
por la piratería para los estudios de cine y las
compañías discográficas.
Según
diversos estudios, más del
60% del tráfico actual de Internet está generado
por las redes P2P,
constituyendo así la aplicación estrella (killer
application) de la
banda ancha.
Si bien los sistemas P2P, con Napster a la cabeza, empezaron a ser
conocidos
por los usuarios y desarrolladores por su utilización para
el intercambio
“ilícito” de contenidos protegidos por
derechos de autor, la realidad es que
esta tecnología ofrece una gran cantidad de beneficios para
sus usuarios, tanto
domésticos como empresariales. Entre las aplicaciones
actuales y futuras de las redes P2P, cabe destacar: negocios de
intercambio de
todo tipo de contenidos digitales de forma legal, protección
contra virus,
educación colaborativa a distancia, difusión de
televisión y radio en tiempo
real, telefonía IP, mensajería
instantánea, redes de almacenamiento, etc.
¿Pero qué es en concreto el P2P?... Básicamente, una red informática P2P
(Peer-to-Peer) o “entre iguales o pares”, se refiere a una red que
no tiene clientes y servidores fijos, sino una serie de nodos que se comportan a la vez
como clientes y como servidores de los demás nodos de la red.
Este modelo de red contrasta con el modelo cliente-servidor tradicionalmente empleado en
las aplicaciones de Internet. Así, todos los nodos se comportan
igual y pueden realizar el mismo
tipo de operaciones;
pudiendo no obstante diferir en configuración local,
velocidad de proceso,
ancho de banda de su conexión a la red y capacidad de
almacenamiento.
Típicamente,
la computadora que realiza algunas tareas en beneficio de otras
aplicaciones
llamadas clientes (clients), es el denominado
servidor (host).
Algunos servidores habituales son los servidores de archivos, que
permiten a
los usuarios almacenar y acceder a los archivos de un ordenador, y los
servidores de aplicaciones, que realizan tareas en beneficio directo
del
usuario final. El modelo cliente-servidor era muy apropiado cuando no
existían
los PCs, sólo estaciones de trabajo, cuya potencia distaba
mucho de los grandes
y costosos ordenadores centrales (mainframes). Hoy
en día, los PCs
empleados en hogares y empresas tienen unas prestaciones cada vez
más parecidas
a los servidores a un precio sensiblemente menor. Por ello, las redes
P2P son
la mejor alternativa para aprovechar toda la capacidad de proceso,
almacenamiento y ancho de banda sobrante de los ordenadores
interconectados.
¿CÓmo y cuÁndo se utiliza el P2P?
La arquitectura tradicional para el desarrollo de aplicaciones
distribuidas está basada
en el modelo cliente-servidor. Este modelo, empleado en Internet para
la práctica
totalidad de los servicios convencionales (Web, FTP, Telnet, etc.),
consta de
una serie de clientes que acceden simultáneamente a un
conjunto de servidores
que ofrecen ciertos recursos o aplicaciones. Cuando se pretenden
descargar
grandes volúmenes de información a muchos
clientes, la arquitectura
cliente-servidor es lenta, costosa y no escalable. No aprovecha, por
ejemplo,
que un mismo servidor muy remoto pueda estar siendo objeto de acceso
por dos
clientes muy cercanos entre sí.
En cambio, en la arquitectura para la distribución de contenidos empleada
por los programas
P2P es una arquitectura cliente-servidor, pero en
la que también colaboran
los clientes o pares. En este caso, los ordenadores clientes
se ayudan
entre sí, convirtiéndose en servidores de otros
clientes. Estas redes pueden
crecer indefinidamente sin incrementar el tiempo de las
búsquedas y sin necesidad
de costosos recursos centralizados; como utilizan el ancho de banda,
capacidad
de almacenamiento y capacidad de procesamiento de las
máquinas que
interconectan, el número de dichos recursos siempre aumenta
en proporción
directa con el propio crecimiento de la red.
Para descargar
un fichero a través de redes P2P, en primer lugar, los
ficheros objeto de la
descarga se segmentan en pequeñas partes para su
distribución. Acto seguido,
los clientes solicitan diferentes trozos al servidor o a otros clientes
y
comienzan su descarga de forma concurrente para conseguir una mayor
velocidad.
Entonces, esos mismos clientes se convierten en servidores para los
trozos que
están descargando o que acaban de descargar. Como el mismo
fichero se descarga
desde múltiples fuentes al mismo tiempo, la velocidad es
mucho mayor cuando
crece el número de usuarios que lo comparten. Dado que el
ancho de banda y el
número de conexiones establecidas es limitado en cada
servidor, es necesario
establecer un sistema de colas que permita que todos los clientes
descarguen
distintos segmentos de forma equitativa. Una vez que el cliente
disponga de
todos los trozos descargados, reconstruirá el fichero total.
En ese momento, el
usuario podrá reproducir el vídeo o la
canción descargada.
El procedimiento empleado cuando, por ejemplo, se comparten recursos
computacionales
a través de redes P2P es básicamente el mismo,
con la salvedad de que ahora
serán las tareas las que se segmentan teniendo en cuenta sus
posibilidades de paralelización.
Una vez divididas en partes independientes, estas tareas se
envían a distintos
pares para su solución.
Figura 1: Arquitectura cliente-servidor y P2P.
¿QuÉ utilidad tiene el P2P?
Los programas P2P tienen una serie de características distintivas
inherentes a su naturaleza descentralizada, que son las que las hacen realmente atractivas para los
usuarios domésticos y empresariales, pudiendo resumirlas en:
- Mejora de la escalabilidad, reduciendo las ineficiencias, cuellos de botella y recursos
desperdiciados, típicos de los sistemas centralizados.
- Mejora del rendimiento, agregando anchos de banda, capacidad de almacenamiento y ciclos de
computación de los dispositivos diseminados por una red.
- Mayor tolerancia a fallos, permitiendo que el servicio ofrecido no se pierda debido a fallos
asociados a desconexiones de nodos, caídas en la red y fallos de nodos.
- Anonimato, permitiendo a los usuarios usar un servicio sin preocuparse de cuestiones legales o de otro tipo, como ataques a su
intimidad o censura de la información publicadad.
- Propiedad compartida, reduciendo el coste de la posesión de los sistemas y
contenidos, así como el coste de su mantenimiento.
Algunas de las aplicaciones P2P más populares en estos momentos suponen
cierto grado de
centralización, siendo su punto en común que
todas siguen un sistema de
computación de red distribuida donde todos los nodos se
comunican de igual a
igual. Las principales aplicaciones
del P2P se suelen
agrupar en:
- Compartición de ficheros. Las aplicaciones de compartición de ficheros son las
más famosas y a la vez las más
controvertidas de todas las posibles aplicaciones de las
tecnologías P2P. Una
característica de P2P es que la
información es distribuida de forma totalmente flexible,
segura y dinámica,
haciendo que su control sea realmente complicado, por lo que ha sido
empleado
tradicionalmente para la difusión
“ilícita” de material con copyright,
mediante
programas como Kazaa o eDonkey2000. Sin embargo, también
existen redes P2P destinadas al intercambio legal de contenidos
digitales, como
PeerImpact o iMesh,
que emplean técnicas de DRM (Digital Rights
Management) que aseguran que
la distribución de los contenidos cumpla en todo momento el copyright establecido.
- Distribución de contenidos. La distribución de contenidos se diferencia de la
compartición de ficheros, en
cuanto a que dichos ficheros son en este caso replicados entre todos los
distintos iguales. Las redes P2P serán de gran utilidad para
la distribución de
contenidos, como por ejemplo: vídeo bajo demanda
(películas a la carta) o
aplicaciones de streaming vídeo o audio
(como televisión o radio). De
nuevo el P2P es un medio ideal para que dicha distribución
de contenidos mejore
su eficiencia y calidad a un menor costo. La BBC ha
sido una de las primeras cadenas de televisión mostrar en la
Red toda su programación
de radio y televisión mediante una tecnología que
ha denominado Internet Media
Player, basada en P2P y que incorpora mecanismos de DRM, preservando los
derechos de autor de lo emitido por la cadena y pudiendo especificar el tiempo
que se tiene para ver un programa.
- Sincronización de datos. La sincronización es similar a la distribución de
contenidos, con la diferencia de
que es a un nivel más granular. Los usuarios
domésticos y empresariales
acostumbramos a sincronizar datos entre distintos dispositivos, como por
ejemplo, la agenda de contactos entre el terminal móvil y el
ordenador. La
sincronización mediante P2P podría emplearse, por
ejemplo, para que los
fabricantes de software distribuyesen los parches de aplicaciones entre sus
clientes, o para que los teletrabajadores actualizasen documentos entre su
ordenador doméstico y los servidores de almacenamiento de la
empresa. Microsoft incorpora
en Windows Vista tecnología P2P para la
distribución de contenidos y la
sincronización de datos. Este componente, conocido por
Avalanche, está
destinado a las descargas de material
legal, como software comercial o emisiones de radio y
televisión, aunque será
también utilizado para la descarga de parches y
actualizaciones de seguridad,
tareas que actualmente son realizadas desde una serie de servidores
centrales
propiedad de Microsoft, y que crean cuellos de botella en dichos
servidores. El P2P también
puede emplearse para la realización de copias de seguridad
automáticas de datos
críticos de nuestros ordenadores, algo que ya ofrece, por
ejemplo, PeerioData.
PeerioData
permite crear redes de almacenamiento robustas y seguras sin servidores
dedicados, reduciendo así los costes en infraestructura y
mantenimiento.
- Mensajería instantánea, telefonía y videoconferencia IP. La
centralización empleada por los sistemas tradicionales de
comunicación IP, como
MSN Messenger,
supone demasiados costes al proveedor en servidores dedicados, y
además este
costo aumenta en proporción al número de
usuarios. El resultado de esto es que
las compañías que ofrecen tales servicios,
destinan muy pocos recursos a los
servidores por usuario, y esto perjudica la calidad de las
comunicaciones. Por ello, el
siguiente paso lógico en la revolución originada
por el intercambio de ficheros
a través de la tecnología P2P, fue la
telefonía IP; y Skype fue el primer programa en
desarrollar una red
de telefonía de este tipo. Skype aprovecha eficientemente
todos los recursos
disponibles en una red; elevando así el porcentaje de
concreción de llamadas y
la calidad de éstas, a niveles ligeramente inferiores al
sistema telefónico
básico. Además de telefonía IP, Skype
permite establecer sesiones de mensajería
instantánea, videoconferencia y transferencia de ficheros
directa entre
usuarios.
- Colaboración. La informática
colaborativa (groupware) consiste en varias
tecnologías y procesos para
eliminar el aislamiento de los empleados individuales y construir un
nuevo
modelo empresarial cooperativo. Una de las grandes ventajas de emplear
la
tecnología P2P para colaboración es que una
aplicación puede ser totalmente
desarrollada sin depender de servidores u otros sistemas administrados
de forma
centralizada. De este modo, los programas P2P se encargan de descubrir
los
otros nodos y de encaminar de forma segura los mensajes entre los
distintos
usuarios. Entre las
aplicaciones más completas para la colaboración
en LAN e Internet empleando
arquitectura P2P, tipo al famoso Lotus Notes
en arquitectura cliente-servidor,
está Groove .
Groove integra mensajería instantánea, chat,
intercambio de archivos, agenda de
contactos y calendario común, y la posibilidad de trabajar
en grupo
directamente sobre el mismo archivo de Word, todo ello con total
seguridad.
- Compartición de ciclos de procesamiento. Los
ordenadores personales mejoran continuamente en cuanto a velocidad,
espacio de
almacenamiento y precio. No obstante, la mayoría de las
aplicaciones no
utilizan completamente los recursos de los ordenadores, por lo que la
capacidad
sobrante es bastante importante. Las aplicaciones y protocolos P2P pueden
utilizar el exceso de potencia de cálculo y almacenamiento
para crear sistemas
donde todo el procesamiento sea realizado por pares en vez de por
servidores.
La idea es emplear esta capacidad de cálculo sobrante para
resolver problemas
complejos, dividiendo éstos en subproblemas que puedan ser
resueltos de forma
independiente por un gran número de ordenadores. Aunque esto es
complicado de llevar a la práctica, existen ya programas P2P
operando de este
modo como SETI@home,
cuyo objetivo es la búsqueda de vida extraterreste mediante
la detección de su
tecnología de comunicaciones, buscando patrones que
demuestren inteligencia en
las ondas de radio procedentes del espacio.