Gnutella es una gran red peer-to-peer . Fue la primera red peer-to-peer descentralizada de su tipo, lo que llevó a otras redes posteriores a adoptar el modelo. [1] El 14 de marzo de 2020 celebró dos décadas de existencia y tiene una base de usuarios de millones para el intercambio de archivos de igual a igual .
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 de intercambio de 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 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 cuestiones legales y evitó que Nullsoft siguiera trabajando en el proyecto. Esto no detuvo a Gnutella; Después de unos días, el protocolo había sido modificado por ingeniería inversa y comenzaron a aparecer clones compatibles de código abierto y gratuito . [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 estuvieron 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 (GNU-GPL) 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 estimulada por la amenaza de desaparición legal de Napster a principios de 2001. Este aumento de popularidad reveló los límites de la escalabilidad del protocolo inicial. A principios de 2001, las variaciones del protocolo (implementado 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 creciera en popularidad. A finales de 2001, el cliente de 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 de código abierto y gratuito Gnucleus .
La palabra Gnutella hoy se refiere no a un proyecto o pieza de software en particular, sino al protocolo abierto utilizado por los distintos clientes.
El nombre es un acrónimo de GNU y Nutella , el nombre comercial de una crema para untar con sabor a avellana italiana: supuestamente, Frankel y Pepper comieron mucho Nutella trabajando 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, 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, cuando firmó un Decreto de Consentimiento al que los demandantes de la industria discográfica y LimeWire habían acordado. 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 entró en vigor la medida cautelar, los usuarios que habían instalado las versiones afectadas (más recientes que la 5.5.10) fueron desconectados de la red P2P . Dado que LimeWire era software gratuito , nada había impedido la creación de bifurcaciones que omitieran el código de desactivación, siempre que 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 nombrado LimeWire Pirate Edition . [18] 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
Para visualizar cómo funcionaba originalmente Gnutella, imagine un gran círculo de usuarios (llamados nodos), cada uno de los cuales tiene el software cliente de Gnutella. En el arranque inicial, el software de cliente debe arrancar y encontrar al menos otro nodo. Se han utilizado varios métodos para esto, incluida una lista de direcciones preexistente de nodos posiblemente en funcionamiento enviados con el software, utilizando cachés web actualizados de nodos conocidos (llamados cachés web de Gnutella ), 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 le envió, así como a los nodos que recibe de otros clientes hasta que alcanza 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 direcciones que intentó y encontró que no eran válidas. [ cita requerida ]
Cuando el usuario quiere hacer 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 ha alcanzado un número predeterminado de saltos del remitente (máximo 7). [ cita requerida ]
Desde la versión 0.6 (2002 [19] ), Gnutella es una red compuesta de 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 32 ultrapeers. Con este grado superior , el número máximo de saltos que puede viajar 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 ranuras Ki ) más su propio QRT (si comparten archivos) e intercambian eso con los suyos. vecinos. Luego, el enrutamiento de consultas se realiza mediante el hash de las palabras de la consulta y ver 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 nodo ultra peer siempre que este sea el último salto que puede viajar la consulta.
Si una solicitud de búsqueda muestra un resultado, el nodo que tiene el resultado contacta al 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 para el 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 ultrapeer del nodo. Por lo tanto, 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. [ cita requerida ]
Si el usuario decide descargar el archivo, negocia la transferencia del archivo . Si el nodo que tiene el archivo solicitado no tiene cortafuegos , el nodo de consulta puede conectarse directamente. Sin embargo, si el nodo tiene un cortafuegos, 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 en su lugar (para enviar el archivo). . Al principio, estas solicitudes push se enrutaban a lo largo de la cadena original que usaba para enviar la consulta. Esto era bastante poco confiable porque las rutas a menudo se interrumpían y los paquetes enrutados siempre están sujetos a control de flujo. Se introdujeron proxies push para abordar este problema. 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 push mediante una solicitud HTTP y el proxy envía una solicitud push 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, que es más eficiente que usar TCP. Los proxies push tienen dos ventajas: en primer lugar, las conexiones ultrapeer-leaf son más estables que las rutas. Esto hace que las solicitudes de inserción sean mucho más confiables. En segundo lugar, reduce la cantidad de tráfico enrutado a través de la red Gnutella. [ cita requerida ]
Finalmente, cuando un usuario se desconecta, el software 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 usa como su lista de semillas, cuando comienza a continuación, volviéndose independiente de los servicios de arranque. [ cita requerida ]
En la práctica, este método de búsqueda en la red de Gnutella a menudo no era confiable. Cada nodo es un usuario habitual de la computadora; como tales, se conectan y desconectan constantemente, por lo que la red nunca es completamente estable. Además, el costo de ancho de banda de la búsqueda en Gnutella creció exponencialmente al número de usuarios conectados, [20] a menudo saturando las conexiones y haciendo inútiles los nodos más lentos. Por lo tanto, las solicitudes de búsqueda a menudo se descartan y la mayoría de las consultas solo llegan a una parte muy pequeña de la red. Esta observación identificó a 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. [ cita requerida ]
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 consideren iguales, los nodos que ingresan a la red se mantuvieron en el "borde" de la red, como una hoja. Las hojas no proporcionan ruta. Los nodos que son capaces de enrutar mensajes se promueven a ultrapeers. Los ultrapeers aceptan conexiones de hoja y búsquedas de rutas y mensajes de mantenimiento de la 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. [ cita requerida ]
Además, gnutella adoptó una serie de otras técnicas para reducir la sobrecarga de tráfico y hacer que las búsquedas sean más eficientes. Los más notables son Query Routing Protocol (QRP) y Dynamic Querying (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 haya obtenido suficientes resultados de búsqueda. Esto reduce enormemente la cantidad de tráfico causado por las búsquedas populares. [ cita requerida ]
Uno de los beneficios de tener Gnutella tan descentralizado es hacer muy difícil cerrar la red y convertirla en una red en la que los usuarios son los únicos que pueden decidir qué contenido estará disponible. A diferencia de Napster , donde toda la red dependía del servidor central, Gnutella no se puede cerrar cerrando ningún nodo. Una red descentralizada evita que los malos actores tomen el control de los contenidos de la red y / o manipulen los datos controlando el servidor central. [21]
Funciones y extensiones de protocolo
Gnutella una vez operó en un protocolo basado puramente en la inundación de consultas . El anticuado protocolo de red Gnutella versión 0.4 emplea cinco tipos de paquetes diferentes, a saber: [22]
- ping: descubre hosts en la red
- pong: responder a ping
- consulta: busca un archivo
- consulta hit: responder a la consulta
- push: solicitud de descarga para servidores con cortafuegos
Estos paquetes facilitan las búsquedas. En cambio, las transferencias de archivos son manejadas por HTTP . [23]
El desarrollo del protocolo Gnutella está actualmente dirigido por el Foro de desarrolladores de Gnutella (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 comprobació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). [23]
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, es difícil o imposible conectarse hoy 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 curso . [ cita requerida ]
El protocolo de Gnutella sigue en desarrollo. A pesar de los intentos de romper con la complejidad heredada del antiguo Gnutella 0.4 y de diseñar una nueva arquitectura de mensajes limpia, sigue siendo uno de los protocolos de intercambio de archivos más exitosos hasta la fecha. [ cita requerida ]
Software
Las siguientes tablas comparan información general y técnica para una serie de aplicaciones que admiten 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
Nombre | Plataforma | Licencia | Proyecto activo? (de lo contrario descontinuado) | Último lanzamiento | Herencia |
---|---|---|---|---|---|
Adquisición | Mac OS | Propiedad | No | 2.2 (v223) (19 de noviembre de 2010 [±] | )LimeWire |
BearFlix | Ventanas | Propiedad | No | 5.2.6.0 | BearShare |
BearShare | Ventanas | Propiedad | No | 10.0.0.131462 (29 de enero de 2013 [±] | )Trabajo original |
Cabos | Java | GNU GPL | No | 0.8.2 (9 de febrero de 2010 [±] | )LimeWire |
CitrixWire | Ventanas | Propiedad | No | 2014 [24] | Addax |
CocoGnut | Sistema operativo RISC | Propiedad | No | 1.21 (21 de junio de 2005) | Trabajo original |
FilesWire (P2P) | Java | Propiedad | No | Beta 1.1 (2007) | Trabajo original |
giFT (complemento de Gnutella) | Multiplataforma | GNU GPL | No | 0.0.11 (2006-08-06) | Trabajo original |
Gnúcleo - GnucDNA | Ventanas | GNU GPL, LGPL | No | 2.2.0.0 (17 de junio de 2005 [±] | )Trabajo original |
gtk-gnutella | Multiplataforma | GNU GPL | sí | 1.2.0 (9 de julio de 2020 [±] | )Trabajo original |
KCeasy | Ventanas | GNU GPL | No | 0.19-rc1 (3 de febrero de 2008 [±] | )regalo |
Kiwi Alpha | Ventanas | GNU GPL | No | 2.2.0.0 (17 de junio de 2005 [±] | )GnucDNA |
LimeWire | Java | GNU GPL | No | 5.5.16 (30 de septiembre de 2010 [±] | )Trabajo original |
Morfeo | Ventanas | Propiedad | No | 5.55.1 (15 de noviembre de 2007 [±] | )GnucDNA |
Phex | Java | GNU GPL | No | 3.4.2.116 (1 de febrero de 2009 [±] | )Trabajo original |
Envenenado | Mac OS | GNU GPL | No | 0.5191 (8 de agosto de 2006 [±] | )regalo |
Shareaza | Ventanas | GNU GPL | sí | 2.7.10.2 (18 de septiembre de 2017 [±] | [25] )Trabajo original |
Symella | Symbian | GNU GPL | No | Trabajo original | |
WireShare (también conocido como LimeWire Pirate Edition ) | Java | GNU GPL | sí | 6.0.1 (2020-08-29) | LimeWire |
Zultrax | Ventanas | Propiedad | No | 4.33 (abril de 2009) | Trabajo original |
Proyecto discontinuado
Características de Gnutella
Cliente | Búsqueda hash | Chat [i] | lista de amigos | Maneja archivos grandes [ enlace muerto permanente ] (> 4 GiB ) | Enrutamiento de consultas compatible con Unicode | Asignación de puertos UPnP [ii] | NAT transversal | Mapeo de puertos NAT | RUD [iii] | Proxy de envío TCP | Proxy de inserción UDP | Ultrapeer | GWebCache [iv] | Caché de host UDP | THEX | TLS | Otro | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BearShare | sí | sí | sí | No | No | sí | sí | sí | sí | sí | No | sí | sí | No | sí | No | - | |
giFT (núcleo y complementos) | sí | N / A | N / A | No | No | No | No | No | No | Sí [a] | No | No [b] | sí | No | No | No | - | |
GnucDNA [c] | sí | N / A | N / A | No | No | No | No | No | No | sí | No | No [b] | sí | No | No | No | - | |
gtk-gnutella | Sí [d] | No | No | sí | sí | sí | sí | sí | Sí [e] | sí | sí | sí | No (caído) | sí | sí | sí | IPv6 , DHT , GUESS, G2 | |
LimeWire [f] | Sí [d] | sí | GMail o XMPP | sí | sí | sí | Sí [g] | Sí [h] | sí | sí | sí | sí | sí | sí | sí | sí | DHT | |
WireShare [f] | Sí [d] | sí | GMail o XMPP | sí | sí | sí | Sí [g] | Sí [h] | sí | sí | sí | sí | sí | sí | sí | sí | DHT | |
Phex | sí | sí | No | sí | sí | No | Sí [i] | No | No | sí | No | sí | sí | sí | sí | sí | I2P | |
Shareaza | sí | sí | No | sí | No | sí | sí | sí | No | sí | sí | sí | sí | Sí [j] | sí | No | G2 , BT , eD2k , IRC |
Notas
- ^ Se refiere al chat directo de cliente a cliente; no el chat de IRC, que a menudo también está disponible en la misma aplicación a través de una ventana de navegador HTTP incrustada.
- ^ Configura automáticamente el reenvío de puertos en enrutadores o una combinación de módem / puertas de enlace que admiten el control UPnP.
- ^ Elprotocolo R eliable UDP proporciona transferencias de NAT a NAT, a veces llamadas Firewall a Firewall o "perforaciones", en los casos en que el usuario no puede o no puede realizar el reenvío de puertos.
- ^ Como las GWC tenían un historial de problemas con la sobrecarga de tráfico y la confiabilidad a largo plazo, las cachés de host UDP se convirtieron en el método de arranque preferido; aunque algunas GWC siguen estando disponibles por el bien de software más antiguo.
- ^ Solo modo cliente, como hoja dependiente de ultrapeers.
- ^ Un b no es alto grado de salida , por lo que no se puede utilizar en su forma actual.
- ^ Versión 0.9.2.7
- ^ a b c A través de la red Mojito DHT basada en Kademlia compatible solo 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.
- ^ gtk-gnutella versión 0.98.4 y posteriores.
- ^ a b 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.
- ^ a b Activación de puerto o cortafuegos a cortafuegos (FW2FW).
- ^ a b Automático con UPnP o configuración manual en las opciones de firewall de LimeWire
- ^ A través delproxy SOCKS que puede hacer un túnel a través de SSH .
- ^ 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 funcionalmente limitada de la serie BearShare 5.2, puede buscar solo imágenes o videos y los videos compartidos están limitados a una duración relativamente corta.
- giFTcurs , Apollon , FilePipe , giFToxic , giFTui , giFTwin32 , KCeasy , Poisoned y Xfactor son interfaces de interfaz gráfica de usuario para el motor giFT .
- etomi utiliza un código de red de 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 5.00 ya no usan gnutella.
- Adquisición y Cabos son interfaces personalizadas que se superponen al motor LimeWire .
- LimeWire Pirate Edition (5.6.2) es una versión resucitada del inédito LimeWire 5.6.1 alpha, por lo que tiene características similares menos actualizaciones automáticas (con fastidios) y controles remotos centralizados para deshabilitar funciones básicas como búsquedas y descargas que se eliminaron.
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, [26] sino que es un protocolo completamente diferente que se bifurcó del proyecto original y se superpuso al Nombre de Gnutella. Un punto delicado con muchos desarrolladores de Gnutella es que el nombre Gnutella2 transmite una mejora o superioridad, lo que llevó a una guerra de llamas. Otras críticas incluyeron el uso de la red Gnutella para arrancar pares G2 y la documentación deficiente del protocolo G2. Además, los reintentos de búsqueda más frecuentes del cliente de Shareaza , uno de los clientes iniciales de G2, podrían sobrecargar innecesariamente la red de Gnutella. [27]
Ambos protocolos han sufrido cambios significativos desde la 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 el Enrutamiento de consultas en 2002. Esto fue propuesto en 2001 por los desarrolladores de Limewire. [28] [29] [30] 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. [31] Es difícil comparar los protocolos en su forma actual. La elección del cliente, en cualquiera de las redes, probablemente afecte tanto al usuario final.
Ver también
- Bitzi
- Oruga gnutella
- GNUnet
Referencias
- ^ Kushner, David (13 de enero de 2004). "El friki más peligroso del mundo" . Rolling Stone . Archivado desde el original el 30 de junio de 2012 . Consultado el 10 de mayo de 2011 .
- ^ Slyck News - eDonkey2000 casi el doble del tamaño de FastTrack Archivado 2018-01-29 en Wayback Machine , Thomas Mennecke para Slyck.com , 2 de junio de 2005.
- ^ a b Sobre la evolución a largo plazo de la superposición de Gnutella de dos niveles . Rasti, Stutzbach, Rejaie, 2006. Ver Figura 2a.
- ^ Estudio de Ars Technica: BitTorrent ve un gran crecimiento, LimeWire sigue siendo la aplicación P2P número 1 Eric Bangeman, 21 de abril de 2008.
- ^ "Nullsoft de AOL crea software para intercambiar MP3" . CNET . Consultado el 13 de abril de 2017 .
- ^ AfterDawn.com. "Gnutella" . AfterDawn . Consultado el 13 de abril de 2017 .
- ^ "Napster de código abierto: Gnutella - Slashdot" . slashdot.org .
- ^ "CNN - Últimas noticias, últimas noticias y videos" . CNN .
- ^ "Respecto a Gnutella - Proyecto GNU - Free Software Foundation" .
- ^ Schell, Bernadette Hlubik; Schell, Bernadette; Martin, Clemens (5 de septiembre de 2006). Diccionario Webster's New World Hacker . John Wiley e hijos. ISBN 978-0-470-04752-1.
- ^ "Los programadores ayudan a que los clones de" Napster "despeguen" . CNET . Consultado el 13 de abril de 2017 .
- ^ "Muere el pionero de Gnutella Gene Kan" . CNET . Consultado el 13 de abril de 2017 .
- ^ "Listado de archivos gnubile" . stearns.org . Consultado el 13 de abril de 2017 .
- ^ "El código fuente de Gnubile" . underpop.free.fr . Consultado el 13 de abril de 2017 .
- ^ ftp://ftp.cs.umn.edu/pub/netbsd/NetBSD-current/pkgsrc/net/gnubile/README.html [ enlace muerto permanente ]
- ^ "Respecto a Gnutella (www.gnu.org)" .
- ^ Chloe Albanesius (18 de julio de 2011). "Indie Labels demandan a LimeWire por fallido acuerdo de derechos de autor" . Revista de PC . Ziff-Davis . 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 los servicios de intercambio de archivos P2P se redujo en un 7 por ciento desde [su] máximo histórico en 2007 ...
- ^ Chloe Albanesius (9 de noviembre de 2010). "Informe: LimeWire 'resucitado' por el equipo de desarrollo secreto" . Revista de PC . Ziff-Davis . Consultado el 19 de marzo de 2012 .
- ^ "Desarrollo del Protocolo de Gnutella" . rfc-gnutella.sourceforge.net . Consultado el 13 de abril de 2017 .
- ^ Por qué Gnutella no puede escalar. No realmente. Febrero de 2001.
- ^ Berkes, Jem (9 de abril de 2003). "Arquitectura de red descentralizada de igual a igual: 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 .
- ^ Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, capítulo 3. p91
- ^ a b Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, capítulo 3. p90
- ^ "CitrixWire" . BrotherSoft . Archivado desde el original el 14 de abril de 2017 . Consultado el 13 de abril de 2017 .
- ^ "Página de descarga de Shareaza en el sitio web de sourceforge" . SourceForge . Consultado el 6 de julio de 2019 .
- ^ Gnutella contra Gnutella2, parte 2 Thomas Mennecke para Slyck.com , 25 de febrero de 2003.
- ^ Gnutella vs.Gnutella2, Part 1 Archivado el5 de marzo de 2016 en la Wayback Machine Thomas Mennecke para Slyck.com , 25 de febrero de 2003
- ^ Una comparación de los métodos de búsqueda Peer-to-Peer Archivado el26 de septiembre de 2007en la Wayback Machine Dimitrios Tsoumakos, 2003
- ^ Enrutamiento de consultas para la propuesta de la red Gnutella Christopher Rohrs, 2001-12-18
- ^ Enrutamiento de consultas para la red Gnutella 1.0 Christopher Rohrs, 16 de mayo de 2002
- ^ Población de estadísticas de red G2 ~ 200.000 enero de 2010.
- Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, capítulo 3. p91
- Tinte, Mark. McDonald, Rick. Rufi, Antoon W., 'Network Fundamentals', Cisco Networking Academy, Cisco Press, capítulo 3. p90
enlaces externos
- Foros de Gnutella Tableros oficiales de soporte al usuario
- Wiki de desarrollo del protocolo Gnutella (en Internet Archive , 2009)
- Portal de desarrollo del protocolo de Gnutella (en Internet Archive)
- Sitio web oficial de Gnutella (en Internet Archive)
- GnuFU , Gnutella para usuarios: una descripción del funcionamiento interno de la red gnutella en estilo fácil de usar
- Respecto a Gnutella de GNU
- Glasnost prueba Gnutella traffic shaping ( Instituto Max Planck para Sistemas de Software )