Bir BitTorrent mıknatıs bağlantısı 1 " SHA-1 veya" infohash "olarak bilinen kesik SHA-256 karma değerini kullanarak bir torrent tanımlar . Bu, eşlerin (istemcilerin) izleyicilerle veya diğer eşlerle iletişim kurarken torrentleri tanımlamak için kullandığı değerle aynıdır. Geleneksel bir .torrent dosyası, iki üst düzey anahtar içeren bir veri yapısı içerir: announce
indirme için kullanılacak izleyiciyi / izleyicileri tanımlamak info
ve torrent için dosya adlarını ve karmaları içeren. "İnfohash" kodlanmış info
verinin karmasıdır .
Bazı mıknatıs bağlantıları izleyiciler veya ağ tohumları içerir, ancak genellikle içermezler. Müşteriniz, infohash dışında torrent hakkında hiçbir şey bilmiyor olabilir. İlk ihtiyacı olan torrent'i indiren diğer eşleri bulmak. Bunu, "dağıtılmış karma tablosu" (DHT) çalıştıran ayrı bir eşler arası ağ 2 kullanarak yapar . Bir DHT, torrentleri (infohashes tarafından tanımlanır), bu torrent için bir sürüme katılan (veri veya meta veri yükleme / indirme) akran listeleriyle (IP adresi ve bağlantı noktaları ile tanımlanır) eşleyen büyük bir dağıtılmış dizindir.
İstemci DHT ağına ilk kez katıldığında, bilgi alanlarıyla aynı alandan rastgele bir 160 bit kimlik oluşturur. Daha sonra, istemci geliştiricisi tarafından kontrol edilen istemcilerin sabit kodlu adreslerini veya daha önce bir torrent sürüsünde daha önce karşılaşılan DHT'yi destekleyen istemcileri kullanarak DHT ağına bağlantısını yeniden başlatır. Belirli bir torrent için bir sürüye katılmak istediğinde, DHT ağında kimlikleri infohash'a mümkün olduğunca yakın 3 olan diğer istemciler için arama yapar. Bu müşterilere sürüye katılmak istediklerini bildirir ve sürüye katıldıklarını zaten bildikleri akranlarının bağlantı bilgilerini ister.
Eşler belirli bir torrent yüklerken / indirirken, birbirlerine aynı torrent sürüsüne katılan tanıdıkları diğer tüm eşleri anlatmaya çalışırlar. Bu, eşlerin izleyiciyi veya DHT'yi sürekli isteklere maruz bırakmadan birbirlerini hızlı bir şekilde tanımalarını sağlar. DHT'den birkaç akran öğrendikten sonra, müşteriniz ihtiyaç duyduğunuz tüm akranlara sahip olana kadar torrentlerden daha fazla akranın bağlantı bilgilerini isteyebilir.
Son olarak, bu eşlerden info
dosya adlarını ve karma listesini içeren torrentin meta verilerini isteyebiliriz . Bu bilgileri indirip bilinenleri kullanarak doğru olduğunu doğruladıktan sonra infohash
, normal bir .torrent
dosyayla başlayan ve dahil edilen izleyiciden bir eş listesi alan bir müşteriyle neredeyse aynı konumdayız .
İndirme işlemi başlayabilir.
1 Infohash genellikle onaltılı olarak kodlanır, ancak bazı eski istemciler bunun yerine base 32'yi kullanır. v1 ( urn:btih:
) doğrudan SHA-1 özetini kullanır, v2 ( urn:bimh:
) ise karma algoritmayı ve özet uzunluğunu tanımlamak için multihash öneki ekler .
2 İki birincil DHT ağı vardır: daha basit "ana hat" DHT ve Azureus tarafından kullanılan daha karmaşık bir protokol.
3 Mesafe XOR ile ölçülür.
Daha fazla okuma