Компьютерная система автоматически генерирует алгоритм управлением перегрузкой ТСР

25 ноябрь, 2013 - 17:24Леонід Бараш

ТСР является одним из основных протоколов, управляющих передачей данных в Интернете. Если смотреть на него как на программу, то это наиболее распространенная программа в мире.

Одна из основных функций ТСР — предотвращение перегрузок в сети посредством регулирования темпа передачи данных. В последние 25 лет инженеры постоянно улучшали алгоритмы управления перегрузкой ТСР, что вылилось в появлении нескольких конкурирующих версий протокола: многие Windows-компьютеры работают с версией Compound TCP, тогда как ОС Linux использует TCP Cubic.

Исследователи из МТИ представили компьютерную систему, названную Remy, которая автоматически генерирует алгоритмы управления перегрузкой ТСР. В процессе симуляции алгоритмы, генерируемые Remy, значительно превосходили по производительности алгоритмы, разработанные программистами.

Реми является обучающейся машинной системой. Это значит, что она вырабатывает решения посредством проверки различных возможностей и изучает дальнейшие изменения для тех, которые, кажется, работают лучше всего. Пользователи задают определенные характеристики сети, такие как колеблется ли полоса пропускания каналов или изменяется ли количество пользователей и насколько много. Они также обеспечивают «профиль трафика», который может описывать, скажем, процент пользователей, которые просматривают статические веб-страницы, или используют приложения, требующие высокой полосы пропускания, к примеру, как видеоконференции.

Наконец, пользователь также определяет метрики, которые будут использоваться для оценки производительности сети. Стандартные метрики включают пропускную способность, которая указывает на общий объем данных, который может быть передан через сеть за определенный отрезок времени, и задержку, которая указывает на среднее количество времени необходимое для передачи одного пакета данных от отправителя к получателю. Пользователь может также присвоить метрикам различные веса – скажем, сокращение задержки является важным, но составляет только одну треть от важности увеличения пропускной способности.

Реми должен проверить производительность каждого алгоритма в широком диапазоне характеристик сети, что могло бы быть чрезмерно трудоемкой задачей.

Но проф. Хари Балакришнан (Hari Balakrishnan) и аспирант Кейт Уинстейн (Keith Winstein) разработали «умный» алгоритм, который может сосредоточивать анализ Реми на случаях, в которых небольшие изменения сетевых характеристик дают большие изменения производительности, и тратить гораздо меньше времени на те, для которых поведение сети более предсказуемо.

Разработка также позволяет Реми оценить возможные показатели перегрузки сети, которые инженеры не могут учесть. Как правило, алгоритмы управления перегрузкой TCP рассматривают два основных фактора: прибывают ли отдельные пакеты данных указанному получателю и, если да, то какое затрачивается время на подтверждение этого. Но, как оказывается, отношение между частотой, с которой пакеты отправляются и получаются, являются значимой информацией, которая может диктовать различное поведение компьютера-отправителя.

В самом деле, там, где типичный алгоритм управления перегрузкой TCP состоит из нескольких правил, к примеру, если процент потерянных пакетов превышает некоторый порог, сократить скорость передачи вдвое, алгоритмы Реми могут содержать более 150 различных правил.

«Ничего похожего в 30-летней истории TCP не было, — сказал Уинстейн. — Традиционно, TCP имеет относительно простые правила для конечных точек, но сложное поведение, когда вы на самом деле их используете. С Реми верно обратное. Мы считаем, что это лучше, поскольку компьютеры хорошо справляются со сложностью. А вот поведение должно быть простым».

В тестах, которые симулировали высокоскоростную проводную сеть с постоянной скоростью передачи по физическим каналам, алгоритмы Реми повышали пропускную способность сети примерно в два раза по сравнению с Compound TCP и TCP Cubic при одновременном снижении задержки на две трети. В другой серии испытаний, которые симулировали сотовую сеть передачи данных Verizon, выгоды были меньше, но все еще значительны: улучшение пропускной способности от 20 до 30% и снижение задержки от 25 до 40%.