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

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

Cuando tu cliente torrent se une al enjambre para compartiry reunir piezas de archivo, ¿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 he leído 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 para intercambiar pares?

No puedes Es imposible.*

* * (A menos que haya un nodo en su Red de área local Resulta que ya es un nodo en el DHT. En este caso, podría utilizar un mecanismo de transmisión, como Avahi, para "descubrir" a este compañero y arrancarlo. Pero como ellos arranque ellos mismos? Eventualmente, se encontrará con una situación en la que necesita conectarse a Internet público. Y la Internet pública es solo de unidifusión, no de multidifusión, por lo que debe seguir usando 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 absolutamente que sepas, por adelantado, la dirección IP y el puerto de al menos un nodoya participando en la red DHT. 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 está en negrita: la de cómo unirse a una red DHT de Kademlia sin saber algunaotros miembros: se basa en una suposición falsa.

La respuesta simple a su pregunta en negrita es: tu no. Si no conoce CUALQUIER información sobreincluso un host que puede 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" por todo Internet! Por lo que debe unicasta un host preasignado individual para obtener los datos DHT), Kademlia DHT no es De Verdad 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 todas nodos DHT estables de uso común que se utilizan para el arranque. Una vez que han organizado su ataque, lo activan todas nodos todos a la vez. Wham; Todos los nodos DHT de arranque están inactivos de una sola vez. ¿Ahora que? Estás atrapado 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, De Verdad hasta 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" se han ido, los nodos interiores del DHT, que no están arrancando porque nadie en el exterior del DHT sabe acerca de los nodos interioresson inútiles no pueden traer nuevos nodos aEl 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íaimplemente un cliente BitTorrent parcheado con una nueva lista de nodos DHT estables predeterminados o direcciones DNS, y anuncie 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í.