Программируемые маршрутизаторы могут обеспечить более отказоустойчивые сети: новый дизайн должен обеспечивать гораздо более гибкое управление трафиком без ущерба для скорости

Программируемые маршрутизаторы могут обеспечить более отказоустойчивые сети: новый дизайн должен обеспечивать гораздо более гибкое управление трафиком без ущерба для скорости
Программируемые маршрутизаторы могут обеспечить более отказоустойчивые сети: новый дизайн должен обеспечивать гораздо более гибкое управление трафиком без ущерба для скорости

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

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

Исследователи из Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института (CSAIL) и пяти других организаций надеются изменить это с помощью программируемых маршрутизаторов, которые по-прежнему могут поддерживать молниеносные скорости современных сетей передачи данных. Исследователи описывают свою систему в паре статей, представленных на ежегодной конференции Специальной группы по передаче данных Ассоциации вычислительной техники.

«Эта работа показывает, что вы можете достичь многих целей гибкого управления трафиком, сохраняя при этом высокую производительность традиционных маршрутизаторов», - говорит Хари Балакришнан, профессор электротехники и компьютерных наук Fujitsu в Массачусетском технологическом институте.«Раньше программируемость была достижима, но никто не использовал ее в продакшене, потому что она была в 10, а то и в 100 раз медленнее».

«У исследователей и инженеров должна быть возможность опробовать тысячи идей», - добавляет он. «С этой платформой вас ограничивают не аппаратные или технологические ограничения, а ваше творчество. Вы можете внедрять инновации гораздо быстрее».

Первым автором обеих статей является Анируд Сивараман, аспирант Массачусетского технологического института в области электротехники и информатики, которого консультировали Балакришнан и Мохаммад Ализаде, доцент TIBCO по развитию карьеры в области электротехники и компьютерных наук в Массачусетском технологическом институте, который являются соавторами обеих статей. К ним присоединились коллеги из Массачусетского технологического института, Вашингтонского университета, Barefoot Networks, Microsoft Research, Стэнфордского университета и Cisco Systems.

Разные штрихи

Управление трафиком может оказаться сложным из-за различных типов данных, передаваемых по сети, и различных типов гарантий производительности, предлагаемых различными службами. Например, при телефонных звонках через Интернет задержки доставляют неудобства, но случайный пропущенный пакет, который может означать пропущенное слово в предложении, может быть терпимым. С другой стороны, с большим файлом данных небольшая задержка может быть приемлемой, но недостающие данные - нет.

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

Маршрутизатор также может захотеть изменить пакет, чтобы передать информацию о состоянии сети, например, столкнулся ли пакет с перегрузкой, где и как долго; он может даже предложить новые скорости передачи для отправителей.

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

Исследователи Массачусетского технологического института и их коллеги поставили перед собой цель найти набор простых вычислительных элементов, которые можно было бы организовать для реализации разнообразных схем управления трафиком, не ставя под угрозу рабочие скорости лучших современных маршрутизаторов и не занимая слишком много места. на чипе.

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

Оценки

В одной из двух новых статей исследователи предоставляют спецификации для семи типов схем, каждая из которых немного сложнее предыдущей. Некоторым простым алгоритмам управления трафиком требуется только самый простой тип цепи, в то время как другим требуются более сложные типы. Но даже блок самых сложных схем занял бы всего 4 процента площади чипа маршрутизатора; банк наименее сложных типов занял бы только 0,16 процента.

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

«Мы верим, что они применимы ко многим другим», - говорит Шивараман. «Например, одна из схем позволяет программисту отслеживать текущую сумму - то, что используется во многих алгоритмах».

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

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