Почему распространение случайных фрагментов файла происходит быстрее, чем непрерывная передача?


17

Почему говорят, что BitTorrent быстрее, отчасти потому, что он передает случайные части файла вместо того, чтобы передавать его от начала до конца непрерывным / линейным способом?


РЕДАКТИРОВАТЬ: Но почему они должны быть «случайным»? Почему не более предсказуемый «полунепрерывный» перевод, при котором один пир дает вам первую половину, а второй - другую половину? Это теоретически уменьшит накладные расходы.

Ответы:


6

Что касается редактирования, спрашивающего, почему они должны быть случайными: скажем, что торренты были изменены, чтобы загрузить только первый блок, которого у загрузчика еще нет, таким образом гарантируя непрерывную передачу.

Затем я делюсь файлом размером 100 МБ. 10 человек подключаются, и каждый загружает 50 МБ, прежде чем я уйду в автономный режим.

Эти люди затем облажались, потому что у них всех есть первая половина файла, в то время как только у меня есть вторая половина. Пока я не сделаю его доступным, они не смогут завершить загрузку.

Вместо этого, когда блоки передаются в случайном порядке, как на самом деле, каждый из этих 10 человек имеет свой набор блоков, поэтому они могут обмениваться между собой, чтобы завершить загрузку, не требуя, чтобы я был рядом.

Тем не менее, еще лучше, потому что каждый из них имеет свой набор блоков, каждый из которых можно скачать со всехдругих, чтобы заполнить пробелы в их копии. Ваше редактирование ссылается на идею начинать со случайной точки в файле и загружать непрерывно с этой точки, но это увеличит степень перекрытия от одной копии загрузчика к другой (если Алиса запускается в начале файла, а Боб запускается 10%, затем 40% файла, который они оба имеют, и только 10% уникальны для каждого из них, что они могут торговать без моего повторного подключения, чтобы сделать остальные доступными). Загрузка в случайном порядке максимизирует уникальность каждого набора блоков каждого загрузчика, тем самым максимизируя способность загрузчиков начать торговать между собой и максимально увеличивая вероятность того, что они смогут собрать полную копию, если нет доступных исходников.

Одна непрерывная загрузка может (или не может, в зависимости от условий) быть лучше для вас , но загрузка в случайном порядке лучше для сети в целом.


«Случайный порядок максимизирует уникальность каждого набора» - точно.
Eternalmatt

30

Ключ в том, что вы получаете файл из нескольких источников (пиров) одновременно, а не из одного источника.

Если у вас есть файл, который разбит на 10 частей, и загрузка с 1 сервера занимает 100 секунд, то теоретически вы можете получить файл от 10 пиров за 10 секунд (плюс некоторые накладные расходы), поскольку каждый пир может доставить свою часть за 10 секунд. На практике это займет больше времени, так как каждый узел не будет идеальным, и вы, вероятно, достигнете своего предела пропускной способности (но вы поняли идею).

Поскольку вам все равно придется заново собирать файл, вам не нужно извлекать фрагменты по порядку. Так что если у вас есть только 5 пиров, каждый из которых предоставляет 2 части, это могут быть случайные части файла.


Просто. Ясно. +1
Xavierjazz

5
«Если 6 человек могут вырыть 6 ям за 6 минут, сколько времени потребуется 10 мужчинам, чтобы вырыть 10 ям?»
Мартин

4
@martin зависит от размера отверстий (размер куска) и доступного оборудования (пропускная способность) :)
чокнутый урод

14

Следует сказать, что это полностью зависит от рассматриваемого файла, количества пиров и скорости не битторентного источника.

Вы никогда не загрузите быстрее, чем максимальная пропускная способность загрузки вашего соединения, и если вы загружаете из места с достаточной пропускной способностью, это будет быстрее, чем при использовании Bittorrent.

Однако по мере того, как скорость интернета становится все быстрее и быстрее, мы приближаемся к тому, что (меньшие) сайты и хосты не могут идти в ногу.

Например, когда я несколько месяцев назад смотрел на цены на колокейшн в Лондоне, меня цитировали абсолютно ужасные цены на соединение 5 Мб. Если бы я взял это, это хорошо послужило бы большинству людей.

Однако, в той же строке, если бы я должен был разместить несколько файлов по 500 МБ, и у всех были кабельные (50 МБ) или быстрые линии ADSL2 + (24 МБ), вы заметили бы, что мой сервер не сможет обслуживать такую ​​быструю скорость для вас ...

