Uso compartido de archivos P2P (peer to peer)

Introducción 
En redes informáticas, P2P es una tecnología de intercambio de archivos que permite a los usuarios acceder principalmente a archivos multimedia como videos, música, libros electrónicos, juegos, etc. Los usuarios individuales en esta red se denominan pares . Los pares solicitan archivos de otros pares estableciendo conexiones TCP o UDP. 

Cómo funciona P2P (Descripción general) 
Una red de igual a igual permite que el hardware y el software de la computadora se comuniquen sin la necesidad de un servidor. A diferencia de la arquitectura cliente-servidor, no existe un servidor central para procesar requests en una arquitectura P2P. Los pares interactúan directamente entre sí sin necesidad de un servidor central. 

Ahora, cuando un par realiza una solicitud, es posible que varios pares tengan una copia de ese objeto solicitado. Ahora el problema es cómo obtener las direcciones IP de todos esos pares. Esto lo decide la arquitectura subyacente compatible con los sistemas P2P. Por medio de uno de estos métodos, el par cliente puede conocer todos los pares que tienen el objeto/archivo solicitado y la transferencia de archivos se realiza directamente entre estos dos pares. 

Existen tres arquitecturas de este tipo: 
 

  1. Directorio centralizado
  2. Inundación de consultas
  3. Explotación de la heterogeneidad

1. Directorio centralizado 
 

  • Es algo similar a la arquitectura cliente-servidor en el sentido de que mantiene un enorme servidor central para proporcionar el servicio de directorio.
  • Todos los pares informan a este servidor central de su dirección IP y los archivos que están disponibles para compartir.
  • El servidor consulta a los pares a intervalos regulares para asegurarse de que los pares todavía estén conectados o no.
  • Básicamente, este servidor mantiene una enorme base de datos con respecto a qué archivo está presente en qué direcciones IP.

Laboral 
 

  • Ahora, cada vez que entra un compañero solicitante, envía su consulta al servidor.
  • Dado que el servidor tiene toda la información de sus pares, devuelve las direcciones IP de todos los pares que tienen el archivo solicitado al par.
  • Ahora la transferencia de archivos se lleva a cabo entre estos dos pares.

El primer sistema que hizo uso de este método fue Napster , con el propósito de distribuir Mp3. 
 

El principal problema con una arquitectura de este tipo es que hay un único punto de falla. Si el servidor falla, toda la red P2P falla. Además, dado que todo el procesamiento debe ser realizado por un solo servidor, se debe mantener y actualizar periódicamente una gran cantidad de la base de datos. 

2. Inundación de consultas 
 

  • A diferencia del enfoque centralizado, este método utiliza sistemas distribuidos.
  • En esto, se supone que los pares están conectados a una red superpuesta. Significa que si existe una conexión/ruta de un par a otro, es parte de esta red superpuesta.
  • En esta red superpuesta, los pares se denominan Nodes, y la conexión entre pares se denomina borde entre los Nodes, lo que da como resultado una estructura similar a un gráfico.

Laboral 
 

  • Ahora, cuando un par solicita algún archivo, esta solicitud se envía a todos sus Nodes vecinos, es decir, a todos los Nodes que están conectados a este Node. Si esos Nodes no tienen el archivo requerido, pasan la consulta a sus vecinos y así sucesivamente. Esto se denomina inundación de consultas.
  • Cuando se encuentra el par con el archivo solicitado (lo que se conoce como acierto de consulta), la inundación de consultas se detiene y devuelve el nombre y el tamaño del archivo al cliente, siguiendo así la ruta inversa.
  • Si hay varios resultados de consulta, el cliente selecciona uno de estos pares.

Gnutella fue la primera red peer-to-peer descentralizada. 

Este método también tiene algunas desventajas, como que la consulta debe enviarse a todos los pares vecinos a menos que se encuentre una coincidencia. Esto aumenta el tráfico en la red. 

3. Explotación de la heterogeneidad 
 

  • Esta arquitectura P2P hace uso de los dos sistemas mencionados anteriormente.
  • Se parece a un sistema distribuido como Gnutella porque no hay un servidor central para el procesamiento de consultas.
  • Pero a diferencia de Gnutella, no trata a todos sus pares por igual. Los pares con mayor ancho de banda y conectividad de red tienen una mayor prioridad y se denominan líderes de grupo/superNodes . El resto de los pares se asignan a estos superNodes.
  • Estos superNodes están interconectados y los pares debajo de estos superNodes informan a sus respectivos líderes sobre su conectividad, dirección IP y los archivos disponibles para compartir.

La tecnología KaZaA es un ejemplo que hace uso de Napster y Gnutella. 
Por lo tanto, los líderes de grupo individuales junto con sus compañeros de edad de una estructura similar a Napster. Estos líderes de grupo luego se interconectan entre sí para parecerse a una estructura similar a Gnutella. 

Laboral 
 

  • Esta estructura puede procesar las consultas de dos maneras.
  • La primera es que los superNodes podrían contactar con otros superNodes y fusionar sus bases de datos con su propia base de datos. Por lo tanto, este superNode ahora tiene información de una gran cantidad de pares.
  • Otro enfoque es que cuando entra una consulta, se reenvía a los superNodes vecinos hasta que se encuentra una coincidencia, al igual que en Gnutella. Por lo tanto, la inundación de consultas existe pero con un alcance limitado, ya que cada superNode tiene muchos compañeros secundarios. Por lo tanto, tal sistema explota la heterogeneidad de los pares al designar a algunos de ellos como líderes/superNodes del grupo y a otros como sus pares secundarios.

Referencias- Redes informáticas: un enfoque de arriba hacia abajo por James F. Kurose 

Este artículo es una contribución de Arushi Dhamija . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *