Mengapa mendistribusikan potongan acak file lebih cepat daripada transfer yang berdekatan?

17

Mengapa dikatakan bahwa BitTorrent lebih cepat, sebagian, karena itu mentransfer potongan file acak daripada mentransfernya dari awal hingga selesai secara berdekatan / linear?


EDIT: Tapi mengapa mereka harus 'acak'? Mengapa bukan transfer 'semi-bersebelahan' yang lebih mudah diprediksi di mana satu rekan memberi Anda babak pertama, dan rekan kedua setengah lainnya? Secara teoritis ini akan mengurangi overhead.

Mateen Ulhaq
sumber

Jawaban:

6

Mengenai pengeditan yang menanyakan mengapa mereka harus acak: Katakanlah torrents diubah untuk hanya mengunduh blok pertama yang belum dimiliki pengunduh, sehingga menjamin transfer yang bersebelahan.

Saya kemudian membagikan file 100MB. 10 orang terhubung dan setiap unduhan 50MB sebelum saya offline.

Orang-orang ini kemudian kacau, karena mereka semua memiliki bagian pertama file, sementara hanya saya yang memiliki bagian kedua. Sampai saya membuatnya tersedia lagi, mereka tidak dapat menyelesaikan unduhan.

Alih-alih, dengan blok yang ditransfer dalam urutan acak seperti yang sebenarnya terjadi, masing-masing dari 10 orang ini memiliki serangkaian blok yang berbeda, sehingga mereka dapat berdagang di antara mereka sendiri untuk menyelesaikan unduhan mereka tanpa perlu saya berada di sekitar.

Bahkan lebih baik, karena masing-masing dari mereka memiliki kumpulan blok yang berbeda, masing-masing dapat diunduh dari semuanyadari yang lain untuk mengisi celah di salinan mereka. Suntingan Anda menyinggung gagasan mulai dari titik acak dalam file dan mengunduh secara bersamaan dari titik itu, tetapi itu akan meningkatkan jumlah tumpang tindih dari satu salinan pengunduh ke yang berikutnya (jika Alice mulai di awal file dan Bob mulai) 10% ke dalamnya, maka ada 40% dari file yang mereka berdua miliki dan hanya 10% unik untuk masing-masing yang mereka dapat berdagang tanpa saya menghubungkan kembali untuk membuat sisanya tersedia). Mengunduh dalam urutan acak memaksimalkan keunikan dari setiap blok pengunduh yang dimiliki, sehingga memaksimalkan kemampuan pengunduh untuk mulai berdagang di antara mereka sendiri dan memaksimalkan kemungkinannya bagi mereka untuk mengumpulkan salinan lengkap jika tidak ada benih yang tersedia.

Satu unduhan yang berdekatan mungkin (atau mungkin tidak, tergantung pada kondisi) lebih baik untuk Anda , tetapi mengunduh secara acak lebih baik untuk jaringan secara keseluruhan.

Dave Sherohman
sumber
"urutan acak memaksimalkan keunikan setiap set" - tepatnya.
eternalmatt
30

Kuncinya adalah Anda mendapatkan file dari beberapa sumber (peer) pada saat yang sama daripada dari satu sumber.

Jika Anda memiliki file yang dipecah menjadi 10 bagian dan membutuhkan 100 detik untuk mengunduh dari 1 server maka secara teoritis Anda bisa mendapatkan file dari 10 rekan dalam 10 detik (ditambah beberapa biaya overhead) karena setiap rekan dapat mengirimkan bagiannya dalam 10 detik. Dalam praktiknya itu akan memakan waktu lebih lama karena setiap rekan tidak akan sempurna, dan Anda mungkin akan mencapai batas bandwidth Anda (tetapi Anda mendapatkan ide).

Karena Anda harus memasang kembali file Anda tidak harus mengambil potongan-potongan secara berurutan. Jadi, jika Anda hanya memiliki 5 rekan dengan masing-masing memberikan 2 bagian ini bisa menjadi bagian acak dari file.

ChrisF
sumber
Sederhana. Bersih. +1
Xavierjazz
5
"Jika 6 orang bisa menggali 6 lubang dalam 6 menit, berapa lama 10 orang untuk menggali 10 lubang?"
Martin
4
@martin tergantung pada ukuran lubang (ukuran chunk) dan peralatan yang tersedia (bandwidth) :)
ratchet freak
14

Harus dikatakan bahwa ini sepenuhnya tergantung pada file yang dipermasalahkan, jumlah teman sebaya dan kecepatan sumber yang bukan bittorent.

Anda tidak akan pernah mengunduh lebih cepat dari bandwidth unduhan maksimum koneksi Anda, dan jika Anda mengunduh dari suatu tempat dengan bandwidth yang cukup, itu akan lebih cepat daripada menggunakan Bittorrent.

Namun, karena kecepatan internet semakin cepat dan semakin cepat, kami sampai pada titik di mana (lebih kecil) situs web dan host tidak dapat mengikutinya.

Sebagai contoh, ketika saya melihat-lihat harga colocation di London beberapa bulan yang lalu, saya dikutip harga yang sangat mengerikan untuk koneksi 5MB. Jika saya mengambil ini, itu akan melayani mayoritas orang dengan baik.

Namun, pada baris yang sama, jika saya meng-host beberapa file 500Mb, dan semua orang memiliki kabel (50Mb) atau jalur cepat ADSL2 + (24Mb), Anda akan melihat bahwa server saya tidak akan dapat melayani kecepatan secepat itu untuk Anda ...

... namun, jika saya menawarkan file yang sama kepada Anda melalui Bittorrent dan ada 200 orang, masing-masing hanya memberikan 30Kb / dtk, itu sama dengan 5.8Mb / dtk (dan, banyak orang memiliki kecepatan unggah yang jauh lebih cepat daripada itu!) .... dan sekarang, jika saya menjalankan Bittorrent di server saya dan menawarkan file yang sama, itu berarti ada total 10.8Mb / s yang dapat diunduh - lebih dari yang saya dapat berikan melalui pipa 5Mb / s pada saya sendiri

Bittorrent sangat banyak permainan angka, Anda harus memiliki cukup banyak orang mengunggah dengan bandwidth yang cukup ... Karena langkah-langkah tambahan yang terlibat seperti memeriksa integritas (dan fakta bahwa Anda harus mengunggah kembali), sulit baginya untuk pernah mengalahkan langsung mengunduh dari situs yang bagus dengan bandwidth yang cukup, tetapi, untuk banyak situs yang lebih kecil - ini adalah situs yang brilian atau bahkan lebih besar yang hanya ingin menghemat uang dari tagihan bandwidth mereka.

William Hilsum
sumber
belum lagi unggah dan unduh bandwidth pada koneksi kabel standar tidak sama (A dalam ADSL)
ratchet freak
Aturan bandwidth colo aneh, sepertinya bagi saya. Di sini, di Colorado, tampaknya sebagian besar colo menawarkan koneksi 100 Mbps dan membebani Anda dengan penggunaan setiap bulan, dan terserah Anda untuk mengatur dan membatasi kecepatan koneksi Anda sendiri jika Anda perlu menekan biaya.
Zan Lynx
Komentar lain: Saya lebih suka mengunduh dari Bittorrent jika memungkinkan karena pemeriksaan integritas. Sangat menyakitkan untuk dipaksa mengunduh ulang seluruh ISO DVD karena SHA1 tidak cocok. Bittorrent memeriksa setiap blok sehingga hanya sepotong kecil yang akan diganti.
Zan Lynx
@Zan Lynx - Aduh! Saya hanya punya masalah itu sekali dalam 5 tahun terakhir ... dan sebelum itu, terutama ketika saya memiliki ingatan yang buruk dengan diam-diam merusak hal-hal, saya bisa mengerti, tapi, belum melihatnya selama bertahun-tahun .... Ngomong-ngomong, saya sudah lama ingin mencari colocation dan hosting di luar negeri - Inggris sangat mahal untuk hampir semua hal :(
William Hilsum
4

Sebagian besar tanggapan tampaknya tidak menjawab pertanyaan Anda.

BitTorrent tidak lebih cepat.

Ini sebenarnya lebih lambat karena overhead menghubungkan ke berbagai sumber.

Namun, perbedaan nyata dalam praktiknya adalah Anda mengunduh dari banyak sumber yang berpotensi bertambah hingga lebih cepat daripada yang diberikan situs web kepada Anda. Banyak server web berada di bawah beban yang berat atau kecepatan terbatas sehingga Anda tidak mengisapnya kering.

Fakta bahwa BitTorrent mentransfer file dalam urutan acak tampaknya tidak memiliki pengaruh langsung pada kecepatannya.

Sehubungan dengan hasil edit Anda, potongan-potongan itu tidak acak! Mereka diprioritaskan berdasarkan kelangkaan: sepotong langka perlu menjadi kurang jarang secepat mungkin sehingga tidak hilang jika sumber yang tiba-tiba pergi. Ini berkaitan dengan ketersediaan, bukan kecepatan.

Milo
sumber
3

Ini masalah ketersediaan. Jika Anda harus mengunduh secara bersebelahan, maka Anda bergantung pada orang-orang yang menyimpan lebih banyak file daripada Anda. Setiap orang yang memiliki lebih sedikit file daripada Anda, tidak akan dapat mengirimkan data apa pun kepada Anda.

Jika potongan didistribusikan secara acak, jumlah host yang dapat Anda unduh akan lebih tinggi, sehingga Anda akan mengunduh file lebih cepat.

dkam
sumber
1

Torrent tidak selalu lebih cepat, tetapi ketika ada, salah satu alasannya adalah entropi jaringan. Sambungan dengan durasi berapa pun (pengunduhan file besar) dapat menurun seiring waktu, karena faktor-faktor acak dan tidak terkendali memengaruhi pengiriman paket, seperti kelebihan router dan masalah lain antara Anda dan server. Lebih banyak kesalahan berarti lebih banyak transmisi ulang paket, dan situasi ini cenderung memburuk dari waktu ke waktu. Torrent membuat banyak koneksi yang lebih kecil, melintasi banyak jalur rute, strategi yang dapat, dalam keadaan yang tepat mengurangi kesalahan dan paket yang hilang atau rusak, dan tampaknya lebih cepat, terutama ketika jumlah benih dan rekan meningkat.

Norman Kraft
sumber
1

Misalnya Anda mengirim dua orang ke toko kelontong untuk mengambil daftar barang. Anda memberi mereka masing-masing daftar yang sama persis. Namun, salah satu dari mereka harus mengambil item dalam urutan yang persis sama seperti yang ditampilkan pada daftar. Yang lain dapat mengambil barang dalam urutan apa pun yang mereka inginkan. Menurut Anda, mana yang akan selesai lebih dulu?

David Schwartz
sumber
Bagaimana jika semua barang diatur secara berurutan? (Defragmented?)
Mateen Ulhaq
Diatur dalam urutan apa? Dalam urutan abjad? Kecuali mereka kebetulan diatur persis seperti supermarket itu diatur, itu tidak akan membantu. Dalam analoginya, "supermarket" adalah daftar blokir berbagai pengunggah. (Jika semua orang mulai dari awal, maka dua orang yang masing-masing memiliki 33% dari file tidak dapat saling membantu, karena mereka akan memiliki blok yang sama persis. Yuck.)
David Schwartz