Articulo de referencia

Gnutella

Gnutella es un protocolo de red peer-to-peer . Fundada en 2000, fue la primera red peer-to-peer descentralizada de su tipo, lo que llevó a que otras redes posteriores adoptaran ...

Gnutella es un protocolo de red peer-to-peer . Fundada en 2000, fue la primera red peer-to-peer descentralizada de su tipo, lo que llevó a que otras redes posteriores adoptaran el modelo. [ 1 ]

En junio de 2005, la población de Gnutella era de 1,81 millones de computadoras [ 2 ] aumentando a más de tres millones de nodos en enero de 2006. [ 3 ] A finales de 2007, era la red de intercambio de archivos más popular en Internet con una cuota de mercado estimada de más del 40%. [ 4 ]

Historia

El primer cliente (también llamado Gnutella) del que la red tomó su nombre [ 5 ] [ 6 ] fue desarrollado por Justin Frankel y Tom Pepper de Nullsoft a principios de 2000, poco después de la adquisición de la compañía por AOL . El 14 de marzo, el programa estuvo disponible para su descarga en los servidores de Nullsoft. El evento se anunció prematuramente en Slashdot , y miles descargaron el programa ese día. [ 7 ] [ 8 ] El código fuente iba a ser publicado más tarde, bajo la Licencia Pública General de GNU (GPL); sin embargo, los desarrolladores originales nunca tuvieron la oportunidad de hacerlo. [ 9 ]

Al día siguiente, AOL retiró el programa de su sitio web por motivos legales e impidió que Nullsoft continuara trabajando en el proyecto. Esto no detuvo a Gnutella; pocos días después, se había aplicado ingeniería inversa al protocolo y comenzaron a aparecer clones compatibles, gratuitos y de código abierto . [ 10 ] Este desarrollo paralelo de diferentes clientes por distintos grupos sigue siendo el modus operandi del desarrollo de Gnutella en la actualidad.

Entre los primeros pioneros independientes de Gnutella se encontraban Gene Kan y Spencer Kimball , quienes lanzaron el primer portal destinado a reunir a la comunidad de código abierto para trabajar en Gnutella [ 11 ] [ 12 ] y también desarrollaron "GNUbile", uno de los primeros programas de código abierto (GNU-GPL) para implementar el protocolo Gnutella. [ 13 ] [ 14 ]

La red Gnutella es una alternativa totalmente distribuida a sistemas semicentralizados como FastTrack ( KaZaA ) y el Napster original . Su popularidad inicial se vio impulsada por la amenaza de quiebra legal de Napster a principios de 2001. Este auge de popularidad puso de manifiesto las limitaciones de escalabilidad del protocolo original. A principios de 2001, algunas variaciones del protocolo (implementadas inicialmente en clientes propietarios y de código cerrado ) permitieron mejorar la escalabilidad. En lugar de tratar a cada usuario como cliente y servidor, algunos usuarios pasaron a ser considerados como "superpeers" , enrutando las solicitudes y respuestas de búsqueda para los usuarios conectados a ellos.

Esto permitió que la red ganara popularidad. A finales de 2001, el cliente de Gnutella, LimeWire Basic, se convirtió en software libre y de código abierto. En febrero de 2002, Morpheus , un grupo comercial de intercambio de archivos, abandonó su software peer-to-peer basado en FastTrack y lanzó un nuevo cliente basado en Gnucleus , el cliente de Gnutella gratuito y de código abierto .

Hoy en día, la palabra Gnutella no se refiere a ningún proyecto o programa informático en particular, sino al protocolo abierto utilizado por los distintos clientes.

El nombre es una combinación de GNU y Nutella , la marca de una crema para untar italiana con sabor a avellana: supuestamente, Frankel y Pepper comieron mucha Nutella mientras trabajaban en el proyecto original y tenían la intención de licenciar su programa terminado bajo la Licencia Pública General de GNU. Gnutella no está asociada con el proyecto GNU [ 15 ] ni con la red peer-to-peer de GNU, GNUnet .

