Página principal » cómo » ¿Cómo un cliente de Bittorrent descubre inicialmente a sus pares?

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

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

    La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..

    La pregunta

    El lector Superusuario Steve V. tenía una pregunta muy específica sobre el sistema de tabla de hash distribuida (DHT) dentro del protocolo de BitTorrent:

    Ya he leído esta respuesta del 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 entre pares: los clientes que ya están en un enjambre se envían la lista completa de sus compañeros entre sí. Si se descubren nuevos compañeros, 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 para intercambiar compañeros con?

    (Nota: las explicaciones simples son las mejores.)

    Su pregunta, a su vez, solicitó una respuesta realmente detallada sobre las diferentes funciones del sistema BitTorrent; echémosle un vistazo ahora.

    La respuesta

    Allquixotic, colaborador de Superusuario, 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 compañeros con?

    Usted no puede Es imposible.*

    * (A menos que un nodo en su Red de área local Sucede que ya hay un nodo en el DHT. En este caso, podría utilizar un mecanismo de transmisión, como Avahi, para "descubrir" este igual y arrancar desde ellos. Pero como lo hizo ellos bootstrap ellos mismos? Eventualmente, llegará a una situación en la que necesita conectarse a la Internet pública. Y la Internet pública es solo de unidifusión, no de multidifusión, por lo que está atascado con el uso de 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 absolutamente requiere que sepas, por adelantado, la dirección IP y el puerto de al menos un nodo que ya participa 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, luego procede a descargar la información de DHT, que le proporciona información de conectividad para más nodos, y luego navega por esa estructura de "gráfico" para obtener conexiones a más y más nodos, quienes pueden proporcionar conectividad a otros nodos y datos de carga útil (partes de la descarga).

    Creo que su pregunta real en negrita es la de cómo unirse a una red DHT de Kademlia sin saberlo. algunaotros miembros - se basa en una suposición falsa.

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

    Básicamente, el DHT es tan descentralizado como el mecanismo de unión, y debido a que el mecanismo de unión es bastante frágil (¡no hay manera de “transmitir” a través de Internet! unicasta un host pre-asignado individual para obtener los datos de DHT), Kademlia DHT no es De Verdad descentralizado. No en el sentido más estricto de la palabra..

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

    Una vez que los nodos de arranque "pseudo-centralizados" hayan desaparecido, los nodos interiores de la DHT, que no son de arranque porque Nadie en el exterior de la DHT sabe acerca de los nodos interiores, son inútiles no pueden traer nuevos nodos al DHT. Por lo tanto, a medida que cada nodo interior se desconecta de la DHT a lo largo del tiempo, ya sea porque las personas cierran sus computadoras, se reinician para obtener actualizaciones, etc., la red colapsaría.

    Por supuesto, para solucionar esto, alguien podría implementar un cliente de 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 en su lugar. Pero esto se convertiría en una situación de "locura" en la que el agresor (el devorador de nodos) descargaría estas listas de forma progresiva, y atacaría a 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? Apague el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.