¿Cómo descubre inicialmente un cliente Bittorrent sus pares?

Cuando su cliente torrent se une al enjambre para compartir y reunir piezas de archivos, ¿cómo sabe exactamente dónde están todos sus pares? Siga leyendo mientras hurgamos dentro de los mecanismos que sustentan el protocolo BitTorrent.

Cuando su cliente torrent se une al enjambre para compartir y reunir piezas de archivos, ¿cómo sabe exactamente dónde están todos sus pares? Siga leyendo mientras hurgamos dentro de los mecanismos que sustentan el protocolo BitTorrent.

La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web de preguntas y respuestas dirigida por la comunidad.

La pregunta

El lector de SuperUser Steve V. tenía una pregunta muy específica sobre el sistema de Tabla de Hash Distribuido (DHT) dentro del protocolo BitTorrent:

Ya leí esta respuesta de Superusuario y este artículo de Wikipedia, pero ambos son demasiado técnicos para que realmente pueda entenderlo.

Entiendo la idea de un rastreador: los clientes se conectan a un servidor central que mantiene una lista de pares en un enjambre.

También entiendo la idea del intercambio de pares: los clientes que ya están en un enjambre se envían la lista completa de sus pares. Si se descubren nuevos pares, se agregan a la lista.

Mi pregunta es, ¿cómo funciona DHT? Es decir, ¿cómo puede un nuevo cliente unirse a un enjambre sin un rastreador o el conocimiento de al menos un miembro del enjambre con el que intercambiar pares?

(Nota: las explicaciones simples son las mejores).

Su pregunta a su vez provocó una respuesta realmente detallada sobre las diferentes funciones del sistema BitTorrent; Echemos un vistazo ahora.

La respuesta

El colaborador de SuperUser Allquixotic ofrece una explicación detallada:

¿Cómo puede un nuevo cliente unirse a un enjambre sin un rastreador o el conocimiento de al menos un miembro del enjambre con el que intercambiar pares?

No puedes. Es imposible. *

* (a menos que un nodo en su red de área local ya sea un nodo en el DHT. En este caso, podría usar un mecanismo de transmisión, como Avahi, para «Descubren» a este compañero, y se arrancan de ellos. Pero, ¿cómo ellos se arrancan a sí mismos? Eventualmente, se encontrará con una situación en la que necesita conectarse a Internet pública. Y la Internet pública es unicast- solo, no multidifusión, por lo que no puede utilizar listas predeterminadas de pares).

Referencias

Bittorrent DHT se implementa a través de un protocolo conocido como Kademlia, que es un caso especial del concepto teórico de una tabla hash distribuida.

Exposición

Con el protocolo Kademlia, cuando te unes a la red, pasas por un procedimiento de arranque, que requiere que sepas, de antemano , la dirección IP y el puerto de al menos un nodo que ya participa en el DHT red. El rastreador al que se conecta, por ejemplo, puede ser un nodo DHT. Una vez que esté conectado a un nodo DHT, procederá a descargar información del DHT, que le proporciona información de conectividad para más nodos, y luego navegará esa estructura de «gráfico» para obtener conexiones a más y más nodos, que pueden proporcionar ambos conectividad a otros nodos y datos de carga útil (fragmentos de la descarga).

Creo que su pregunta real en negrita, la de cómo unirse a una red DHT de Kademlia sin conocer a ninguno de otros miembros, se basa en una suposición falsa.

La respuesta simple a su pregunta en negrita es: no . Si no conoce CUALQUIER información sobre siquiera un host que pueda contener metadatos DHT, está atascado, ni siquiera puede comenzar. Quiero decir, claro, podrías intentar por fuerza bruta descubrir una IP en Internet pública con un puerto abierto que transmita información DHT. Pero lo más probable es que su cliente BT esté codificado con alguna IP estática específica o DNS que se resuelva en un nodo DHT estable, que solo proporciona los metadatos DHT.

Básicamente, el DHT solo está tan descentralizado como el mecanismo de unión, y debido a que el mecanismo de unión es bastante frágil (¡no hay forma de «transmitir» en todo Internet! Por lo que debe unidifusión a un pre individual -asignado host para obtener los datos DHT), Kademlia DHT no está realmente descentralizado. No en el sentido más estricto de la palabra.

Imagine este escenario: alguien que quiere que se detenga P2P sale y prepara un ataque contra todos nodos DHT estables de uso común que se utilizan para el arranque. Una vez que han organizado su ataque, lo lanzan a los nodos todos a la vez. Wham ; Todos los nodos DHT de arranque están inactivos de una sola vez. ¿Ahora que? Estás atascado con la conexión a rastreadores centralizados para descargar listas tradicionales de pares de esos. Bueno, si también atacan a los rastreadores, entonces eres realmente, realmente un arroyo.En otras palabras, Kademlia y toda la red BT están limitadas por las limitaciones de Internet, ya que existe un número finito (y relativamente pequeño) de computadoras que tendrías que atacar con éxito o desconectar para evitar> 90% de usuarios que se conectan a la red.

Una vez que los nodos de arranque «pseudo-centralizados» desaparecen, los nodos interiores del DHT, que no son de arranque porque nadie en el exterior del DHT sabe acerca de los nodos interiores , son inútiles; no pueden traer nuevos nodos al DHT. Entonces, a medida que cada nodo interior se desconecta del DHT con el tiempo, ya sea debido a que las personas apagan sus computadoras, reinician las actualizaciones, etc., la red colapsaría.

Por supuesto, para evitar esto, alguien podría implementar un cliente BitTorrent parcheado con una nueva lista de nodos DHT estables predeterminados o direcciones DNS, y anunciar en voz alta a la comunidad P2P para usar esta nueva lista. Pero esto se convertiría en una situación de «golpe-a-topo» en la que el agresor (el devorador de nodos) descargaría progresivamente estas listas por sí mismo, y se centraría en los nuevos y valientes nodos de arranque, y luego los desconectaría también.

No solo aprendimos la respuesta a la pregunta original, sino que también aprendimos bastante sobre la naturaleza del sistema BitTorrent y sus vulnerabilidades.

¿Tienes algo que agregar a la explicación? Suena apagado en los comentarios. ¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.

Rate article
labsfabs.com
Add a comment