El 26 de octubre de 2010, la jueza Kimba Wood del Tribunal de Distrito de los Estados Unidos para el Distrito Sur de Nueva York ordenó el cierre del popular cliente de Gnutella, LimeWire , al firmar un Decreto de Consentimiento al que habían llegado los demandantes de la industria discográfica y LimeWire. Este evento fue la causa probable de una notable caída [ 16 ] en el tamaño de la red, ya que, durante la negociación de la orden judicial , el personal de LimeWire había insertado código de desactivación remota en el software. Al entrar en vigor la orden judicial, los usuarios que habían instalado versiones afectadas (posteriores a la 5.5.10) quedaron aislados de la red P2P . Dado que LimeWire era software libre , nada impidió la creación de bifurcaciones que omitían el código de desactivación, siempre y cuando no se utilizaran las marcas registradas de LimeWire. El cierre no afectó, por ejemplo, a FrostWire , una bifurcación de LimeWire creada en 2004 que no contiene ni el código de desactivación remota ni adware .

El 9 de noviembre de 2010, LimeWire fue resucitado por un equipo secreto de desarrolladores y rebautizado como LimeWire Pirate Edition . [ 17 ] Se basó en LimeWire 5.6 BETA. Esta versión tenía sus dependencias de servidor eliminadas y todas las funciones PRO habilitadas de forma gratuita.

Diseño

Diagrama de los nodos de Gnutella y sus conexiones.
Protocolo de búsqueda y recuperación de Gnutella

Para visualizar cómo funcionaba originalmente Gnutella, imaginemos un gran círculo de usuarios (llamados nodos), cada uno con el software cliente de Gnutella. Al iniciarse, el software cliente debe inicializarse y encontrar al menos otro nodo. Se han utilizado varios métodos para esto, incluyendo una lista de direcciones preexistente de nodos que posiblemente funcionen, incluida con el software, el uso de cachés web actualizadas de nodos conocidos (llamadas cachés web de Gnutella ), cachés de host UDP e, incluso, en raras ocasiones, IRC . Una vez conectado, el cliente solicita una lista de direcciones que funcionen. El cliente intenta conectarse a los nodos con los que se distribuyó, así como a los nodos que recibe de otros clientes, hasta alcanzar una cierta cuota. Se conecta solo a esa cantidad de nodos, almacenando en caché localmente las direcciones que aún no ha probado y descartando las que probó y encontró inválidas. [ 18 ]

Cuando el usuario desea realizar una búsqueda, el cliente envía la solicitud a cada nodo conectado activamente. En la versión 0.4 del protocolo, el número de nodos conectados activamente para un cliente era bastante pequeño (alrededor de 5). En esa versión del protocolo, cada nodo reenvía la solicitud a todos sus nodos conectados activamente, quienes, a su vez, la reenvían. Esto continúa hasta que el paquete alcanza un número predeterminado de saltos desde el remitente (máximo 7). [ 19 ]

Desde la versión 0.6 (2002 [ 20 ] ), Gnutella es una red compuesta formada por nodos hoja y ultranodos (también llamados ultrapares). Los nodos hoja están conectados a un número reducido de ultrapares (normalmente 3), mientras que cada ultrapare está conectado a más de 32 ultrapares. Con este mayor grado de salida , el número máximo de saltos que puede recorrer una consulta se redujo a 4.

Los nodos hoja y los ultrapeers utilizan el Protocolo de Enrutamiento de Consultas (QRT) para intercambiar una Tabla de Enrutamiento de Consultas (QRT), una tabla de 64 ranuras Ki y hasta 2 ranuras Mi que consta de palabras clave con hash. Un nodo hoja envía su QRT a cada uno de los ultrapeers a los que está conectado, y los ultrapeers combinan la QRT de todos sus nodos hoja (reducida a 128 ranuras Ki ) más su propia QRT (si comparten archivos) y la intercambian con sus vecinos. El enrutamiento de consultas se realiza aplicando un hash a las palabras de la consulta y comprobando si todas coinciden en la QRT. Los ultrapeers realizan esta comprobación antes de reenviar una consulta a un nodo hoja, y también antes de reenviarla a un ultranodo par, siempre que este sea el último salto que la consulta pueda recorrer.

