Быстрый Интернет, спроектированный компьютерами
Скорость передачи алгоритмов контроля перегрузки, разработанных компьютерами, в 2-3 раза превосходит алгоритмы, созданные человеком.
TCP, протокол управления передачей данных, является одним из базовых протоколов Интернета. Если представить его как компьютерную программу, то это наиболее широко используемая программа в мире.
Одной из главных функций TCP является предотвращение перегрузки сети путем регулирования маршрутов. За последние 25 лет инженеры значительно усовершенствовали алгоритмы контроля перегрузки TCP, в результате чего появилось несколько конкурирующих версий протокола: многие компьютеры на ОС Windows, например, работают с версией Compound TCP, в то время как Linux работает с версией TCP Cubic.
Этим летом на ежегодной конференции SIGCOMM исследователи из лаборатории компьютерных технологий и искусственного интеллекта Массачусетского технологического института и Центра беспроводных сетей и мобильных вычислений представят компьютерную систему под названием Remy, которая автоматически создает алгоритмы контроля перегрузки TCP.
Как утверждают исследователи, алгоритмы Remy намного эффективнее алгоритмов, разработанных людьми.
Что к чему
Remy – это самообучающаяся система. Она перебирает все возможные варианты в поисках наиболее оптимального решения настоящих и будущих проблем. Пользователи указывают определенные характеристики сети, например, колебание полосы пропускания или изменение количества пользователей. Они также обеспечивают «Профиль трафика», который может дать информацию, скажем, о проценте пользователей, которые просматривают статические веб-страницы или используют приложения с широкой полосой пропускания (например, видеоконференции).
Наконец, пользователи также определяют метрики, которые будут использованы для оценки производительности сети. Стандартные метрики включают в себя пропускную способность (она указывает на общий объем данных, который можно перемещать по сети в определенный промежуток времени), и задержку (она указывает на время, которое, в среднем, необходимо для передачи одного пакета информации от отправителя к получателю). Пользователь может также указать метрики различной величины. Например, сокращение задержки не более, чем на треть от пропускной способности.
Remy необходимо протестировать производительность каждого возможного алгоритма в широком диапазоне условий сети, что могло бы занять довольно много времени. Но Уинстейн и Балакришнан разработали «умный» алгоритм, который может сосредоточить анализ Remy на случаях, в которых небольшие изменения состояния сети приводят к большим изменениям в производительности, не тратя время на случаи, где поведение сети более или менее предсказуемо.
Они также научили Remy оценивать возможные перегрузки, которые обычные инженеры могли не учесть. Как правило, алгоритмы TCP контроля перегрузки обращены к двум основным факторам: дошел ли пакет данных до получателя, и, если да, то сколько времени требуется для подтверждения его прибытия.
Немного глубже
"За всю 30-летнюю историю TCP еще не было ничего подобного", - говорит Уинстейн. «Обычно, у TCP относительно простые правила в теории и сложное поведение на практике. С Remy все наоборот. И мы считаем, что так намного лучше, ведь компьютеры созданы работать со сложными задачами, и при этом быть простыми в использовании». Вопрос высокой производительности алгоритмов Remy является одной из наиболее актуальных тем для исследований в будущем.
Однако результаты остаются бесспорными. Балакришнана и Уинстейн протестировали алгоритмы Remy на стандартной системе моделирования сетей связи NS-2.
В тестах, в которых была смоделирована высокоскоростная проводная сеть с постоянной скоростью передачи по физическим каналам, алгоритмы Remy примерно в два раза увеличили пропускную способность сети по сравнению с Compound TCP и TCP Cubic, при этом уменьшив время задержки на две трети. В другой серии испытаний, в которой была смоделирована сотовая сеть передачи данных Verizon, результаты были не так высоки, но по-прежнему значительны: увеличение пропускной способности на 20-30% и сокращение времени задержки на 25-40%.
Однако Баль предупреждает, что "когда протоколу приходится работать для большого количества людей или устройств, становится не ясно, является ли определенный метод оптимальным". Но он также добавил, что вполне возможно в будущем сетевые компьютеры будут придерживаться политики различных перегрузок в зависимости от типов приложений, которые они используют. "Вот где эта система будет иметь успех", - говорит он.