Ringkasan
Bagaimana klien baru dapat bergabung dengan gerombolan tanpa pelacak atau pengetahuan setidaknya satu anggota gerombolan untuk bertukar rekan dengan?
Kamu tidak bisa Itu tidak mungkin.*
* (Kecuali jika simpul di jaringan area lokal Anda sudah menjadi simpul di DHT. Dalam hal ini, Anda bisa menggunakan mekanisme penyiaran, seperti Avahi, untuk "menemukan" rekan ini, dan bootstrap dari mereka. Tapi bagaimana caranya mereka bootstrap sendiri? Akhirnya, Anda akan menghadapi situasi di mana Anda perlu terhubung ke Internet publik. Dan Internet publik hanya unicast, bukan multicast, sehingga Anda terjebak dengan menggunakan daftar teman sebaya yang sudah ditentukan sebelumnya.)
Referensi
Bittorrent DHT diimplementasikan melalui protokol yang dikenal sebagai Kademlia , yang merupakan kasus khusus dari konsep teoritis tabel hash Terdistribusi .
Eksposisi
Dengan protokol Kademlia, saat Anda bergabung dengan jaringan, Anda menjalani prosedur bootstrap , yang mutlak mengharuskan Anda tahu, terlebih dahulu , alamat IP dan port setidaknya satu node yang sudah berpartisipasi dalam jaringan DHT. Pelacak yang Anda sambungkan, misalnya, mungkin merupakan simpul DHT. Setelah Anda terhubung ke satu node DHT, Anda kemudian melanjutkan untuk mengunduh informasi dari DHT, yang memberikan Anda informasi konektivitas untuk lebih banyak node, dan Anda kemudian menavigasi struktur "grafik" itu untuk mendapatkan koneksi ke semakin banyak node, yang dapat menyediakan keduanya konektivitas ke node lain, dan data payload (potongan unduhan).
Saya pikir pertanyaan Anda yang sebenarnya dalam huruf tebal - yang bagaimana untuk bergabung dengan jaringan Kademlia DHT tanpa mengetahui setiap anggota lain - didasarkan pada asumsi yang salah.
Jawaban sederhana untuk pertanyaan Anda dalam huruf tebal adalah, Anda tidak . Jika Anda sama sekali tidak mengetahui informasi APA PUN tentang satu pun host yang mungkin mengandung metadata DHT, Anda mandek - Anda bahkan tidak bisa memulai. Maksud saya, tentu saja, Anda dapat dengan brutal berusaha menemukan IP di internet publik dengan port terbuka yang kebetulan menyiarkan informasi DHT. Tetapi lebih mungkin, klien BT Anda dikodekan ke beberapa IP statis atau DNS spesifik yang memutuskan ke simpul DHT yang stabil, yang hanya menyediakan metadata DHT.
Pada dasarnya, DHT hanya terdesentralisasi seperti mekanisme penggabungan, dan karena mekanisme penggabungannya cukup rapuh (tidak ada cara untuk "menyiarkan" melalui seluruh Internet! Jadi Anda harus unicast ke masing-masing host yang ditugaskan untuk mendapatkan DHT data), Kademlia DHT tidak terlalu terdesentralisasi. Tidak dalam arti kata yang paling ketat.
Bayangkan skenario ini: Seseorang yang ingin P2P berhenti keluar dan menyiapkan serangan pada semua node DHT stabil yang umum digunakan yang digunakan untuk bootstrap. Setelah mereka melakukan serangan, mereka akan mengaktifkannya pada semua node sekaligus. Wham ; setiap simpul DHT bootstrap tunggal turun semua dalam satu gerakan. Sekarang apa? Anda tidak dapat terhubung dengan pelacak terpusat untuk mengunduh daftar teman sebaya dari mereka. Nah, jika mereka menyerang pelacak juga, maka Anda benar- benarsebuah sungai. Dengan kata lain, Kademlia dan seluruh jaringan BT dibatasi oleh keterbatasan Internet itu sendiri, dalam hal itu, ada sejumlah komputer yang terbatas (dan relatif kecil) yang harus Anda serang atau jadikan offline untuk mencegah> 90% pengguna dari terhubung ke jaringan.
Setelah node bootstrap "pseudo-terpusat" semua hilang, node interior DHT, yang bukan bootstrap karena tidak ada di luar DHT yang tahu tentang interior node , tidak berguna; mereka tidak dapat membawa node baru ke DHT. Jadi, karena setiap node interior terputus dari DHT dari waktu ke waktu, baik karena orang mematikan komputer mereka, me-reboot untuk pembaruan, dll, jaringan akan runtuh.
Tentu saja, untuk menyiasatinya, seseorang dapat menggunakan klien BitTorrent yang ditambal dengan daftar baru node DHT stabil atau alamat DNS, dan beriklan dengan keras ke komunitas P2P untuk menggunakan daftar baru ini sebagai gantinya. Tapi ini akan menjadi situasi "pukulan keras" di mana agresor (pemakan simpul) akan mengunduh daftar ini sendiri secara progresif, dan menargetkan node bootstrap baru yang berani, kemudian membawanya secara offline juga.