Si una solicitud de búsqueda arroja un resultado, el nodo que lo posee se comunica con quien realizó la búsqueda. En el protocolo clásico de Gnutella, los mensajes de respuesta se enviaban de vuelta a través de la ruta seguida por la consulta, ya que esta no contenía información de identificación del nodo. Este esquema se revisó posteriormente para entregar los resultados de búsqueda a través de UDP , directamente al nodo que inició la búsqueda, generalmente un ultrapeer del nodo. Por lo tanto, en el protocolo actual, las consultas incluyen la dirección IP y el número de puerto de cualquiera de los nodos. Esto reduce la cantidad de tráfico enrutado a través de la red Gnutella, lo que la hace significativamente más escalable. [ 21 ]

Si el usuario decide descargar el archivo, negocia la transferencia . Si el nodo que contiene el archivo solicitado no está bloqueado por un firewall , el nodo que realiza la consulta puede conectarse directamente. Sin embargo, si el nodo está bloqueado por un firewall, impidiendo que el nodo de origen reciba conexiones entrantes, el cliente que desea descargar un archivo le envía una solicitud de envío al servidor para que el cliente remoto inicie la conexión (para enviar el archivo). Inicialmente, estas solicitudes de envío se enrutaban a lo largo de la cadena original que se utilizó para enviar la consulta. Esto resultaba poco fiable, ya que las rutas solían romperse y los paquetes enrutados siempre están sujetos al control de flujo. Para solucionar este problema, se introdujeron los proxies de envío . Estos suelen ser los ultrapeers de un nodo hoja y se anuncian en los resultados de búsqueda. El cliente se conecta a uno de estos proxies de envío mediante una solicitud HTTP y el proxy envía una solicitud de envío a un nodo hoja en nombre del cliente. Normalmente, también es posible enviar una solicitud de envío a través de UDP al proxy de envío, lo que resulta más eficiente que usar TCP. Los proxies push tienen dos ventajas: Primero, las conexiones ultrapeer-leaf son más estables que las rutas. Esto hace que las solicitudes push sean mucho más fiables. Segundo, reduce la cantidad de tráfico enrutado a través de la red Gnutella. [ 22 ]

Finalmente, cuando un usuario se desconecta, el software cliente guarda una lista de nodos conocidos. Esta lista contiene los nodos a los que el cliente estaba conectado y los nodos aprendidos a partir de paquetes pong. El cliente utiliza esta lista como su lista semilla cuando se inicia de nuevo, independizándose así de los servicios de arranque. [ 23 ]

En la práctica, este método de búsqueda en la red Gnutella solía ser poco fiable. Cada nodo es un usuario informático común; por lo tanto, se conectan y desconectan constantemente, lo que impide que la red sea completamente estable. Además, el coste de ancho de banda de la búsqueda en Gnutella aumentaba exponencialmente con el número de usuarios conectados, [ 24 ] saturando a menudo las conexiones e inutilizando los nodos más lentos. En consecuencia, las solicitudes de búsqueda se descartaban con frecuencia y la mayoría de las consultas solo llegaban a una pequeña parte de la red. Esta observación identificó la red Gnutella como un sistema distribuido no escalable e inspiró el desarrollo de tablas hash distribuidas , que son mucho más escalables pero solo admiten búsquedas por coincidencia exacta, en lugar de búsquedas por palabras clave. [ 25 ]

Para solucionar los problemas de cuellos de botella , los desarrolladores de Gnutella implementaron un sistema jerárquico de ultrapeers y leaves . En lugar de considerar a todos los nodos iguales, los nodos que ingresaban a la red se ubicaban en el borde, como leafs. Los leafs no proporcionan enrutamiento. Los nodos capaces de enrutar mensajes se convierten en ultrapeers. Los ultrapeers aceptan conexiones leaf, búsquedas de rutas y mensajes de mantenimiento de red. Esto permite que las búsquedas se propaguen a través de la red y facilita numerosas modificaciones en la topología. Esto mejoró notablemente la eficiencia y la escalabilidad.

