stringtranslate.com

Gnutella

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

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

Historia

El primer cliente (también llamado Gnutella) del que la red obtuvo 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 empresa por parte de 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 de personas descargaron el programa ese día. [7] [8] El código fuente se publicaría más tarde, bajo la Licencia Pública General GNU (GPL); sin embargo, los desarrolladores originales nunca tuvieron la oportunidad de lograr este propósito. [9]

Al día siguiente, AOL detuvo la disponibilidad del programa por motivos legales e impidió a Nullsoft seguir trabajando en el proyecto. Esto no detuvo a Gnutella; Después de unos días, el protocolo había sido sometido a ingeniería inversa y comenzaron a aparecer clones compatibles , gratuitos y de código abierto . [10] Este desarrollo paralelo de diferentes clientes por diferentes grupos sigue siendo el modus operandi del desarrollo de Gnutella en la actualidad.

Entre los primeros pioneros independientes de Gnutella se encuentran 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 pioneros de código abierto. (GNU-GPL) programas para implementar el protocolo Gnutella. [13] [14] [15]

La red Gnutella es una alternativa totalmente distribuida a sistemas semicentralizados como FastTrack ( KaZaA ) y el Napster original . La popularidad inicial de la red fue impulsada por la amenaza de desaparición legal de Napster a principios de 2001. Este creciente aumento de popularidad reveló los límites de la escalabilidad del protocolo inicial. A principios de 2001, las variaciones en el protocolo (implementadas por primera vez en clientes propietarios y de código cerrado ) permitieron una mejora en la escalabilidad. En lugar de tratar a cada usuario como cliente y servidor, algunos usuarios ahora eran tratados como ultrapeers , enrutando solicitudes de búsqueda y respuestas para los usuarios conectados a ellos.

Esto permitió que la red ganara popularidad. A finales de 2001, el cliente Gnutella, LimeWire Basic, pasó a ser gratuito 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 el cliente Gnutella, gratuito y de código abierto, Gnucleus .

La palabra Gnutella hoy no se refiere a ningún proyecto o pieza de software, sino al protocolo abierto utilizado por los distintos clientes.

El nombre es un acrónimo de GNU y Nutella , la marca de una pasta 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 GNU. Gnutella no está asociado con el proyecto GNU [16] ni con la propia red peer-to-peer de GNU, GNUnet .

El 26 de octubre de 2010, el juez 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 , cuando firmó un Decreto de Consentimiento que los demandantes de la industria discográfica y LimeWire habían aceptado. Este evento fue la causa probable de una caída notable [17] en el tamaño de la red, porque, mientras negociaba la orden judicial , el personal de LimeWire había insertado un código de desactivación remota en el software. Cuando la orden judicial entró en vigor, los usuarios que habían instalado las versiones afectadas (más recientes que la 5.5.10) quedaron excluidos de la red P2P . Dado que LimeWire era software libre , nada había impedido la creación de bifurcaciones que omitían el código de desactivación, siempre y cuando no se utilizaran las marcas comerciales de LimeWire. El cierre no afectó, por ejemplo, a FrostWire , una bifurcación de LimeWire creada en 2004 que no lleva ni el código de desactivación remota ni el adware .

El 9 de noviembre de 2010, LimeWire fue resucitado por un equipo secreto de desarrolladores y lo llamó LimeWire Pirate Edition . [18] Estaba basado en LimeWire 5.6 BETA. A esta versión se le eliminaron las dependencias del servidor y se habilitaron todas las funciones PRO de forma gratuita.

Diseño

Un diagrama de los nodos de Gnutella y sus conexiones.
El protocolo de búsqueda y recuperación de gnutella.

Para imaginar cómo funcionó originalmente Gnutella, imagine un gran círculo de usuarios (llamados nodos), cada uno de los cuales tiene el software cliente Gnutella. En el inicio inicial, el software cliente debe iniciarse y encontrar al menos otro nodo. Se han utilizado varios métodos para esto, incluida una lista de direcciones preexistente de nodos que posiblemente funcionen incluidos con el software, utilizando cachés web actualizados de nodos conocidos (llamados Gnutella Web Caches ), cachés de host UDP y, rara vez, incluso IRC . Una vez conectado, el cliente solicita una lista de direcciones de trabajo. El cliente intenta conectarse a los nodos con los que se envió, así como a los nodos que recibe de otros clientes hasta que alcanza una determinada cuota. Se conecta solo a esa cantidad de nodos, almacena en caché localmente las direcciones que aún no ha probado y descarta las direcciones que probó y encontró que no eran válidas. [19]

