Ketika klien torrent Anda bergabung dengan segerombolan untuk berbagi dan mengumpulkan potongan file, bagaimana tepatnya tahu di mana semua rekan-rekannya berada? Baca terus karena kita melihat-lihat di dalam mekanisme yang mendasari protokol BitTorrent.
Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Pembaca SuperUser Steve V. memiliki pertanyaan yang sangat spesifik tentang sistem Distributed Hash Table (DHT) dalam protokol BitTorrent:
Saya sudah membaca jawaban SuperUser dan artikel Wikipedia ini tetapi keduanya terlalu teknis bagi saya untuk benar-benar membungkus kepala saya.
Saya memahami ide pelacak: klien terhubung ke server pusat yang menyimpan daftar rekan di segerombolan.
Saya juga memahami ide pertukaran teman: klien yang sudah ada dalam kelompok mengirim daftar lengkap rekan-rekan mereka satu sama lain. Jika rekan-rekan baru ditemukan, mereka ditambahkan ke daftar.
Pertanyaan saya adalah, bagaimana cara kerja DHT? Itu adalah,bagaimana bisa klien baru bergabung dengan segerombolan tanpa pelacak atau pengetahuan setidaknya satu anggota dari segerombolan untuk bertukar teman?
(Catatan: penjelasan sederhana adalah yang terbaik.)
Pertanyaannya pada gilirannya diminta jawaban yang sangat rinci tentang berbagai fungsi sistem BitTorrent; mari kita lihat sekarang.
Kontributor SuperUser Allquixotic menawarkan penjelasan mendalam:
Bagaimana bisa klien baru bergabung dengan segerombolan tanpa pelacak atau pengetahuan setidaknya satu anggota dari segerombolan untuk bertukar teman?
Anda tidak bisa. Itu tidak mungkin.*
* (Kecuali simpul pada Andajaringan area lokal kebetulan sudah menjadi node di DHT. Dalam hal ini, Anda bisa menggunakan mekanisme penyiaran, seperti Avahi, untuk "menemukan" rekan ini, dan bootstrap dari mereka. Tapi bagaimana caranyamereka bootstrap sendiri? Akhirnya, Anda akan mencapai situasi di mana Anda perlu terhubung ke Internet publik. Dan Internet publik adalah unicast-only, bukan multicast, jadi Anda terjebak dengan menggunakan daftar rekan-rekan yang ditentukan sebelumnya.)
Referensi
Bittorrent DHT diimplementasikan melalui protokol yang dikenal sebagai Kademlia, yang merupakan kasus khusus dari konsep teoritis dari tabel hash Distributed.
Eksposisi
Dengan protokol Kademlia, ketika Anda bergabung dengan jaringan, Anda menjalani prosedur bootstrap, yang mutlak mengharuskan Anda mengetahuinya,terlebih dahulu, alamat IP dan port dari setidaknya satu node sudah berpartisipasi dalam jaringan DHT. Pelacak yang Anda sambungkan ke, misalnya, mungkin merupakan node 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” tersebut untuk mendapatkan koneksi ke lebih banyak node, yang dapat menyediakan keduanya konektivitas ke node lain, dan data muatan (potongan unduhan).
Saya pikir pertanyaan Anda yang sebenarnya dalam huruf tebal - yaitu bagaimana bergabung dengan jaringan Kademlia DHT tanpa mengetahuiapa sajaanggota lain - didasarkan pada asumsi yang salah.
Jawaban sederhana untuk pertanyaan Anda dalam huruf tebal adalah,kamu tidak. Jika Anda tidak tahu informasi APAPUN tentang bahkan satu host yang mungkin berisi metadata DHT, Anda terjebak - Anda bahkan tidak dapat memulai. Maksud saya, tentu saja, Anda bisa melakukan upaya paksa untuk menemukan IP di internet publik dengan port terbuka yang kebetulan menyiarkan informasi DHT. Tetapi lebih mungkin, klien BT Anda dikodekan ke beberapa IP statis tertentu atau DNS yang menyelesaikan ke node DHT stabil, yang hanya menyediakan metadata DHT.
Pada dasarnya, DHT hanya terdesentralisasi sebagai mekanisme penggabungan, dan karena mekanisme gabungannya cukup rapuh (tidak ada cara untuk "menyiarkan" ke seluruh Internet! Jadi Anda harusunicastke host pra-tugas individu untuk mendapatkan data DHT), Kademlia DHT tidaksangat terdesentralisasi. Tidak dalam arti kata yang ketat.
Bayangkan skenario ini: Seseorang yang ingin P2P berhenti keluar dan menyiapkan serangansemuanode DHT yang umum digunakan yang digunakan untuk bootstrapping. Setelah mereka melakukan serangan, mereka melakukannyasemua node sekaligus.Memukul; setiap simpul DHT bootstrapping tunggal turun semua dalam satu gerakan. Sekarang apa? Anda terjebak dengan koneksi kepelacak terpusat untuk mengunduh daftar teman-teman tradisional dari mereka. Nah, jika mereka menyerang pelacak juga, maka Anda benar-benar,sangat sebuah sungai kecil. Dengan kata lain, Kademlia dan seluruh jaringan BT terkendala oleh keterbatasan Internet itu sendiri, karena itu, ada sejumlah komputer yang terbatas (dan relatif kecil) yang Anda harus berhasil menyerang atau mengambil offline untuk mencegah> 90% pengguna terhubung ke jaringan.
Setelah simpul bootstrap "pseudo-terpusat" semua hilang, simpul-simpul interior DHT, yang tidak bootstrap karenatidak ada orang di luar DHT yang tahu tentang node interior, tidak berguna; mereka tidak bisa membawa node baru ke DHT. Jadi, karena setiap node interior terputus dari DHT dari waktu ke waktu, baik karena orang-orang mematikan komputer mereka, me-reboot untuk pembaruan, dll, jaringan akan runtuh.
Tentu saja, untuk menyiasati hal ini, seseorang dapat menyebarkan klien BitTorrent yang ditambal dengan daftar baru node DHT atau alamat DNS stabil yang telah ditentukan sebelumnya, dan dengan keras beriklan ke komunitas P2P untuk menggunakan daftar baru ini sebagai gantinya. Tetapi ini akan menjadi situasi “whack-a-mole” di mana agresor (pemakan-pemakan node) akan semakin mengunduh daftar ini sendiri, dan menargetkan simpul bootstrap baru yang berani, kemudian membawanya juga offline.
Kami tidak hanya belajar jawaban atas pertanyaan asli tetapi kami juga belajar sedikit tentang sifat sistem BitTorrent dan kerentanannya.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.