Как работают ускорители загрузки?
Мы требуем, чтобы все запросы для загрузки имели действительный логин (не-http), и мы генерируем транзакционные билеты для каждой загрузки. Если вы хотите перейти к одной из ссылок для загрузки и попытаться "переиграть" транзакцию, мы используем HTTP-коды для пересылки вам нового билета транзакции. Это отлично подходит для большинства пользователей. Однако существует небольшое подмножество, в котором используются Download Accelerators, которые просто пытаются повторно воспроизвести билет транзакции несколько раз.
Итак, чтобы определить, хотим ли мы или даже можем поддерживать ускорители загрузки или нет, мы пытаемся понять, как они работают.
Как со вторым, третьим или даже четвертым одновременным подключением к веб-серверу, обеспечивающим скорость статического файла, процесс загрузки?
Что делает программа ускорителя?
Ответы
Ответ 1
Вы получите более полный обзор Download Accelerators на wikipedia.
Ускорение многогранно
Первая
Существенное преимущество управляемых/ускоренных загрузок - это инструмент, о котором идет речь, помнит переданные смещения Start/Stop и использует "частичные" и "диапазонные" заголовки для запроса частей файла, а не всего.
Это означает, что если что-то умирает в середине транзакции (т.е. тайм-аут TCP), он просто восстанавливает место, где оно остановилось, и вам не нужно начинать с нуля.
Таким образом, если у вас есть прерывистое соединение, суммарное время передачи значительно уменьшается.
Второй
Загрузите ускорители, чтобы разбить один перенос на несколько меньших сегментов одинакового размера, используя одну и ту же механику пуска-остановки и выполнить их параллельно, что значительно улучшает время передачи по медленным сетям.
Там эта досадная вещь называется продуктом с задержкой полосы пропускания, где размер буферов TCP в обоих концах делает некоторые математические вещи в сочетании с временем пинга, чтобы получить фактическую скорость, и это на практике означает, что большие времена пинга будут ограничивать ваши независимо от того, сколько мегабит/сек имеют временные соединения.
Однако это ограничение, по-видимому, относится к "для каждого соединения", поэтому несколько TCP-соединений с одним сервером могут помочь снизить вредоносность производительности с высоким временем ожидания ping.
Следовательно, люди, которые живут рядом, вряд ли будут нуждаться в сегментированной передаче, но люди, которые живут в отдаленных местах, с большей вероятностью получат выгоду от сумасшедшего с их сегментацией.
В-третьих
В некоторых случаях можно найти несколько серверов, которые предоставляют один и тот же ресурс, а иногда и один общий DNS-адрес для нескольких IP-адресов, или сервер является частью какой-либо зеркальной сети. И диспетчеры загрузки/ускорители могут обнаружить это и применить сегментированную технологию передачи на нескольких серверах, позволяя загрузчику получить более общую пропускную способность, предоставленную им.
Поддержка
Поддержка первого рода ускорений - это то, что я лично предлагаю как "минимум" для поддержки. В основном, поскольку это облегчает жизнь пользователям и уменьшает объем совокупной передачи данных, которую вы должны предоставить, из-за того, что пользователям не нужно повторно получать один и тот же контент.
И чтобы облегчить это, он рекомендовал вам вычислить, сколько они передали и не истекает билет до тех пор, пока они не будут выглядеть "законченными" (при привязке трафика к первому IP-адресу, использующему билет), или данному "разумному" Время его скачивания прошло. т.е.: дайте им окно благодати, прежде чем требовать, чтобы они получили новый билет.
Поддержка второго и третьего дает вам бонусные баллы, и пользователи обычно желают, по крайней мере, второго, в основном потому, что международным клиентам не нравится, когда их рассматривают как клиентов второго класса просто из-за большего времени пинга, и это не объективно потребляют больше полосы пропускания в любом смысле, что имеет значение. Хуже всего то, что они могут привести к тому, что ваша общая пропускная способность будет нежелательна для работы вашей службы.
Это разумно прямо вперед, чтобы обеспечить первый вид выгоды, не позволяя второму просто ограничивать количество одновременных передач из одного билета.
Ответ 2
Я считаю, что идея состоит в том, что многие серверы ограничивают или равномерно распределяют пропускную способность по всем соединениям. Имея несколько соединений, вы обманываете эту систему и получаете больше, чем ваша "справедливая" доля пропускной способности.
Ответ 3
Все о Маленький закон. В частности, каждый поток на веб-сервер видит определенное количество задержек TCP, и поэтому он будет хранить только столько данных. Хитрости, такие как увеличение размера окна TCP и реализация выборочной помощи, но плохо реализуются и, как правило, вызывают больше проблем, чем они решают.
Наличие нескольких потоков означает, что латентность, наблюдаемая каждым потоком, менее важна, поскольку глобальная пропускная способность увеличивается в целом.
Другим ключевым преимуществом ускорителя загрузки даже при использовании одного потока является то, что он обычно лучше, чем использование веб-браузеров, встроенных в инструмент загрузки. Например, если веб-браузер решит умереть, инструмент загрузки будет продолжен. Инструмент загрузки может поддерживать такие функции, как приостановка/возобновление работы, которое не поддерживается встроенным браузером.
Ответ 4
Мое понимание заключается в том, что один из способов загрузки ускорителей - это открытие многих параллельных TCP-соединений - каждое TCP-соединение может идти только так быстро и часто ограничено на стороне сервера.
TCP реализован таким образом, что при возникновении тайм-аута период ожидания увеличивается. Это очень эффективно для предотвращения сетевых перегрузок за счет скорости на отдельных TCP-соединениях.
Ускорители загрузки могут обойти это, открыв десятки TCP-соединений и отбросив те, которые замедляются ниже определенного порога, а затем открывают новые, чтобы заменить медленные соединения.
Эффективен для одного пользователя, я считаю, что это плохой этикет в целом.
Вы видите, что ускоритель загрузки пытается повторно аутентифицировать, используя тот же самый билет транзакции - я бы рекомендовал игнорировать эти запросы.
Ответ 5
От: http://askville.amazon.com/download-accelerator-protocol-work-advantages-benefits-application-area-scope-plz-suggest-URLs/AnswerViewer.do?requestId=9337813
Цитата:
Наиболее распространенным способом ускорения загрузки является открытие парлелейных загрузок. Многие серверы ограничивают полосу пропускания одного соединения, поэтому открытие большего количества параллельно увеличивает скорость. Это работает, указав смещение, которое должна загрузить загрузка, которая поддерживается как для HTTP, так и для FTP.
Конечно, этот способ ускорения довольно "несостоятелен". Ограничение полосы пропускания реализовано, чтобы иметь возможность обслуживать большее количество клиентов, поэтому использование этой техники снижает максимальное количество одноранговых узлов, которые могут загружаться. Это причина, по которой многие серверы ограничивают количество параллельных соединений (признанных по IP), например. многие FTP-серверы делают это, поэтому у вас возникают проблемы, если вы загружаете файл и пытаетесь продолжить просмотр с помощью своего браузера. Технически это два параллельных соединения.
Другой способ увеличения скорости загрузки - это одноранговая сеть, где разные источники, например. ограниченные асинхронной DSL на стороне загрузки, используются для загрузки.
Ответ 6
Большинство загрузчиков "ускорителей" действительно не ускоряют что-либо вообще. То, что они умеют делать, - это засорение сетевого трафика, забивание вашего сервера и нарушение пользовательских сценариев, как вы видели. В основном, как это работает, так это то, что вместо того, чтобы делать один запрос и загружать файл от начала до конца, он делает четыре запроса... первый загружается с 0-25%, второй - с 25-50% и так далее, и это делает их всех одновременно. Единственный частный случай, когда это помогает любому, заключается в том, что их интернет-провайдер или брандмауэр делает какое-то формирование трафика, так что индивидуальная скорость загрузки ограничена меньшей, чем их общая скорость загрузки.
Лично, если это вызывает у вас какие-либо проблемы, я бы сказал, просто сообщите, что ускорители загрузки не поддерживаются, и пользователи загружают их в обычном режиме или используют только один поток.
Ответ 7
Они вообще не делают.
Чтобы ответить на суть вашего вопроса, предполагается, что сервер загружает ограничения скорости для каждого соединения, поэтому одновременная загрузка нескольких фрагментов позволит пользователю максимально использовать доступную полосу пропускания в конце.