Более подробный обзор ускорителей загрузки вы найдете на wikipedia .
Ускорение многогранно
Первый
Существенным преимуществом управляемых / ускоренных загрузок является то, что рассматриваемый инструмент запоминает переданные смещения начала / остановки и использует «частичные» и «диапазонные» заголовки для запроса частей файла вместо всех его.
Это означает, что если что-то умирает в середине транзакции (т. Е. TCP Time-out), оно просто повторно соединяется с того места, где остановилось, и вам не нужно начинать с нуля.
Таким образом, если у вас прерывистое соединение, совокупное время передачи значительно уменьшается.
Второй
Загрузочные ускорители, например, разбивают одну передачу на несколько меньших сегментов одинакового размера, используя одну и ту же механику начала-диапазона-остановки, и выполняют их параллельно, что значительно сокращает время передачи по медленным сетям.
Существует такая раздражающая вещь, которая называется bandwidth-delay-product, где размер буферов TCP на обоих концах выполняет некоторую математическую задачу в сочетании со временем пинга, чтобы получить реальную опытную скорость, и на практике это означает, что большое время пинга ограничит ваш скорость вне зависимости от того, сколько мегабит / сек имеют все временные соединения.
Однако это ограничение, по-видимому, относится к каждому соединению, поэтому несколько TCP-подключений к одному серверу могут помочь снизить производительность, связанную с временем пинга с высокой задержкой.
Следовательно, людям, живущим поблизости, вряд ли понадобится делать сегментированный перенос, но люди, которые живут в отдаленных местах, с большей вероятностью получат выгоду от сумасшествия в результате их сегментации.
В-третьих
В некоторых случаях можно найти несколько серверов, которые предоставляют один и тот же ресурс, иногда один DNS-адрес округляется до нескольких IP-адресов, или сервер является частью какой-либо зеркальной сети. Менеджеры загрузок / ускорители могут обнаружить это и применить метод сегментированной передачи на нескольких серверах, что позволяет загрузчику получать более широкую пропускную способность, передаваемую им.
Поддержка
Поддержка первого типа ускорения - это то, что я лично предлагаю как «минимум» для поддержки. Главным образом, потому что это облегчает жизнь пользователей и уменьшает объем совокупной передачи данных, которую вы должны обеспечить из-за того, что пользователям не приходится повторно загружать один и тот же контент.
И для этого рекомендуется посчитать, сколько они передали, и не истекать билет до тех пор, пока он не будет выглядеть «законченным» (при привязке трафика к первому IP-адресу, использовавшему билет), или заданному «разумному» Время загрузки прошло. то есть: дать им окно благодати, прежде чем требовать, чтобы они получили новый билет.
Поддержка второго и третьего дает вам бонусные баллы, и пользователи, как правило, желают получить по крайней мере второе, в основном потому, что международным клиентам не нравится, когда их рассматривают как клиентов второго класса, просто из-за большего времени пинга, и это не объективно потреблять больше пропускной способности в любом смысле, который имеет значение. Худшее, что может случиться, - это может привести к тому, что ваша общая пропускная способность будет нежелательной для работы вашего сервиса.
Достаточно просто предоставить первый вид преимуществ, не допуская второго, просто ограничив количество одновременных переводов из одного билета.