Además, gnutella adoptó varias técnicas para reducir la sobrecarga de tráfico y hacer que las búsquedas sean más eficientes. Las más destacadas son el Protocolo de Enrutamiento de Consultas (QRP) y la Consulta Dinámica (DQ). Con QRP, una búsqueda llega solo a aquellos clientes que probablemente tengan los archivos, por lo que las búsquedas de archivos raros se vuelven mucho más eficientes. Con DQ, la búsqueda se detiene tan pronto como el programa ha obtenido suficientes resultados. Esto reduce enormemente la cantidad de tráfico causado por las búsquedas populares. [ 26 ]

Una de las ventajas de la descentralización de Gnutella es que dificulta enormemente su cierre y la convierte en una red donde solo los usuarios pueden decidir qué contenido estará disponible. A diferencia de Napster , donde toda la red dependía de un servidor central, Gnutella no puede cerrarse desactivando un solo nodo. Una red descentralizada impide que actores malintencionados tomen el control del contenido de la red o manipulen los datos controlando el servidor central. [ 27 ]

Características y extensiones del protocolo

Gnutella alguna vez operó con un protocolo basado puramente en inundación de consultas . El protocolo de red obsoleto de la versión 0.4 de Gnutella emplea cinco tipos de paquetes diferentes, a saber: [ 28 ]

  • ping: descubre hosts en la red
  • pong: respuesta a ping
  • consulta: buscar un archivo
  • Resultado de la consulta: respuesta a la consulta
  • push: solicitud de descarga para servidores protegidos por cortafuegos

Estos paquetes facilitan las búsquedas. Las transferencias de archivos se gestionan mediante HTTP . [ 29 ]

El desarrollo del protocolo Gnutella está liderado actualmente por el Foro de Desarrolladores de Gnutella (GDF). Numerosas extensiones del protocolo han sido y siguen siendo desarrolladas por los proveedores de software y por los desarrolladores de Gnutella del GDF. Estas extensiones incluyen enrutamiento inteligente de consultas, sumas de verificación SHA-1 , transmisión de resultados de consultas mediante UDP , consultas mediante UDP, consultas dinámicas mediante TCP , transferencias de archivos mediante UDP, metadatos XML , intercambio de fuentes (también denominado red de descargas ) y descarga paralela en segmentos (enjambre). [ 29 ]

Se están realizando esfuerzos para finalizar estas extensiones de protocolo en la especificación Gnutella 0.6, en el sitio web de desarrollo del protocolo Gnutella. El estándar Gnutella 0.4 está obsoleto, pero sigue siendo la especificación de protocolo más reciente porque todas las extensiones, hasta el momento, existen como propuestas. De hecho, es difícil o imposible conectarse hoy en día con los handshakes de la versión 0.4. Según los desarrolladores del GDF, la versión 0.6 es la que los nuevos desarrolladores deberían seguir utilizando las especificaciones en desarrollo . [ 30 ]

El protocolo Gnutella sigue en desarrollo. A pesar de los intentos por romper definitivamente con la complejidad heredada de la antigua versión Gnutella 0.4 y diseñar una nueva arquitectura de mensajes limpia, sigue siendo uno de los protocolos de intercambio de archivos más exitosos hasta la fecha. [ 31 ]

Software

Las siguientes tablas comparan información general y técnica de varias aplicaciones compatibles con la red Gnutella. Estas tablas no pretenden ofrecer una lista completa de los clientes de Gnutella , sino que se limitan a los clientes que pueden participar en la red Gnutella actual.

Especificaciones generales

  Proyecto descontinuado

Características de Gnutella

