protocols - win - ¿Cómo funciona DHT en torrentes?
www utorrent com downloads complete os win (4)
Estoy codificando una implementación p2p que me gustaría descentralizar, sin embargo estoy teniendo problemas para comprender cómo funcionan los DHT en protocolos como bittorrent. ¿Cómo sabe el cliente dónde están los pares si no hay un rastreador? ¿Los compañeros están almacenados en el archivo torrent real?
Con torrents sin tracker / DHT, las direcciones IP del par se almacenan en el DHT utilizando el BitHorrent infohash como clave. Como todo lo que hace un rastreador es, básicamente, responder a solicitudes de envío / recepción, esta funcionalidad corresponde exactamente a la interfaz que proporciona una DHT (tabla de hash distribuida): le permite buscar y almacenar direcciones IP en DHT mediante infohash.
Por lo tanto, una solicitud de "obtención" buscaría un InfoHash BT y devolvería un conjunto de direcciones IP. Un "poner" almacena una dirección IP para un infohash dado. Esto corresponde a la solicitud de "anunciar" que de otro modo haría al rastreador para recibir un diccionario de direcciones IP iguales.
En una DHT, los pares se asignan aleatoriamente para almacenar valores que pertenecen a una pequeña fracción del espacio clave; el hash asegura que las claves se distribuyan aleatoriamente entre los pares participantes. El protocolo DHT ( Kademlia para BitTorrent) garantiza que las solicitudes put / get se enruten de manera eficiente a los pares responsables de mantener las listas de direcciones IP de una determinada clave.
La teoría general se puede encontrar en el artículo de wikipedia sobre Kademlia . La especificación de protocolo específica utilizada en bittorrent está aquí: http://wiki.theory.org/BitTorrentDraftDHTProtocol
Lo que sucede con bittorrent y DHT es que al principio bittorrent usa información incrustada en el archivo torrent para ir a un rastreador o a uno de un conjunto de nodos del DHT. Luego, una vez que encuentra un nodo, puede seguir buscando otros y persistir utilizando el DHT sin necesidad de un rastreador centralizado para mantenerlo.
La información original arranca el uso posterior del DHT.
Los nodos DHT tienen identificadores únicos, denominados ID de nodo. Los identificadores de nodo se eligen al azar desde el mismo espacio de 160 bits que los hashes de información de BitTorrent. La cercanía se mide al comparar las tablas de enrutamiento de Node ID, mientras más cerca esté el Nodo, más detallado, resultando en un óptimo
Lo que los hace más óptimos que su predecesor "Kademlia", que usa enteros simples sin signo: distancia (A, B) = | A xor B | Los valores más pequeños están más cerca. XOR. Además de no ser seguro, su lógica era defectuosa.
Si su cliente admite DHT, hay 8 bytes reservados en los que contiene 0x09 seguido de una carga útil de 2 bytes con el puerto UDP y el nodo DHT. Si el apretón de manos es exitoso, lo anterior continuará.