... однако, если бы я предлагал вам один и тот же файл через Bittorrent, и было 200 человек, каждый из которых давал всего 30 Кбит / с, это равнялось бы 5,8 Мбит / с (и у многих людей скорость загрузки намного выше, чем у этого!) .... и теперь, если бы я должен был запустить Bittorrent на моем сервере и предложить тот же файл, это означало бы, что в общей сложности доступно для скачивания 10,8 Мбит / с - гораздо больше, чем я мог бы предоставить через этот канал 5 Мбит / с на мой собственный.

Bittorrent очень похожа на игру чисел, у вас должно быть достаточно людей, загружающих с достаточной пропускной способностью ... Из-за дополнительных шагов, таких как проверка целостности (и тот факт, что вы должны загружать обратно), ему трудно когда-либо побеждать напрямую. загрузка с хорошего сайта с достаточной пропускной способностью, но для многих небольших сайтов - это замечательные или даже более крупные сайты, которые просто хотят сэкономить на счетах за пропускную способность.


не говоря уже о том, что пропускная способность загрузки и выгрузки при стандартных кабельных соединениях не одинакова (A в ADSL)
трещотка урод

Странное коло правило пропускной способности, это звучит как для меня. Здесь, в Колорадо, кажется, что большинство colos предлагают соединения со скоростью 100 Мбит / с и взимают плату за использование каждый месяц, и вы сами можете управлять и ограничивать собственную скорость соединения, если вам необходимо снизить стоимость.
Zan Lynx

Еще один комментарий: я предпочитаю скачивать с Bittorrent, когда это возможно, из-за проверки целостности. Невероятно больно заставлять перезагружать весь DVD ISO, потому что SHA1 не совпадает. Bittorrent проверяет каждый блок, поэтому его нужно заменить лишь небольшим фрагментом.
Zan Lynx

@ Zan Lynx - Ой! У меня была эта проблема только один раз за последние 5 лет ... и до того, это было, в основном, когда у меня была плохая память, которая молча портила вещи, я могу понять, но не видел ее много лет .... Во всяком случае, я имел в виду искать колокейшн и хостинг за границей с некоторого времени - Англия очень дорога почти для всего :(
Уильям Хилсум

4

Большинство ответов не отвечают на ваш вопрос.

BitTorrent не быстрее.

Это на самом деле медленнее из-за накладных расходов на подключение к нескольким источникам.

Однако реальное различие на практике заключается в том, что вы загружаете из многих источников, которые могут сложиться быстрее, чем то, что может дать вам веб-сайт. Многие веб-серверы находятся под большой нагрузкой или иным образом ограничены по скорости, поэтому вы не можете их высосать.

Тот факт, что BitTorrent передает файл в случайном порядке, не влияет на его скорость.

Что касается вашего редактирования, кусочки не случайны! Они расставлены по приоритетам на основе редкости: редкий предмет должен стать менее редким как можно быстрее, чтобы он не терялся, если источник, у которого он есть, внезапно исчезает. Это связано с доступностью, а не скоростью.


3

Это проблема доступности. Если вам приходится загружать файлы непрерывно, то вы зависите от людей, размещающих больше файлов, чем вы. Каждый человек, у которого меньше файла, чем вы, не сможет отправить вам какие-либо данные.

Если чанки распределяются случайным образом, количество хостов, с которых вы можете загружать файлы, будет выше, поэтому вы скачаете файл быстрее.


1

Торренты не всегда быстрее, но когда они есть, одной из причин является энтропия сети. Соединение любой длительности (загрузка большого файла) может со временем ухудшаться, так как случайные неконтролируемые факторы влияют на передачу пакетов, такие как перегрузка маршрутизатора и другие проблемы между вами и сервером. Чем больше ошибок, тем больше повторных передач пакетов, и со временем эта ситуация ухудшается. Торренты создают много меньших соединений по многим путям маршрутизации - стратегия, которая может при правильных обстоятельствах уменьшить количество ошибок и потерянных или поврежденных пакетов и кажется более быстрой, особенно по мере увеличения числа начальных и одноранговых узлов.


1

Скажем, вы отправили двух человек в продуктовый магазин, чтобы забрать список предметов. Вы даете им каждый точно такой же список. Однако один из них должен забрать предметы в том порядке, в котором они указаны в списке. Другой может забрать предметы в любом порядке. Как вы думаете, что закончится первым?


Что делать, если все предметы были расположены в порядке? (Дефрагментированный?)
Матин Улхак

В каком порядке? В алфавитном порядке? Если бы они просто не устроились так, как устроен супермаркет, это не помогло бы. По аналогии, «супермаркет» - это блочные списки различных загрузчиков. (Если бы все начинали с самого начала, то два человека, у каждого из которых было 33% файла, не могли бы помочь друг другу, так как у них были бы точно такие же блоки. Фу.)
Дэвид Шварц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.