Notas

  1. Se refiere al chat directo de cliente a cliente; no al chat IRC, que a menudo también está disponible en la misma aplicación a través de una ventana de navegador HTTP integrada.
  2. Configura automáticamente el reenvío de puertos en routers o módems/pasarelas combinados que admiten el control UPnP.
  3. El protocolo UDP confiable proporciona transferencias de NAT a NAT, a veces llamadas de firewall a firewall o "perforación de agujeros", en casos donde el reenvío de puertos no es o no puede ser realizado por el usuario.
  4. Dado que los GWC tenían un historial de problemas con la sobrecarga de tráfico y la fiabilidad a largo plazo, las cachés de host UDP se convirtieron en el método de arranque preferido; aunque algunos GWC siguen estando disponibles para software más antiguo.
  1. Solo modo cliente, como hoja dependiente en ultrapeers.
  2. 1 2 No tiene un grado de salida alto, por lo que no se puede utilizar en su forma actual.
  3. Versión 0.9.2.7
  4. 1 2 3 A través de la red DHT Mojito basada en Kademlia , compatible únicamente con LimeWire y gtk-gnutella (a partir de la versión r15750); esto es completamente diferente de las búsquedas SHA-1 compatibles con la mayoría de los clientes de gnutella.
  5. gtk-gnutella versión 0.98.4 y posteriores.
  6. 1 2 Dado que el cliente LimeWire ya no está disponible, los clientes que comparten la mayor parte del código base de LimeWire, como FrostWire , pueden proporcionar una alternativa.
  7. 1 2 Activación de puerto o firewall a firewall (FW2FW).
  8. 1 2 Automático con UPnP o configuración manual en las opciones del firewall LimeWire
  9. Mediante proxy SOCKS que puede tunelizar a través de SSH .
  10. Desde la versión 2.2.4.0
  • Morpheus difiere significativamente y puede tener un código completamente independiente del motor GnucDNA. Morpheus puede funcionar como un ultrapeer moderno , mientras que otros clientes de GnucDNA no pueden.
  • Gnucleus y Kiwi Alpha utilizan el motor GnucDNA .
  • BearFlix , una versión con funciones limitadas de la serie BearShare 5.2, solo permite buscar imágenes o vídeos, y los vídeos compartidos tienen una duración relativamente corta.
  • giFTcurs , Apollon , FilePipe , giFToxic , giFTui, giFTwin32 , KCeasy , Poisoned y Xfactor son interfaces gráficas de usuario para el motor giFT .
  • etomi utiliza código de red Shareaza obsoleto .
  • MP3 Rocket, 360Share, LemonWire, MP3Torpedo y DexterWire son variantes de LimeWire .
  • FrostWire (hasta la versión 4.21.8) es casi idéntico a LimeWire 4.18, pero las versiones superiores a la 5.00 ya no utilizan gnutella.
  • Acquisition y Cabos son interfaces personalizadas que se superponen al motor LimeWire .
  • LimeWire Pirate Edition (5.6.2) es una versión resucitada de la versión alfa no publicada de LimeWire 5.6.1, por lo que tiene características similares, excepto las actualizaciones automáticas (con sus molestos avisos) y se eliminaron los controles remotos centralizados para deshabilitar funciones básicas como las búsquedas y las descargas.

Gnutella2

El protocolo Gnutella2 (a menudo denominado G2), a pesar de su nombre, no es un protocolo sucesor de Gnutella ni está relacionado con el proyecto Gnutella original, [ 34 ] sino que es un protocolo completamente diferente que se bifurcó del proyecto original y se apropió del nombre Gnutella. Un punto delicado para muchos desarrolladores de Gnutella es que el nombre Gnutella2 transmite una mejora o superioridad, lo que provocó una acalorada discusión . Otras críticas incluyeron el uso de la red Gnutella para impulsar pares G2 y la deficiente documentación del protocolo G2. Además, los reintentos de búsqueda más frecuentes del cliente Shareaza , uno de los clientes G2 iniciales, podrían sobrecargar innecesariamente la red Gnutella. [ 35 ]

Ambos protocolos han experimentado cambios significativos desde la bifurcación en 2002. G2 tiene ventajas y desventajas en comparación con Gnutella. Una ventaja frecuentemente citada es que la búsqueda híbrida de Gnutella2 es más eficiente que la inundación de consultas del Gnutella original . Sin embargo, Gnutella reemplazó la inundación de consultas con métodos de búsqueda más eficientes, comenzando con el enrutamiento de consultas en 2002. Esto fue propuesto en 2001 por los desarrolladores de Limewire. [ 36 ] [ 37 ] [ 38 ] Una ventaja de Gnutella es su gran base de usuarios, que asciende a millones. [ 3 ] La red G2 es aproximadamente un orden de magnitud menor. [ 39 ] Es difícil comparar los protocolos en su forma actual. La elección del cliente, en cualquiera de las redes, probablemente afecta al usuario final de la misma manera.

Véase también

