Битторент — оптимизация скачивания

Posted by Nick on 15 июля, 2007
2014

Рассматриваем ситуацию, когда человек скачивает какой-то файл одного из популярных форматов из сети, используя торрент-файл (предполагаем, что источников достаточно для скачивания всего файла). Насколько я понимаю, битторент-клиент скачивает файл в произвольном порядке — просто соединяется с несколькими источниками, которых выбирает в случайном порядке, и качает с них все, что у них есть, особо не заморачиваясь.
Мне не очень нравится ждать, пока фильм скачается полностью, я хочу начать смотреть его как можно раньше (как при просмотре потокового видео с YouTube). Почему бы не выкачивать в первую очередь наиболее важные части файла (заголовки avi-файла и первые кадры для фильмов; оглавление архива и первые в списке файлы для архивных файлов; просто начало файла для неизвестных форматов)?

Tags: ,

3 комментария to Битторент — оптимизация скачивания

  • Потому что так наилучшим образом задействуються доступные каналы всех пользователей. Как только ваш клиент скачал какой-то блок (пусть даже с конца), он может начать раздавать его другим клиентам, таким образом разгружаю оригинального сида. Т.е. как только тот кто начала раздавать фильм, скажем, отдаст его 1 раз (650 мег трафика) пусть даже 100 личам, т.е. у каждого будет по 6 мегабайт фильма, но общая доступность увеличиться в два раза, потому что они смогут качать не только с сида но и с друг друга. А дальше этот процесс будет развиваться лавинообразно.

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

    • я хорошо себе представляю технологию, на самом деле проблемы, о которой Вы говорите во второй части, не возникнет: большой файл поделен на очень много кусков, и если из 1000 кусков в первую очередь всем нужно будет 50, то сид будет раздавать по 10 кусков разным клиентам, и в итоге они начнут обмениваться не ПОСЛЕ того, как важный кусок докачан, а еще ДО. при этом, то, что все сразу ломятся за этим куском, означает также, что у он будет всех пиров в первую очередь — то есть N+1-ому личеру не надо уже сида мучить.
      конечно, весь вопрос в том, насколько быстро клиенты переориентируются на других с изменением обстановки. думаю, это происходит достаточно быстро.

      • так ведь после того как каждый лич первые 50 кусков сольют они захотят именно вторые 50 🙂
        Ну если именно фильм по порядку хочеться смотреть, если заголовки (точнее эпилог скажем для зипа) архива — другое дело. И вопрос не в N + 1. Даже если личей 5 🙂
        Вообще в каждом конкретном случае (количество блоков, количество личей и сидов) все будет по разному, но раздача рандомом — просто наиболее оптимальна. Пусть даже разница и небольшая, но 20% — тоже время и деньги 🙂 Деньги даже хотя бы с точки зрения трафа сида 🙂

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *