Открыт код Remy, системы динамической генерации алгоритмов контроля перегрузки TCP
Последние несколько лет, специалисты обеспокоены негативным влиянием эффекта "Bufferbloat", приводящего к понижению эффективности изначально реализованных в TCP методов контроля перегрузки из-за усиления промежуточной буферизации пакетов на современном сетевом оборудовании. Удешевление памяти привело к активной буферизации сетевых пакетов в маршрутизаторах и коммутаторах, что затормаживает отбрасывание пакетов, в то время как алгоритм контроля перегрузки при расчете доступной пропускной способности в основном полагается на потерю пакетов. Таким образом алгоритм контроля перегрузки продолжает наращивать скорость, даже если канал физически уже перегружен. Неотправленные пакеты буферизируются, а не отбрасываются, и снижения скорости на основании начала потери пакетов вовремя не происходит. В итоге, алгоритм контроля перегрузки TCP срабатывает только после заполнения буфера и не может подобрать нужный баланс скорости потока, соотносящийся со скоростью физического линка.
В качестве выхода из сложившейся ситуации был реализован набор альтернативных алгоритмов контроля перегрузки TCP. Как правило основным фактором определения начала возможной перегрузки в новых алгоритмах является увеличение задержки в доставке пакета, но специфика работы каждого алгоритма очень сильно привязана к конкретным применениям, например, для беспроводных сетей, низкоскоростных мобильных сетей, широкополосного доступа и ультраскоростных сетей датацентров оптимальные алгоритмы будут отличаться. Выбор подхода также зависит от критерия оптимизации - увеличение пропускной способности или снижение задержек.
Remy позволяет сформировать идеальный для каждой конкретной ситуации алгоритм, который может учитывать до 150 различных правил. При этом в настоящее время ещё не подготовлены должные средства диагностики, поэтому трудно судить какое именно сочетание правил применяется в сгенерированном для каждого случая алгоритме. Отмечается, что пока для анализа создаваемых Remy алгоритмов можно применять методы обратного инжиниринга.
Суть работы Remy сводится к первоначальной генерации базового алгоритма с его последующей оптимизацией по мере накопления статистики (построение модели трафика). В качестве характеристик для проведения тюнинга могут задаваться весовые характеристики, выделяющие важность достижения высокой пропускной способности или указывающие на необходимость минимизации задержек в доставке пакетов. Remy работает на стороне одной из конечных точек канала связи и не требует модификации компонентов сетевой инфраструктуры или параметров системы на другой стороне соединения.
В итоге, сгенерированный автоматически алгоритм позволяет достигнуть более высокой пропускной способности и справедливости распределения канала, чем при использовании самых изощрённых универсальных схем. Например, сгенерированный Remy алгоритм для канала 15 Mbps, который совместно используется 8 отправителями, позволил достигнуть двухкратного увеличения пропускной способности и на 2/3 снизить задержки из-за нахождения пакетов в очереди, по сравнению с алгоритмами Compound TCP (по умолчанию в Windows) и TCP NewReno (по умолчанию во FreeBSD). По сравнению с алгоритмом TCP Cubic, который используется по умолчанию в Linux, пропускная способность возросла на 70%, а задержки удалось уменьшить в три раза. В другом тесте, симулирующем работу через сотовую сеть Verizon, выигрыш алгоритма Remy составил 20-30% в пропускной способности и 25-40% в отзывчивости.
Источник: http://www.opennet.ru/opennews/art.shtml?num=37482
|
0 | Tweet | Нравится |
|