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

Cómo funciona el P2P(Visión general)
Una red entre pares permite que el hardware y el software del ordenador se comuniquen sin necesidad de un servidor. A diferencia de la arquitectura cliente-servidor, en una arquitectura P2P no hay un servidor central para procesar las solicitudes. Los pares interactúan directamente entre sí sin necesidad de un servidor central.

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

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 de los archivos que ponen a disposición para compartir.
  • El servidor consulta a los pares a intervalos regulares para asegurarse de si los pares siguen conectados o no.
  • Así que, básicamente, este servidor mantiene una enorme base de datos con respecto a qué archivo está presente en qué direcciones IP.
    • Funcionamiento

      • Ahora cada vez que un peer solicitante entra, envía su consulta al servidor.
      • Como el servidor tiene toda la información de sus peers, le devuelve las direcciones IP de todos los peers que tienen el archivo solicitado.
      • Ahora la transferencia de archivos tiene lugar entre estos dos peers.

      El primer sistema que hizo uso de este método fue Napster, para la distribución de Mp3.

      El mayor problema de esta arquitectura es que hay un único punto de fallo. Si el servidor se cae, toda la red P2P se cae. Además, dado que todo el procesamiento debe ser realizado por un único servidor por lo que una enorme cantidad de base de datos tiene que ser mantenida y actualizada regularmente.

      2. Inundación de consultas

      • A diferencia del enfoque centralizado, este método hace uso de los sistemas distribuidos.
      • En este caso, se supone que los compañeros están conectados en una red de superposición. Esto significa que si existe una conexión/trayectoria de un par a otro, forma parte de esta red superpuesta.
      • En esta red superpuesta, los pares se denominan nodos y la conexión entre pares se denomina borde entre los nodos, lo que da lugar a una estructura similar a un gráfico.

      Funcionamiento

      • Ahora, cuando un peer solicita algún archivo, esta solicitud se envía a todos sus nodos vecinos, es decir, a todos los nodos que están conectados a este nodo. Si esos nodos 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 peer con el archivo solicitado (denominado query hit), la inundación de consultas se detiene y devuelve el nombre y el tamaño del archivo al cliente, siguiendo así el camino inverso.
      • Si hay varios query hits, el cliente selecciona uno de estos peers.

      Gnutella fue la primera red peer to peer descentralizada.

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

      3. Aprovechamiento de la heterogeneidad

      • Esta arquitectura P2P hace uso de los dos sistemas mencionados anteriormente.
      • Se asemeja a un sistema distribuido como Gnutella porque no hay un servidor central para el procesamiento de las 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 mayor prioridad y se denominan líderes de grupo/supernodos. El resto de los pares se asignan a estos supernodos.
      • Estos supernodos están interconectados y los pares bajo estos supernodos 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.
        Así, los líderes de grupo individuales junto con sus pares hijos forman una estructura similar a Napster. Estos líderes de grupo se interconectan entre ellos para parecerse a una estructura similar a Gnutella.

        Funcionamiento

        • Esta estructura puede procesar las consultas de dos maneras.
        • La primera es que los supernodos podrían contactar con otros supernodos y fusionar sus bases de datos con su propia base de datos. Así, este supernodo tiene ahora información de un gran número de pares.
        • Otro enfoque es que cuando llega una consulta, se reenvía a los supernodos vecinos hasta que se encuentra una coincidencia, al igual que en Gnutella. Así, la inundación de consultas existe, pero con un alcance limitado, ya que cada supernodo tiene muchos pares hijos. Por lo tanto, un sistema de este tipo explota la heterogeneidad de los pares designando a algunos de ellos como líderes del grupo/supernodos y a otros como sus pares hijos.
          • Referencias- Computer Networking:A Top down Approach By James F. Kurose

            Este artículo ha sido elaborado por Arushi Dhamija. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contribute.geeksforgeeks.org o enviar tu artículo por correo a [email protected]. Verás cómo tu artículo aparece en la página principal de GeeksforGeeks y ayudarás a otros Geeks.

Deja una respuesta

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