Почему части файла передаваемые через торрент качаются не последовательно, а случайным образом?
Образно говоря: есть части файла 1-10. Передаются через торрент. От чего зависит их порядок загрузки?
Другие языки программирования и технологии
Вопрос по технологии торрентов
с разных компов качаются части файла которые затем воедино соединяются, долго объяснять. лучше погуглите.
Эти файлы лежат ни на каком-то специальном сервере, а на компьютерах разных пользователей которые объединены в пиринговую сеть. Ваш торрент-клиент у кого какой кусок найдет - у того и скачивает этот кусок. Другой кусок берет у другого пользователя, третий у третьего и так далее
Представь, что файл находится пока что только у одного человека. Если все начнут качать его последовательно, то конца ни у кого не будет, у всех будет только начало и раздающий будет всего один. Файл нужно раздать целиком разным пользователям, чтобы те потом докачивали его друг у друга. Если раздавать последовательно, то у большинства будет начало, а данных на конец будет не хватать. В идеале всё (все данные) должно быть равномерно распространено.
В qbittorrent можно включить последовательную загрузку
Во-первых суть этого протокола: "скачал сам - раздай другим".
Так же поэтому и реализована загрузка случайных частей, ведь если все клиенты будут скачивать все части файла последовательно - то все они будут зависеть от клиента, который имеет все 100% частей файла, а если он уйдет с раздачи - все останутся у разбитого корыта.
А с возможностью загрузки случайных частей клиенты становятся менее зависимыми от негласного сервера, который имеет 100% файла, ведь как только клиент, который только что загрузил часть 20 (*условно*) тут же ее раздает всем остальным клиентам - это обеспечивает не только децентрализацию всей системы, но и снижение нагрузки на этот "сервер", ведь клиенты будут ломиться к нему только в самом начале, когда пойдет загрузка первых нескольких частей (потом они тут же начинают делиться друг с другом).
Полагаю так же, чтобы обеспечить ЕЩЕ БОЛЬШУЮ децентрализацию и отказоустойчивость (т. е ситуацию, когда раздающий уходит с раздачи), клиенты постоянно опрашивают наличие тех или иных частей у всех участников раздачи, т. е:
Клиент №1 спросил: сколько частей и какие части у вас есть?
Клиент №2 ответил: у меня 5 частей (1, 7, 2, 3, 6)
Клиент №3 ответил: у меня 4 части (1, 2, 4, 6)
Клиент №4 ответил: у меня 10 частей (1, 2, 3, 4. 6, 9, 11, 13, 8, 15)
и т. д. По этому получается, что частей "5", "10", "12", "14" и "16) нет ни у кого, а частей "7", "8" и "9" довольно мало - надо отдать сначала приоритет отсутствующим частям и тем, которых мало (отсутствующие части запрашиваются о раздающего 100% файл, а те части, которых мало могут и у других клиентов запрашиваться)
Данный протокол имеет большие возможности, например "снижение нагрузки на раздающих 100% комплект частей файла", ведь:
1. Клиенты сами самостоятельно обмениваются скачанными частями файла друг с другом - лишний раз никто раздающего не тревожит
2. Клиенты запрашивают у раздающего только те части, которые отсутствуют у всех клиентов - лишний раз никто раздающего не тревожит
3. Клиенты сами обмениваются теми частями файла, которых мало (ведь у пары клиентов они все-таки есть) - опять же лишний раз никто раздающего не тревожит
Так же поэтому торренты всегда загружаются на больших скоростях (почти всегда соответствующей максимально возможной по тарифу, в то время как скорость скачивания в браузере зачастую может быть ограничена) - все кроется в том, что клиенты вместо того, чтобы постоянно скачивать части у раздающего - тем самым забивая его канал и делая невозможным загрузку остальным клиентом на нормальной скорости, обращаются к нему только в крайней необходимости.
При этом раздающий 100% пакет данных так же является полноправным клиентом этой сети (только он ничего не загружает у других клиентов).
Высокая скорость обеспечивается за счет установления множества соединений с другими клиентами для скачивания одной лишь части.
Думаю, что вполне понятно объяснил
Так же поэтому и реализована загрузка случайных частей, ведь если все клиенты будут скачивать все части файла последовательно - то все они будут зависеть от клиента, который имеет все 100% частей файла, а если он уйдет с раздачи - все останутся у разбитого корыта.
А с возможностью загрузки случайных частей клиенты становятся менее зависимыми от негласного сервера, который имеет 100% файла, ведь как только клиент, который только что загрузил часть 20 (*условно*) тут же ее раздает всем остальным клиентам - это обеспечивает не только децентрализацию всей системы, но и снижение нагрузки на этот "сервер", ведь клиенты будут ломиться к нему только в самом начале, когда пойдет загрузка первых нескольких частей (потом они тут же начинают делиться друг с другом).
Полагаю так же, чтобы обеспечить ЕЩЕ БОЛЬШУЮ децентрализацию и отказоустойчивость (т. е ситуацию, когда раздающий уходит с раздачи), клиенты постоянно опрашивают наличие тех или иных частей у всех участников раздачи, т. е:
Клиент №1 спросил: сколько частей и какие части у вас есть?
Клиент №2 ответил: у меня 5 частей (1, 7, 2, 3, 6)
Клиент №3 ответил: у меня 4 части (1, 2, 4, 6)
Клиент №4 ответил: у меня 10 частей (1, 2, 3, 4. 6, 9, 11, 13, 8, 15)
и т. д. По этому получается, что частей "5", "10", "12", "14" и "16) нет ни у кого, а частей "7", "8" и "9" довольно мало - надо отдать сначала приоритет отсутствующим частям и тем, которых мало (отсутствующие части запрашиваются о раздающего 100% файл, а те части, которых мало могут и у других клиентов запрашиваться)
Данный протокол имеет большие возможности, например "снижение нагрузки на раздающих 100% комплект частей файла", ведь:
1. Клиенты сами самостоятельно обмениваются скачанными частями файла друг с другом - лишний раз никто раздающего не тревожит
2. Клиенты запрашивают у раздающего только те части, которые отсутствуют у всех клиентов - лишний раз никто раздающего не тревожит
3. Клиенты сами обмениваются теми частями файла, которых мало (ведь у пары клиентов они все-таки есть) - опять же лишний раз никто раздающего не тревожит
Так же поэтому торренты всегда загружаются на больших скоростях (почти всегда соответствующей максимально возможной по тарифу, в то время как скорость скачивания в браузере зачастую может быть ограничена) - все кроется в том, что клиенты вместо того, чтобы постоянно скачивать части у раздающего - тем самым забивая его канал и делая невозможным загрузку остальным клиентом на нормальной скорости, обращаются к нему только в крайней необходимости.
При этом раздающий 100% пакет данных так же является полноправным клиентом этой сети (только он ничего не загружает у других клиентов).
Высокая скорость обеспечивается за счет установления множества соединений с другими клиентами для скачивания одной лишь части.
Думаю, что вполне понятно объяснил
Какая часть быстрее получает коннект та и скачивается
Похожие вопросы
- помошь кто знает хорошо торрент
- скачала фильм с торрента, но он не проигрывается почемуто.В каком плеере смотреть формат MKV?
- как качать файлы торрент?
- Как увеличить скорость скачивания с торрента, если у меня скорость скачки файлов с торрента 120 кв / s єто нормально?
- Учусь веб-программированию. Можете обьяснить, для чего нужны эти технологии: знаю что html - для каркаса, css - для офор
- Вопрос программистам, сис.админам - вам все еще интересна тема информационных технологий?
- Технологии WPF, WCF, WF где используются и каким боком он относятся к C# ??
- печать "маслом" на холсте - какие есть технологии, максимально похожие на оригинал
- Расскажите пожалуйста о технологии Plug and Play
- Назовите самые перспективные, современные, распространенные интернет-технологии