Tautan magnet BitTorrent mengidentifikasi torrent menggunakan nilai hash 1 a SHA-1 atau terpotong SHA-256 yang dikenal sebagai "infohash". Ini adalah nilai yang sama yang digunakan rekan kerja (klien) untuk mengidentifikasi torrent ketika berkomunikasi dengan pelacak atau rekan kerja lainnya. File .torrent tradisional berisi struktur data dengan dua kunci tingkat atas:, announce
mengidentifikasi pelacak yang akan digunakan untuk unduhan, dan info
, berisi nama file dan hash untuk torrent. "Infohash" adalah hash dari info
data yang disandikan .
Beberapa tautan magnet menyertakan pelacak atau benih web, tetapi seringkali tidak. Klien Anda mungkin tidak tahu apa-apa tentang torrent kecuali infohash-nya. Hal pertama yang perlu dilakukan adalah menemukan rekan lain yang mengunduh torrent. Ini dilakukan menggunakan jaringan peer-to-peer 2 yang terpisah yang mengoperasikan "tabel hash terdistribusi" (DHT). DHT adalah indeks terdistribusi besar yang memetakan torrents (diidentifikasi oleh infohash) ke daftar rekan-rekan (diidentifikasi oleh alamat IP dan port) yang berpartisipasi dalam segerombolan torrent itu (mengunggah / mengunduh data atau metadata).
Pertama kali klien bergabung dengan jaringan DHT, ia menghasilkan ID 160-bit acak dari ruang yang sama dengan infohash. Kemudian bootstraps koneksinya ke jaringan DHT menggunakan alamat klien yang dikodekan dengan keras yang dikontrol oleh pengembang klien, atau klien pendukung DHT yang sebelumnya ditemui di torrent swarm. Ketika ingin berpartisipasi dalam swarm untuk sebuah torrent diberikan, ia mencari jaringan DHT untuk beberapa klien lain yang ID adalah sebagai dekat 3 mungkin untuk infohash tersebut. Ini memberi tahu klien ini bahwa mereka ingin berpartisipasi dalam segerombolan, dan meminta mereka untuk informasi koneksi dari setiap rekan yang sudah mereka kenal tentang siapa yang berpartisipasi dalam segerombolan.
Ketika rekan-rekan mengunggah / mengunduh torrent tertentu, mereka mencoba untuk saling memberi tahu tentang semua rekan lain yang mereka kenal yang berpartisipasi dalam segerombolan torrent yang sama. Ini memungkinkan rekan sejawat mengenal satu sama lain dengan cepat, tanpa membuat pelacak atau DHT untuk permintaan konstan. Setelah Anda mengetahui beberapa rekan dari DHT, klien Anda akan dapat meminta informasi kepada teman-teman sebaya tersebut tentang lebih banyak teman dalam torrent torrent, sampai Anda memiliki semua teman sebaya yang Anda butuhkan.
Akhirnya, kita dapat meminta rekan-rekan ini untuk info
metadata torrent , yang berisi nama file dan daftar hash. Setelah kami mengunduh informasi ini dan memverifikasi bahwa itu benar menggunakan yang diketahui infohash
, kami berada pada posisi yang sama dengan klien yang memulai dengan .torrent
file biasa dan mendapat daftar teman dari pelacak yang disertakan.
Pengunduhan dapat dimulai.
1 Infohash biasanya dikodekan-hex, tetapi beberapa klien lama menggunakan basis 32 sebagai gantinya. v1 ( urn:btih:
) menggunakan digest SHA-1 secara langsung, sementara v2 ( urn:bimh:
) menambahkan awalan multihash untuk mengidentifikasi algoritma hash dan panjang digest.
2 Ada dua jaringan DHT primer: DHT "arus utama" yang lebih sederhana, dan protokol yang lebih rumit yang digunakan oleh Azureus.
3 Jarak diukur dengan XOR.
Bacaan lebih lanjut