Referencias

  1. Kushner, David (13 de enero de 2004). "El geek más peligroso del mundo" . Rolling Stone . Consultado el 10 de mayo de 2011 .{{cite magazine}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  2. Noticias de Slyck - eDonkey2000 casi duplica el tamaño de FastTrack Archivado el 29/01/2018 en Wayback Machine , Thomas Mennecke para Slyck.com , 2 de junio de 2005.
  3. 1 2 Sobre la evolución a largo plazo de la superposición de Gnutella de dos niveles Archivado el 10 de agosto de 2017 en Wayback Machine . Rasti, Stutzbach, Rejaie, 2006. Véase la figura 2a.
  4. Estudio de Ars Technica: BitTorrent experimenta un gran crecimiento, LimeWire sigue siendo la aplicación P2P número 1. Archivado el 16 de diciembre de 2008 en Wayback Machine. Eric Bangeman, 21 de abril de 2008.
  5. "Nullsoft de AOL crea software para intercambiar MP3" . CNET . Archivado del original el 15 de abril de 2015. Consultado el 13 de abril de 2017 .
  6. AfterDawn.com. "Gnutella" . AfterDawn . Archivado del original el 14 de abril de 2017. Consultado el 13 de abril de 2017 .
  7. "Napster de código abierto: Gnutella - Slashdot" . slashdot.org . 14 de marzo de 2000. Archivado del original el 24 de marzo de 2019. Consultado el 24 de marzo de 2019 .
  8. "CNN - Noticias de última hora, noticias y vídeos" . CNN . Archivado del original el 20 de junio de 2000. Consultado el 24 de marzo de 2019 .
  9. "Acerca de Gnutella - Proyecto GNU - Fundación del Software Libre" . Archivado del original el 16 de marzo de 2015. Consultado el 17 de marzo de 2015 .
  10. Schell, Bernadette Hlubik; Schell, Bernadette; Martin, Clemens (5 de septiembre de 2006). Diccionario Webster's New World Hacker . John Wiley & Sons. ISBN 978-0-470-04752-1Archivado del original el 17 de enero de 2023. Consultado el 2 de octubre de 2020 .
  11. "Los programadores ayudan a que los clones de "Napster" despeguen" . CNET . Archivado del original el 16 de abril de 2015. Consultado el 13 de abril de 2017 .
  12. "Muere Gene Kan, pionero de la Gnutella" . CNET . Archivado del original el 16 de abril de 2015. Consultado el 13 de abril de 2017 .
  13. "listado de archivos gnubile" . stearns.org . Archivado del original el 22 de abril de 2016. Consultado el 13 de abril de 2017 .
  14. "El código fuente de Gnubile" . underpop.free.fr . Archivado del original el 4 de marzo de 2016. Consultado el 13 de abril de 2017 .
  15. "Acerca de Gnutella (www.gnu.org)" . Archivado del original el 16 de marzo de 2015. Consultado el 17 de marzo de 2015 .
  16. Chloe Albanesius (18 de julio de 2011). "Sellos independientes demandan a LimeWire por un acuerdo de derechos de autor fallido" . PC Magazine . Ziff-Davis. Archivado del original el 2 de febrero de 2016. Recuperado el 19 de marzo de 2012. Tras el cierre de LimeWire, el porcentaje de usuarios de Internet en EE. UU. que acceden a servicios de intercambio de archivos P2P cayó aproximadamente un 7 % desde su máximo histórico en 2007...
  17. Chloe Albanesius (9 de noviembre de 2010). "Informe: LimeWire 'resucitado' por un equipo de desarrollo secreto" . PC Magazine . Ziff-Davis. Archivado del original el 12 de julio de 2017. Recuperado el 19 de marzo de 2012 .
  18. "Cómo funciona el descubrimiento automático - Amazon ElastiCache" . docs.aws.amazon.com . Archivado del original el 30/03/2023 . Consultado el 08/06/2023 .
  19. Moon, Jongbae; Cho, Yongyun (2011). "Un sistema inventivo basado en puntos para prevenir el aprovechamiento indebido en entornos de redes P2P" . Ciencias Computacionales y sus Aplicaciones - Actas de ICCSA 2011. Springer. pág. 464. ISBN  978-3-642-21897-2Archivado del original el 17 de enero de 2023. Consultado el 10 de marzo de 2022 .
  20. "Desarrollo del protocolo Gnutella" . rfc-gnutella.sourceforge.net . Archivado del original el 12 de mayo de 2017. Consultado el 13 de abril de 2017 .
  21. Ripeanu, Matei; Nakai, Yugo. Topología de la red de Gnutella: descubrimiento y análisis (Informe). Archivado del original el 3 de noviembre de 2023. Consultado el 8 de junio de 2023 .
  22. "Clientes de Gnutella que aún trabajan" . Ownd de apreasnisuf1984 (en japonés). 09/05/2022. Archivado del original el 03/11/2023 . Consultado el 08/06/2023 .
  23. Franzoni, Federico; Daza, Vanesa (2022). "SoK: Ataques a nivel de red en la red P2P de Bitcoin" . IEEE Access . 10 : 94924–94962 . Bibcode : 2022IEEEA..1094924F . doi : 10.1109/ACCESS.2022.3204387 . hdl : 10230/55353 .
  24. Por qué Gnutella no puede escalar. En serio. Archivado el 6 de agosto de 2017 en Wayback Machine, febrero de 2001.
  25. Bischofs, Ludger; Hasselbring, Wilhelm (septiembre de 2004). Una red jerárquica de supernodos para el desarrollo de software distribuido . Actas del taller CSSE 2004 sobre soporte cooperativo para procesos de ingeniería de software distribuido. Sociedad Austriaca de Informática. págs. 99–106 . 
  26. "DQ en árabe - Diccionario inglés-árabe | Glosbe" . glosbe.com . Archivado del original el 9 de abril de 2024. Consultado el 8 de junio de 2023 .
  27. Berkes, Jem (9 de abril de 2003). "Arquitectura de red peer-to-peer descentralizada: Gnutella y Freenet" (PDF) . berkes.ca/ . Universidad de Manitoba. Archivado del original (PDF) el 8 de agosto de 2017. Recuperado el 26 de octubre de 2019 .
  28. Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de redes', Cisco Networking Academy, Cisco Press, Cap. 3, pág. 91
  29. 1 2 Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de redes', Cisco Networking Academy, Cisco Press, Cap. 3, pág. 90
  30. "Desarrollo del protocolo Gnutella" . rfc-gnutella.sourceforge.net . Archivado del original el 6 de diciembre de 2022. Consultado el 21 de julio de 2022 .
  31. Tyson, Gareth (2010). Un enfoque de middleware para la creación de aplicaciones centradas en el contenido (Tesis).
  32. "CitrixWire" . BrotherSoft . Archivado del original el 14 de abril de 2017. Consultado el 13 de abril de 2017 .
  33. "Página de descarga de Shareaza en el sitio web de SourceForge" . SourceForge . Consultado el 6 de julio de 2019 .
  34. Gnutella vs. Gnutella2, Parte 2 Archivado el 28-07-2012 en Wayback Machine Thomas Mennecke para Slyck.com , 25 de febrero de 2003.
  35. Gnutella vs. Gnutella2, Parte 1 Archivado el 5 de marzo de 2016 en Wayback Machine Thomas Mennecke para Slyck.com , 25 de febrero de 2003
  36. Comparación de métodos de búsqueda entre pares. Archivado el 26 de septiembre de 2007 en Wayback Machine. Dimitrios Tsoumakos, 2003.
  37. Enrutamiento de consultas para la propuesta de la red Gnutella Archivado el 24/09/2015 en Wayback Machine Christopher Rohrs, 18/12/2001
  38. Enrutamiento de consultas para la red Gnutella 1.0 Archivado el 24/09/2015 en Wayback Machine Christopher Rohrs, 16/05/2002
  39. Estadísticas de la red G2 Archivadas el 1 de mayo de 2010 en Wayback Machine Población ~200.000 Enero de 2010.
  • Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de redes', Cisco Networking Academy, Cisco Press, Cap. 3, pág. 91
  • Dye, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de redes', Cisco Networking Academy, Cisco Press, Cap. 3, pág. 90
  • Sitio web oficial de Gnutella (en Internet Archive)