COMUNICACIÓN
PEER TO PEER
El peer to peer es un modelo de comunicación en el que cada una de las partes que lo componen tiene las mismas capacidades funcionales y pueden iniciar una sesión de comunicación.
Una red P2P, se caracteriza por no tener clientes y servidores fijos, sino más bien un conjunto de nodos que se comportan a la vez como clientes y como servidores de los demás nodos presentes en la red. Este modelo de red, en comparación del modelo cliente-servidor tradicional empleado en las aplicaciones de Internet, tiene mayor contraste puesto que en una red P2P, todos los nodos se comportan igual y pueden realizar el mismo tipo de operaciones; sin embargo, pueden diferir en configuración local, velocidad de proceso, ancho de banda y capacidad de almacenamiento.
Red genérica P2P
Hay
varios elementos que caracterizan una red P2P; el elemento básico por el que se
caracterizan las redes P2P, son los pares. Éstos, son la unidad de
procesamiento básico de cualquier red P2P, y se caracterizan por ser una
entidad capaz de desarrollar una acción útil y de comunicar los resultados de
dicha acción a otra entidad de la red, ya sea de forma directa o indirecta.
Por tanto, he aquí dos tipos de pares a destacar:
Por tanto, he aquí dos tipos de pares a destacar:
- Pares simples: están orientados a un único usuario final, ya que le permiten proporcionar servicios desde su dispositivo y emplear los servicios ofrecidos por otros pares de la red. Los pares suelen tener una naturaleza dinámica y diversa, es decir, se conectan a la red de forma intermitente y tienen capacidades muy distintas.
- Superpares: sirven de apoyo/soporte a los pares simples a que encuentre otros pares o a otros recursos de los pares. Los pares emiten solicitudes de búsqueda de recursos a los superpares, y los superpares les muestran donde obtenerlos. Generalmente, los superpares tienen una naturaleza estática ya que se encuentran conectados normalmente a la red y son fácilmente accesibles.
Otro elemento a destacar, son los grupos de pares; éstos, son un conjunto de pares formados para llevar a cabo un interés u objetivo común sugerido por el resto de pares implicados. Pueden por otra parte, proporcionan servicios a pares vecinos no accesibles por otros pares de la red P2P.
Por otra parte, hay que mencionar que las redes P2P llevan a cabo una serie de servicios que consiste en proporcionar una funcionalidad útil que se consigue a través de la comunicación de los distintos pares. Dicha funcionalidad puede transferir un fichero, proporcionarle información de estado, realizar un cálculo o comunicarse con otro usuario.
Los servicios que llevan a cabo estas redes se pueden clasificar de la siguiente forma:
- Servicios de pares: función que ofrece un par concreto de la red a otros pares, en la que se puede dar el caso de si un par se desconecta, el servicio se ‘cae’.
- Servicios de Grupo de pares: función proporcionada por varios miembros del grupo a base de conseguir el acceso repetido al servicio. Sin embargo, si un par del grupo se ‘cae’, el servicio sigue estando disponible.
Dejando de lado este aspecto, el enfoque siguiente está centrado en la arquitectura de las redes P2P.
El primer modelo a destacar, es el Modelo Centralizado. Lo primero de todo, mencionar que la primera generación de P2P empleaba una estructura de red cliente-servidor.
En esta estructura, el servidor central mantiene una base de datos con información de los ficheros servidos por cada par, y cada vez que un cliente se conecta o desconecta de la red, la base de datos se actualiza de forma que todos los mensajes de búsqueda y control son enviados al servidor centralizado.
La labor del servidor centralizado es comparar la solicitud de sus clientes con el contenido de su base de datos y enviar las correspondencias al cliente en cuestión. Una vez que es informado de dicha acción, el cliente contacta con el par directamente y accede al recurso solicitado.
Una de las ventajas que proporciona este modelo, es que ofrece un rendimiento muy elevado a la hora de localizar recursos siempre y cuando el servidor esté bien dimensionado; sin embargo, es muy costoso.
Funcionamiento del Modelo Centralizado
El segundo modelo a abarcar es el Modelo
Descentralizado. Este modelo usa un modelo distribuido en el que predomina la
ausencia de un servidor central, y todos los nodos tienen el mismo estatus. Lo
que llevan a cabo cada nodo es ejercer como servidores y clientes en la red.
Por tanto, lo que se encarga cada par en este modelo es de mantener un cierto número de conexiones con otros pares de forma continua mientras transportan el tráfico de red conformado por peticiones y respuestas a esas mismas peticiones y varios mensajes de control que facilitan el descubrimiento de otros nodos.
Por tanto, lo que se encarga cada par en este modelo es de mantener un cierto número de conexiones con otros pares de forma continua mientras transportan el tráfico de red conformado por peticiones y respuestas a esas mismas peticiones y varios mensajes de control que facilitan el descubrimiento de otros nodos.
Funcionamiento del Modelo descentralizado
El último modelo a tratar es el Modelo
Semicentralizado o Modelo P2P Mixto. En este modelo, varios pares de la red son
seleccionados como superpares y se encargan de gestionar el tráfico dirigido
hacia otros pares. Por lo general, estos superpares cambian activamente a
medida que se conectan nuevos pares.
Por otra parte, en este modelo, cada nodo cliente mantiene un porcentaje mínimo de conexiones abiertas y cada una de esas conexiones es a un superpar.
Esta nueva topología virtual tiene el efecto de hacer la red escalable, mediante la reducción del número de nodos involucrados en el encaminamiento y manejo de los mensajes, así como la disminución del volumen de tráfico entre ellos.
Hoy en día, la mayor parte de las aplicaciones emplean este modelo para su funcionamiento.
Por otra parte, en este modelo, cada nodo cliente mantiene un porcentaje mínimo de conexiones abiertas y cada una de esas conexiones es a un superpar.
Esta nueva topología virtual tiene el efecto de hacer la red escalable, mediante la reducción del número de nodos involucrados en el encaminamiento y manejo de los mensajes, así como la disminución del volumen de tráfico entre ellos.
Hoy en día, la mayor parte de las aplicaciones emplean este modelo para su funcionamiento.
Funcionamiento
del Modelo Semicentralizado
Dejando de lado el apartado de los modelos, las cuestiones que nos conciernen a continuación, son la comunicación en las redes P2P y la búsqueda de pares, contenidos y servicios.
Para que se lleve a cabo el proceso de comunicación en estas redes, es primordial el poder identificar los pares, grupos de pares y contenidos en la red.
En los sistemas P2P tradicionales, la mayoría de los identificadores se basaban en detalles específicos de los protocolos de transporte; por ejemplo, un par podía ser identificado mediante su dirección IP y puerto. Sin embargo, esta representación es inflexible e incapaz de proporcionar un sistema de identificación independiente de la red de transporte subyacente.
La búsqueda de información (pares, contenidos y servicios), es un aspecto fundamental en entornos P2P y a la vez uno de sus grandes problemas, debido a la ausencia de un conocimiento global de los datos y recursos involucrados.
Los sistemas de búsqueda de información en las redes P2P por lo general, deben soportar búsquedas flexibles, ser eficientes tolerantes a fallos, y ofrecer garantías de que todo lo que existe puede ser encontrado; también deben ser capaces de tratar con escalabilidad, dinamismo y heterogeneidad de estos entornos distribuidos.
La búsqueda de información se realiza en tres niveles:
- Búsqueda en caché: en esta sección, cada par mantiene una caché de recursos previamente descubiertos. Destaca por ser un método fácil de implementar y a la vez, reduce enormemente la cantidad de tráfico generado por cada par en la red. La caché tiene la función de eliminar las entradas que han superado un tiempo de vida máximo o aquellos recursos que dejan de estar disponibles. Se suele implementar como una cola FIFO. Este método es el más usado para encontrar superpares y pares en el momento previo de conexión a la red. En la mayoría de las aplicaciones P2P, la forma más sencilla de asegurar que un par en concreto pueda encontrar a un superpar es descargar en el par un listado actualizado de superpares.
- Búsqueda directa: Lo que realizan los pares en caso de no encontrar la información en su caché, es preguntar directamente a otros pares de la red con los que tenga conexión directa, usando métodos de broadcast y multicast. Es la forma de búsqueda usada en modelos P2P descentralizados.
- Búsqueda indirecta: en este apartado, los superpares actúan como fuente de información de localización de pares y otros recursos conocidos. Además, hacen la búsqueda en nombre del par. Destaca por ser la búsqueda usada primordialmente en los modelos semidescentralizados.
Antes de concluir con todo lo que engloba la composición y funcionamiento de las redes P2P, he aquí varias de entre las tantas características y beneficios que suponen las redes P2P:
- Descentralización
- Escalabilidad
- Anonimato
- Propiedad Compartida
- Rendimiento
- Seguridad
- Tolerancia a Fallos
- Interoperabilidad
Por otro lado, cabe mencionar una serie de desventajas que suponen las aplicaciones P2P empleadas en la red:
- Fuga de datos
- Violación de derechos de propiedad intelectual
- Consumo de recursos
- Control de acceso
- Retención de datos
- Malware
- Pérdida de tiempo
Dado por concluido la composición y funcionamiento de estas redes, el aspecto que realmente interesa en la actualidad y por tanto a enfocar viene siendo lo siguiente.
Dentro de la comunicación P2P, una de las acciones que más se lleva a cabo en la actualidad es el intercambio de ficheros P2P.
La forma en la que se lleva a cabo esta acción va de la siguiente manera:
Lo primero de todo, un usuario a la hora de intercambiar un fichero, ha de descargar e instalar en su ordenador un programa de compartición de ficheros P2P. Seguidamente ha de ejecutar dicho programa e introducir la dirección IP de otro ordenador que pertenezca a la red. Una vez que se establece la conexión, la acción de compartir ficheros entre todos los nodos de la red ya se puede llevar a cabo.
Habría que resaltar que esta acción se consideraría como un bucle de acciones puesto que al establecer una conexión con un ordenador, éste a su vez realizó la misma acción, es decir, encontrar la dirección IP de otro nodo de la red.
De forma general, los usuarios, a través de los parámetros del programa, pueden determinar cuántas conexiones simultáneas quieren tener y qué ficheros desean compartir, libremente o mediante claves de acceso (passwords).
La ventaja que supone el P2P es que en vez de tener un punto centralizado para el contenido – la cual desde otro punto de vista puede ser caro en términos de alojamiento, servidores y ancho de banda –, distribuye la carga entre los nodos participantes – que suelen ser muchos –, mediante la distribución de esos costes de hosting y envío entre cientos de miles o millones de nodos.
Un ejemplo claro de programa P2P lo encontramos en el programa BitTorrent. Éste, es un protocolo diseñado para el intercambio de archivos peer to peer en Internet.
Visualizador del funcionamiento de una red BitTorrent
La función original que llevaba a
cabo BitTorrent era la de distribuir software, actualizaciones y parches, pero
en la actualidad, se ha convertido en un dispositivo para distribuir contenidos
de audio y video en Internet, con una arquitectura distribuida.
Por ello, su principal objetivo a día de hoy es la de proporcionar una forma eficiente de distribuir un mismo fichero a un grupo amplio de personas, obligando a aquellos que descarguen archivos a compartirlos también con otros. Esta acción se lleva a cabo mediante la distribución de ficheros con extensiones .torrent por medios convencionales.
Este tipo de fichero suele contener la dirección de un servidor de búsqueda que se encarga de localizar fuentes con el fichero o partes de él.
A diferencia de otras redes P2P, las transmisiones en BitTorrent son rápidas ya que todos los nodos en grupo se concentran en transferir un solo fichero o una colección de ellos.
Por otra parte, con respecto a otras redes, no incluye ningún mecanismo de búsqueda de archivos por lo que los usuarios tendrán que localizar por sí mismos los archivos torrents de los que hace uso el protocolo.
La estructura de la red BitTorrent se compone de la siguiente manera:
Por ello, su principal objetivo a día de hoy es la de proporcionar una forma eficiente de distribuir un mismo fichero a un grupo amplio de personas, obligando a aquellos que descarguen archivos a compartirlos también con otros. Esta acción se lleva a cabo mediante la distribución de ficheros con extensiones .torrent por medios convencionales.
Este tipo de fichero suele contener la dirección de un servidor de búsqueda que se encarga de localizar fuentes con el fichero o partes de él.
A diferencia de otras redes P2P, las transmisiones en BitTorrent son rápidas ya que todos los nodos en grupo se concentran en transferir un solo fichero o una colección de ellos.
Por otra parte, con respecto a otras redes, no incluye ningún mecanismo de búsqueda de archivos por lo que los usuarios tendrán que localizar por sí mismos los archivos torrents de los que hace uso el protocolo.
La estructura de la red BitTorrent se compone de la siguiente manera:
- Peers: son todos los usuarios presentes en la red.
- Leechers: son los usuarios que están en la red descargando un archivo en proceso.
- Seeders: usuarios de la red con archivos completos y solamente realizan la labor de subir partes de dicho archivo a otros peers.
- Trackers: es un servidor especial que contiene la información.
- Enjambre: son los usuarios que el tracker se encarga de buscar.
La mecánica de
funcionamiento de la estructura consiste en que en primer lugar, un usuario descarga
de un servidor web un archivo .torrent
que contiene la información del fichero a descargar.
En segundo lugar, este archivo .torrent se inicia con un programa cliente capaz de interpretar dicha información. Los tipos de programas capaces de llevar a cabo dicha función son: uTorrent, Vuze, eMule…
En tercer lugar, el tracker y el peer se comunican a través de una conexión HTTP. La labor del tracker en esta sección es informar de la lista de todos los peers y sedes que contienen partes del archivo a descargar, y a su vez, actualizar la información del nuevo peer incorporado.
Por último, una vez que el peer tiene decidido dónde buscar las partes necesarias, se comunica con otros mediante sockets TCP o UDP y comienza la labor de descarga en el ordenador del usuario.
En segundo lugar, este archivo .torrent se inicia con un programa cliente capaz de interpretar dicha información. Los tipos de programas capaces de llevar a cabo dicha función son: uTorrent, Vuze, eMule…
En tercer lugar, el tracker y el peer se comunican a través de una conexión HTTP. La labor del tracker en esta sección es informar de la lista de todos los peers y sedes que contienen partes del archivo a descargar, y a su vez, actualizar la información del nuevo peer incorporado.
Por último, una vez que el peer tiene decidido dónde buscar las partes necesarias, se comunica con otros mediante sockets TCP o UDP y comienza la labor de descarga en el ordenador del usuario.
Mecánica de funcionamiento
Un aspecto a recalcar son las limitaciones/inconvenientes de este programa.
Por lo general, se considera que lo apropiado es cargar/subir la misma cantidad de datos descargado, es decir, que el ratio Upload/Download = 1. Sin embargo, esto no está garantizado ni es común en BitTorrent ya que por lo general, los usuarios se desconectan una vez concluido las descargas realizadas – esta acción se denomina leeching –.
Esta actividad da lugar a que con el paso del tiempo, los torrents caduquen debido a la falta de sedes ya que BitTorrent solo ofrece incentivos a los leechers, pero no a los sedes, ya que no obtienen ninguna ventaja realizando subidas a la red. Con la perspectiva de evitar esta clase de acciones, han emergido los denominados trackers privados.
Otra limitación/inconveniente de BitTorrent es la poca efectividad que tiene en transmisiones de archivos pequeños (pocos kb) ya que el ancho de banda usado en mensajes del protocolo es relativamente alto.
Antes de dar por concluido todo el ámbito de las redes P2P, he aquí una lista de varios servicios basados en técnicas P2P y buscadores de archivos torrent:
(servicios basados en técnicas P2P)
- Skype
- RTVE
- SopCast
- Rojadirecta
- Torrentz.com
- isoHunt.to
- YIFY Torrents
- Torrenthound
No hay comentarios:
Publicar un comentario