1Sep
Cuando tu cliente de torrent se une al enjambre para compartir y reunir fragmentos de archivos, ¿cómo sabe exactamente dónde están todos sus pares? Siga leyendo mientras exploramos los mecanismos subyacentes del protocolo BitTorrent.
Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.
El lector de la Pregunta
SuperUser Steve V. tenía una pregunta muy específica sobre el sistema Distributed Hash Table( DHT) dentro del protocolo BitTorrent:
Ya leí esta respuesta SuperUser y este artículo de Wikipedia, pero ambos son demasiado técnicos para que realmenteenvolver mi cabeza.
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 iguales: los clientes que ya están en un enjambre envían la lista completa de sus pares entre sí.Si se descubren nuevos pares, se agregarán a la lista.
Mi pregunta es, ¿cómo funciona el DHT?Es decir, ¿cómo puede un nuevo cliente unirse a un enjambre sin un rastreador o sin el conocimiento de al menos un miembro del enjambre para 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
SuperUser contribuidor Allquixotic ofrece una explicación en profundidad:
¿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?
No puedes. Es imposible. *
* ( A menos que un nodo en su red de área local pase a ser un nodo en el DHT. En este caso, podría usar un mecanismo de difusión, como Avahi, para "descubrir" este pary arranque de ellos, pero ¿cómo se arregló ? Eventualmente, llegará a una situación en la que necesita conectarse a la Internet pública. Y la Internet pública es unicast-only, no multicast, por lo que está atrapadocon el uso de listas predeterminadas de pares.)
Referencias
Bittorrent DHT se implementa mediante un protocolo conocido como Kademlia, que es un caso especial del concepto teórico de una tabla hash distribuida.
Exposición
Con el protocolo de Kademlia, cuando se une a la red, se lleva a cabo un procedimiento de arranque, que requiere que sepa 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 en sí mismo. Una vez que está conectado a un nodo DHT, luego procede a descargar información del DHT, que le proporciona información de conectividad para más nodos, y luego navega por esa estructura de "gráfico" para obtener conexiones con más y más nodos, que pueden proporcionar ambosconectividad con 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 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 incluso un host que pueda contener metadatos DHT, está atascado, ni siquiera puede comenzar. Quiero decir, seguro, podrías intentar con la fuerza bruta descubrir una IP en internet público con un puerto abierto que transmita información DHT.Pero lo más probable es que su cliente de BT esté codificado de forma rígida a una dirección IP o DNS estático específico que se resuelve en un nodo DHT estable, que solo proporciona los metadatos DHT.
Básicamente, el DHT está tan descentralizado como el mecanismo de unión, y porque el mecanismo de unión es bastante quebradizo( ¡no hay forma de "transmitir" en Internet entera, por lo que debe unidifundir a un host individual preasignado aobtener los datos DHT), Kademlia DHT no es realmente descentralizado. No en el sentido más estricto de la palabra.
Imagine este escenario: Alguien que quiere que P2P se detenga se apaga y prepara un ataque contra , todos los comúnmente utilizados nodos DHT estables que se utilizan para el arranque. Una vez que han organizado su ataque, lo lanzan en todos los nodos a la vez. Wham ;todos los nodos DHT de arranque están caídos de una sola vez.¿Ahora que? Estás atrapado con la conexión a los rastreadores centralizados para descargar listas tradicionales de sus pares. Bueno, si atacan a los rastreadores también, en realidad eres realmente en 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 evitar & gt; 90% de usuarios se conectan a la red.
Una vez que los nodos de arranque "pseudocentralizados" se han ido, los nodos interiores del DHT, que no son bootstrapping porque nadie en el exterior del DHT sabe acerca de los nodos interiores , son inútiles;no pueden traer nuevos nodos al DHT.Entonces, como cada nodo interior se desconecta del DHT con el tiempo, ya sea debido a que las personas cierran sus computadoras, reinician las actualizaciones, etc., la red colapsará.
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 hacer publicidad en voz alta a la comunidad P2P para usar esta nueva lista. Pero esto se convertiría en una situación de "whack-a-mole" donde el agresor( el devorador de nodos) descargaría progresivamente estas listas por sí mismo, y apuntaría a los nuevos y valientes nodos de arranque, y 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.
¿Tiene 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í.