Cuando el usuario quiere realizar una búsqueda, el cliente envía la solicitud a cada nodo conectado activamente. En la versión 0.4 del protocolo, la cantidad de nodos conectados activamente para un cliente era bastante pequeña (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, reenvían la solicitud. Esto continúa hasta que el paquete haya alcanzado un número predeterminado de saltos desde el remitente (máximo 7). [20]

Desde la versión 0.6 (2002 [21] ), Gnutella es una red compuesta formada por nodos hoja y ultranodos (también llamados ultrapeers). Los nodos hoja están conectados a una pequeña cantidad de ultrapeers (normalmente 3), mientras que cada ultrapeer está conectado a más de otros 32 ultrapeers. Con este grado superior , la cantidad máxima de saltos que puede recorrer una consulta se redujo a 4.

Las hojas y los ultrapeers utilizan el protocolo de enrutamiento de consultas para intercambiar una tabla de enrutamiento de consultas (QRT), una tabla de 64 ranuras Ki y hasta 2 ranuras Mi que constan de palabras clave hash. Un nodo hoja envía su QRT a cada uno de los ultrapeers a los que está conectado, y los ultrapeers fusionan el QRT de todas sus hojas (reducido a 128 Ki -slots) más su propio QRT (si comparten archivos) y lo intercambian con el suyo propio. vecinos. Luego, el enrutamiento de consultas se realiza aplicando hash a las palabras de la consulta y viendo si todas coinciden en el QRT. Los ultrapeers hacen esa verificación antes de reenviar una consulta a un nodo hoja, y también antes de reenviar la consulta a un ultranodo par, siempre que este sea el último salto por el que puede viajar la consulta.

Si una solicitud de búsqueda arroja un resultado, el nodo que tiene el resultado se pone en contacto con el buscador. En el protocolo clásico de Gnutella, los mensajes de respuesta se enviaban a lo largo de la ruta tomada por la consulta, ya que la consulta en sí no contenía información de identificación del nodo. Este esquema se revisó posteriormente para entregar resultados de búsqueda a través de UDP , directamente al nodo que inició la búsqueda, generalmente un ultrapar del nodo. Así, en el protocolo actual, las consultas llevan 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, haciéndola significativamente más escalable. [22]

Si el usuario decide descargar el archivo, negocia la transferencia del archivo . Si el nodo que tiene el archivo solicitado no tiene firewall , el nodo que realiza la consulta puede conectarse a él directamente. Sin embargo, si el nodo tiene un firewall, lo que impide que el nodo de origen reciba conexiones entrantes, el cliente que desea descargar un archivo envía una llamada solicitud de inserción al servidor para que el cliente remoto inicie la conexión (para enviar el archivo). . Al principio, estas solicitudes push se enrutaron a lo largo de la cadena original que utilizó para enviar la consulta. Esto era bastante poco confiable porque las rutas a menudo se interrumpían y los paquetes enrutados siempre estaban sujetos a control de flujo. Se introdujeron proxies push para abordar este problema. Suelen ser los ultrapares de un nodo hoja y se anuncian en los resultados de búsqueda. El cliente se conecta a uno de estos servidores proxy de inserción mediante una solicitud HTTP y el proxy envía una solicitud de inserción a una hoja en nombre del cliente. Normalmente, también es posible enviar una solicitud de inserción a través de UDP al proxy de inserción, lo cual es 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 confiables. En segundo lugar, reduce la cantidad de tráfico encaminado a través de la red Gnutella. [23]

Finalmente, cuando un usuario se desconecta, el software del cliente guarda una lista de nodos conocidos. Contiene los nodos a los que se conectó el cliente y los nodos aprendidos de los paquetes pong. El cliente lo utiliza como lista inicial la próxima vez que se inicia, volviéndose así independiente de los servicios de arranque. [24]

En la práctica, este método de búsqueda en la red Gnutella a menudo no era fiable. Cada nodo es un usuario habitual de computadora; como tal, se conectan y desconectan constantemente, por lo que la red nunca es completamente estable. Además, el costo del ancho de banda de la búsqueda en Gnutella creció exponencialmente con la cantidad de usuarios conectados, [25] a menudo saturando las conexiones y volviendo inútiles los nodos más lentos. Por lo tanto, las solicitudes de búsqueda a menudo se descartaban y la mayoría de las consultas llegaban sólo a una parte muy pequeña 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 de coincidencia exacta, en lugar de palabras clave. [26]

Para abordar los problemas de los cuellos de botella , los desarrolladores de Gnutella implementaron un sistema escalonado de ultrapeers y hojas . En lugar de que todos los nodos se consideraran iguales, los nodos que ingresaban a la red se mantenían en el "borde" de la red, como una hoja. Las hojas no proporcionan ruta. Los nodos que son capaces de enrutar mensajes se promocionan a ultrapeers. Los ultrapeers aceptan conexiones hoja y búsquedas de rutas y mensajes de mantenimiento de red. Esto permite que las búsquedas se propaguen más a través de la red y permite numerosas alteraciones en la topología. Esto mejoró enormemente la eficiencia y la escalabilidad. [27]

Además, gnutella adoptó otras técnicas para reducir el tráfico y hacer las búsquedas más eficientes. Los más notables son el Protocolo de enrutamiento de consultas (QRP) y las consultas dinámicas (DQ). Con QRP, una búsqueda llega sólo 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 haya obtenido suficientes resultados de búsqueda. Esto reduce enormemente la cantidad de tráfico generado por búsquedas populares. [28]

Uno de los beneficios de tener Gnutella tan descentralizado es que hace que sea muy difícil cerrar la red y convertirla en una red en la que los usuarios sean los únicos que puedan decidir qué contenido estará disponible. A diferencia de Napster , donde toda la red dependía del servidor central, Gnutella no se puede apagar apagando cualquier nodo. Una red descentralizada evita que los malos actores tomen el control del contenido de la red y/o manipulen los datos controlando el servidor central. [29]

Funciones y extensiones del protocolo

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

Estos paquetes facilitan las búsquedas. En cambio, las transferencias de archivos se manejan mediante HTTP . [31]

El desarrollo del protocolo Gnutella está liderado actualmente por el Gnutella Developers Forum (The GDF). Muchas extensiones de protocolo han sido y están siendo desarrolladas por los proveedores de software y por los desarrolladores gratuitos de Gnutella del GDF. Estas extensiones incluyen enrutamiento de consultas inteligente, sumas de verificación SHA-1 , transmisión de consultas a través de UDP , consultas a través de UDP, consultas dinámicas a través de TCP , transferencias de archivos a través de UDP, metadatos XML , intercambio de fuentes (también denominado malla de descarga ) y descarga paralela en porciones ( enjambre). [31]

Hay 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á desactualizado pero sigue siendo la última especificación de protocolo porque todas las extensiones, hasta ahora, existen como propuestas. De hecho, hoy en día es difícil o imposible conectarse con 0,4 apretones de manos. Según los desarrolladores del GDF, la versión 0.6 es lo que los nuevos desarrolladores deberían buscar utilizando las especificaciones del trabajo en progreso. [32]

El protocolo Gnutella sigue en desarrollo. A pesar de los intentos de romper con la complejidad heredada del antiguo 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. [33]

Software

Las siguientes tablas comparan información general y técnica para una serie de aplicaciones que soportan la red Gnutella. Las tablas no intentan dar una lista completa de los clientes de Gnutella . Las mesas están limitadas a clientes que pueden participar en la red actual de Gnutella.

Especificaciones generales

  Proyecto discontinuado

Características de Gnutella

Notas

  1. ^ Se refiere al chat directo de cliente a cliente; no el chat IRC, que a menudo también está disponible en la misma aplicación a través de una ventana del navegador HTTP integrada.
  2. ^ Configura automáticamente el reenvío de puertos en enrutadores o combinación de módem/puerta de enlace que admiten control UPnP.
  3. ^ El protocolo UDP confiable proporciona transferencias de NAT a NAT, a veces denominadas Firewall a Firewall o "perforación", en los casos en que el usuario no realiza o no puede realizar el reenvío de puertos .
  4. ^ Como los GWC tenían un historial de problemas de sobrecarga de tráfico y confiabilidad a largo plazo, los 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 de ultrapeers.
  2. ^ ab No tiene un grado alto , por lo que no se puede utilizar en su forma actual.
  3. ^ Versión 0.9.2.7
  4. ^ abc A través de la red Mojito DHT basada en Kademlia y compatible únicamente con LimeWire y gtk-gnutella (a partir de la versión r15750); esto es completamente diferente de las búsquedas SHA-1 admitidas por la mayoría de los clientes de gnutella.
  5. ^ gtk-gnutella versión 0.98.4 y posteriores.
  6. ^ ab Como 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. ^ ab Activación de puerto o firewall a firewall (FW2FW).
  8. ^ ab Automático con UPnP o configuración manual en las opciones del firewall LimeWire
  9. ^ A través del proxy SOCKS que puede hacer un túnel a través de SSH .
  10. ^ Desde la versión 2.2.4.0

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, [36] sino que es un protocolo completamente diferente que se bifurcó del proyecto original y se aprovechó del Nombre Gnutella. Un punto delicado para muchos desarrolladores de Gnutella es que el nombre Gnutella2 transmite una mejora o superioridad, lo que llevó a una guerra incendiaria. Otras críticas incluyeron el uso de la red Gnutella para iniciar a los pares G2 y la mala documentación del protocolo G2. Además, los reintentos de búsqueda más frecuentes del cliente Shareaza , uno de los clientes iniciales de G2, podrían sobrecargar innecesariamente la red Gnutella. [37]

Ambos protocolos han sufrido cambios significativos desde su bifurcación en 2002. G2 tiene ventajas y desventajas en comparación con Gnutella. Una ventaja que se cita a menudo es que la búsqueda híbrida de Gnutella2 es más eficiente que la inundación de consultas de Gnutella original . Sin embargo, Gnutella reemplazó la inundación de consultas con métodos de búsqueda más eficientes, comenzando con Query Routing en 2002. Esto fue propuesto en 2001 por los desarrolladores de Limewire. [38] [39] [40] Una ventaja de Gnutella es su gran base de usuarios, que asciende a millones, [3] . La red G2 es aproximadamente un orden de magnitud más pequeña. [41] Es difícil comparar los protocolos en su forma actual. La elección del cliente, en cualquiera de las redes, probablemente afecte igualmente al usuario final.

Ver también

Referencias

  1. ^ Kushner, David (13 de enero de 2004). "El friki más peligroso del mundo". Piedra rodante . Archivado desde el original el 30 de junio de 2012 . Consultado el 10 de mayo de 2011 .
  2. ^ Slyck News: eDonkey2000 casi duplica el tamaño de FastTrack Archivado el 29 de enero de 2018 en Wayback Machine , Thomas Mennecke para Slyck.com , 2 de junio de 2005.
  3. ^ ab 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 uno. 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 desde el original el 15 de abril de 2015 . Consultado el 13 de abril de 2017 .
  6. ^ Después del amanecer.com. "Gnutella". Después del amanecer . Archivado desde el original el 14 de abril de 2017 . Consultado el 13 de abril de 2017 .
  7. ^ "Napster de código abierto: Gnutella - Slashdot". slashdot.org . Archivado desde el original el 24 de marzo de 2019 . Consultado el 24 de marzo de 2019 .
  8. ^ "CNN - Noticias de última hora, últimas noticias y vídeos". CNN . Archivado desde el original el 20 de junio de 2000 . Consultado el 24 de marzo de 2019 .
  9. ^ "Con respecto a Gnutella - Proyecto GNU - Free Software Foundation". Archivado desde el original el 16 de marzo de 2015 . Consultado el 17 de marzo de 2015 .
  10. ^ Schell, Bernadette Hlubik; Schell, Bernadette; Martín, Clemens (5 de septiembre de 2006). Diccionario Webster's New World Hacker. John Wiley e hijos. ISBN 978-0-470-04752-1. Archivado desde el 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 desde el original el 16 de abril de 2015 . Consultado el 13 de abril de 2017 .
  12. ^ "Muere el pionero de Gnutella, Gene Kan". CNET . Archivado desde el original el 16 de abril de 2015 . Consultado el 13 de abril de 2017 .
  13. ^ "listado de archivos gnubile". stearns.org . Archivado desde el 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 desde el original el 4 de marzo de 2016 . Consultado el 13 de abril de 2017 .
  15. ^ ftp://ftp.cs.umn.edu/pub/netbsd/NetBSD-current/pkgsrc/net/gnubile/README.html [ enlace muerto permanente ]
  16. ^ "Con respecto a Gnutella (www.gnu.org)". Archivado desde el original el 16 de marzo de 2015 . Consultado el 17 de marzo de 2015 .
  17. ^ Chloe Albanesius (18 de julio de 2011). "Los sellos independientes demandan a LimeWire por un acuerdo de derechos de autor fallido". Revista PC . Ziff-Davis. Archivado desde el original el 2 de febrero de 2016 . Consultado el 19 de marzo de 2012 . A raíz del cierre de LimeWire, el porcentaje de usuarios de Internet de EE. UU. que acceden a servicios de intercambio de archivos P2P cayó aproximadamente un 7 por ciento desde [su] máximo histórico en 2007...
  18. ^ Chloe Albanesius (9 de noviembre de 2010). "Informe: LimeWire 'resucitado' por el equipo de desarrollo secreto". Revista PC . Ziff-Davis. Archivado desde el original el 12 de julio de 2017 . Consultado el 19 de marzo de 2012 .
  19. ^ "Cómo funciona el descubrimiento automático: Amazon ElastiCache". docs.aws.amazon.com . Consultado el 8 de junio de 2023 .
  20. ^ Luna, Jongbae; Cho, Yongyun (2011). "Un sistema inventivo basado en puntos para evitar el parasitismo en entornos de red p2p". Ciencia computacional y sus aplicaciones - Actas de ICCSA 2011 . Saltador. pag. 464.ISBN _ 978-3-642-21897-2. Archivado desde el original el 17 de enero de 2023 . Consultado el 10 de marzo de 2022 .
  21. ^ "Desarrollo del protocolo Gnutella". rfc-gnutella.sourceforge.net . Archivado desde el original el 12 de mayo de 2017 . Consultado el 13 de abril de 2017 .
  22. ^ Ripeanu, Matei; Nakai, Yugo. "Topología de la red Gnutella: descubrimiento y análisis". {{cite journal}}: Citar diario requiere |journal=( ayuda )
  23. ^ "Clientes de Gnutella que aún funcionan". Ownd de apreasnisuf1984 (en japonés). 2022-05-09 . Consultado el 8 de junio de 2023 .
  24. ^ Franzoni, Federico; Daza, Vanesa (2022). "SoK: ataques a nivel de red a la red P2P de Bitcoin". Acceso IEEE . 10 : 94924–94962. doi :10.1109/ACCESS.2022.3204387. hdl : 10230/55353 . ISSN  2169-3536. S2CID  252106900.
  25. ^ Por qué Gnutella no puede escalar. No realmente. Archivado el 6 de agosto de 2017 en Wayback Machine en febrero de 2001.
  26. ^ Hasselbring, Wilhelm (1 de enero de 2004). "Una red jerárquica de super pares para el desarrollo de software distribuido". {{cite journal}}: Citar diario requiere |journal=( ayuda )
  27. ^ "Topología de red: descripción general | Temas de ScienceDirect". www.sciencedirect.com . Consultado el 8 de junio de 2023 .
  28. ^ "DQ en árabe - Diccionario inglés-árabe | Glosbe". glosbe.com . Consultado el 8 de junio de 2023 .
  29. ^ Berkes, Jem (9 de abril de 2003). "Arquitectura de red descentralizada punto a punto: Gnutella y Freenet" (PDF) . berkes.ca/ . Universidad de Manitoba. Archivado desde el original (PDF) el 8 de agosto de 2017 . Consultado el 26 de octubre de 2019 .
  30. ^ Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de red', Cisco Networking Academy, Cisco Press, capítulo 3. p91
  31. ^ ab Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Fundamentos de red', Cisco Networking Academy, Cisco Press, capítulo 3. p90
  32. ^ "Desarrollo del protocolo Gnutella". rfc-gnutella.sourceforge.net . Archivado desde el original el 6 de diciembre de 2022 . Consultado el 21 de julio de 2022 .
  33. ^ Tyson, Gareth. "Un enfoque de middleware para crear aplicaciones centradas en el contenido". {{cite journal}}: Citar diario requiere |journal=( ayuda )
  34. ^ "CitrixWire". HermanoSoft . Archivado desde el original el 14 de abril de 2017 . Consultado el 13 de abril de 2017 .
  35. ^ "Página de descarga de Shareaza en el sitio web de Sourceforge". FuenteForge . Consultado el 6 de julio de 2019 .
  36. ^ Gnutella vs. Gnutella2, Parte 2 Archivado el 28 de julio de 2012 en Wayback Machine Thomas Mennecke para Slyck.com , 25 de febrero de 2003.
  37. ^ 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
  38. ^ Una comparación de métodos de búsqueda entre pares Archivado el 26 de septiembre de 2007 en Wayback Machine Dimitrios Tsoumakos, 2003
  39. ^ Enrutamiento de consultas para la propuesta de la red Gnutella Archivado el 24 de septiembre de 2015 en Wayback Machine Christopher Rohrs, 18 de diciembre de 2001
  40. ^ Enrutamiento de consultas para Gnutella Network 1.0 Archivado el 24 de septiembre de 2015 en Wayback Machine Christopher Rohrs, 16 de mayo de 2002
  41. ^ Estadísticas de la red G2 Archivado el 1 de mayo de 2010 en Wayback Machine Población ~ 200.000 habitantes, enero de 2010.

enlaces externos