1Sep

Bagaimana Klien Bittorrent Awalnya Temukan Rekan-rekannya?

click fraud protection

Ketika klien torrent Anda bergabung dengan gerombolan untuk berbagi dan mengumpulkan potongan file, bagaimana tepatnya hal itu diketahui di mana semua rekan sejawatnya? Baca terus saat kita menyodok di dalam mekanisme yang mendasari protokol BitTorrent.

Pertanyaan &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.

Pertanyaan

Pembaca superuser Steve V. memiliki pertanyaan yang sangat spesifik tentang sistem Hash Table Terdistribusi( DHT) dalam protokol BitTorrent:

Saya telah membaca jawaban SuperUser ini dan artikel Wikipedia ini namun keduanya terlalu teknis bagi saya untuk benar-benarbungkus kepalaku.

Saya memahami gagasan pelacak: klien terhubung ke server pusat yang mengelola daftar teman sebaya di sebuah kawanan.

Saya juga mengerti gagasan pertukaran rekan: klien yang sudah berkerumun mengirim daftar lengkap teman sebayanya satu sama lain. Jika rekan-rekan baru ditemukan, mereka akan ditambahkan ke dalam daftar.

instagram viewer

Pertanyaan saya adalah, bagaimana DHT bekerja? Artinya, bagaimana bisa seorang klien baru bergabung dengan seorang kawanan tanpa pelacak atau pengetahuan setidaknya satu anggota kawanan untuk bertukar teman?

( Catatan: penjelasan sederhana adalah yang terbaik.)

Pertanyaannya pada gilirannya mendorong jawaban yang sangat rinci tentang berbagai fungsi sistem BitTorrent;mari kita lihat sekarang.

Jawaban

SuperUser kontributor Allquixotic menawarkan penjelasan mendalam:

Bagaimana seorang klien baru bergabung dengan seorang kawanan tanpa pelacak atau pengetahuan setidaknya satu anggota kawanan untuk bertukar teman?

Anda tidak bisa. Tidak mungkin. *

* ( Kecuali sebuah simpul pada jaringan area lokal Anda kebetulan sudah menjadi simpul di DHT. Dalam kasus ini, Anda bisa menggunakan mekanisme penyiaran, seperti Avahi, untuk "menemukan" rekan ini, dan bootstrap dari mereka Tapi bagaimana mereka bootstrap sendiri? Akhirnya, Anda akan menghadapi situasi di mana Anda perlu terhubung ke Internet publik. Dan Internet publik hanya unicast, bukan multicast, jadi Anda terjebakdengan menggunakan daftar peer yang telah ditentukan sebelumnya.)

Referensi

Bittorrent DHT dilaksanakan melalui sebuah protokol yang dikenal sebagai Kademlia, yang merupakan kasus khusus dari konsep teoritis dari tabel hash terdistribusi.

Exposition

Dengan protokol Kademlia, saat Anda bergabung dengan jaringan, Anda menjalani prosedur bootstrap, yang secara mutlak mengharuskan Anda mengetahui, sebelumnya , alamat IP dan port dari setidaknya satu node yang telah berpartisipasi dalam jaringan DHT.Pelacak yang Anda hubungkan ke, misalnya, mungkin merupakan simpul DHT.Setelah Anda terhubung ke satu simpul DHT, Anda kemudian melanjutkan untuk mendownload informasi dari DHT, yang menyediakan informasi konektivitas untuk lebih banyak simpul, dan Anda kemudian menavigasi struktur "grafik" itu untuk mendapatkan koneksi ke simpul yang lebih banyak, yang dapat memberikan keduanya.konektivitas ke node lain, dan data payload( potongan download).

Saya kira pertanyaan Anda yang sebenarnya dengan huruf tebal - bagaimana cara bergabung dengan jaringan DHT Kademlia tanpa mengetahui anggota lainnya - didasarkan pada asumsi yang salah.

Jawaban sederhana untuk pertanyaan Anda dalam huruf tebal adalah, Anda tidak .Jika Anda sama sekali tidak tahu informasi APAPUN tentang satu host yang mungkin berisi metadata DHT, Anda akan terjebak - Anda bahkan tidak dapat memulai. Maksud saya, tentu saja, Anda bisa berusaha keras untuk menemukan IP di internet publik dengan port terbuka yang kebetulan menyiarkan informasi DHT.Tapi yang lebih mungkin, klien BT Anda sulit diberi kode pada beberapa IP statis atau DNS spesifik yang berhasil menyelesaikan simpul DHT yang stabil, yang hanya menyediakan metadata DHT.

Pada dasarnya, DHT hanya didesentralisasi sebagai mekanisme penggabungan, dan karena mekanisme penggabungan cukup rapuh( tidak ada cara untuk "menyiarkan" seluruh Internet! Jadi Anda harus unicast ke host pra-ditugaskan individumendapatkan data DHT), Kademlia DHT tidak benar-benar terdesentralisasi. Tidak dalam arti kata yang paling ketat.

Bayangkan skenario ini: Seseorang yang ingin P2P berhenti keluar dan menyiapkan serangan terhadap semua biasa menggunakan simpul DHT stabil yang digunakan untuk bootstrap. Begitu mereka melakukan serangan mereka, mereka akan menyebarkannya ke semua simpul sekaligus. Wham ;setiap simpul DHT bootstrap turun semua dalam satu gerakan. Sekarang apa? Anda terjebak dengan koneksi ke pelacak terpusat untuk mendownload daftar rekan tradisional dari daftar tersebut. Nah, jika mereka menyerang pelacak juga, maka Anda benar-benar, benar-benar menyusuri sungai kecil. Dengan kata lain, Kademlia dan seluruh jaringan BT dibatasi oleh keterbatasan Internet itu sendiri, karena ada sejumlah komputer yang terbatas dan relatif kecil sehingga Anda harus berhasil menyerang atau offline untuk mencegah & gt; 90% pengguna terhubung ke jaringan.

Begitu node bootstrap "pseudo-terpusat" semuanya hilang, simpul interior DHT, yang tidak di-bootstrap karena tidak ada di bagian luar DHT yang mengetahui tentang nodus interior , tidak berguna;mereka tidak bisa membawa simpul baru ke dalam DHT.Jadi, karena masing-masing simpul interior terputus dari DHT dari waktu ke waktu, entah karena orang mematikan komputer mereka, melakukan reboot untuk pembaruan, dll, jaringan akan runtuh. Tentu saja, untuk mengatasi masalah ini, seseorang dapat menggunakan klien BitTorrent yang telah ditambal dengan daftar nodus DHT atau alamat DNS stabil yang telah ditentukan sebelumnya, dan dengan keras mengiklankan ke komunitas P2P untuk menggunakan daftar baru ini. Tapi ini akan menjadi situasi "whack-a-mole" dimana agresor( pemakan node) akan semakin mendownload daftar ini sendiri, dan menargetkan node bootstrap yang berani, kemudian membawa mereka secara offline juga.

Kami tidak hanya mempelajari jawaban atas pertanyaan awal tapi kami juga belajar sedikit tentang sifat sistem BitTorrent dan kerentanannya.

Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.