17

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


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

7 ответов7

30

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

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

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

14

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

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

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

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

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

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

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

6

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

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

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

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

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

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

4

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

BitTorrent не быстрее.

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

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

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

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

3

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

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

1

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .