В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Коммутатор с балансировкой нагрузки — это архитектура коммутатора, которая гарантирует 100% пропускную способность без какого-либо центрального арбитража, за счет отправки каждого пакета через кросс-бар дважды. Коммутаторы с балансировкой нагрузки являются предметом исследования для больших маршрутизаторов, масштабируемых за пределами точки практического центрального арбитража. [ неопределенно ]
Интернет- маршрутизаторы обычно строятся с использованием линейных карт, подключенных к коммутатору . Маршрутизаторы, поддерживающие умеренную общую пропускную способность, могут использовать шину в качестве коммутатора, но маршрутизаторы с высокой пропускной способностью обычно используют своего рода перекрестное соединение. В перекрестном соединении каждый выход подключается к одному входу, так что информация может проходить через каждый выход одновременно. Перекрестные соединения, используемые для коммутации пакетов, обычно перенастраиваются десятки миллионов раз в секунду. Расписание этих конфигураций определяется центральным арбитром , например, арбитром Wavefront , в ответ на запросы линейных карт на отправку информации друг другу.
Идеальный арбитраж приведет к пропускной способности, ограниченной только максимальной пропускной способностью каждого входа или выхода кросс-бара. Например, если весь трафик, поступающий в линейные карты A и B, предназначен для линейной карты C, то максимальный трафик, который карты A и B могут обработать вместе, ограничен C. Было показано, что идеальный арбитраж требует огромных объемов вычислений, которые масштабируются гораздо быстрее, чем количество портов на кросс-баре. Практические системы используют эвристики несовершенного арбитража (например, iSLIP), которые могут быть вычислены за разумное время.
Коммутатор с балансировкой нагрузки не имеет ничего общего с коммутатором балансировки нагрузки, который представляет собой своего рода маршрутизатор, используемый в качестве интерфейса для группы веб-серверов для распределения запросов к одному веб-сайту по многим серверам.
Как показано на рисунке справа, коммутатор с балансировкой нагрузки имеет N входных линейных карт, каждая со скоростью R, каждая из которых подключена к N буферам посредством связи со скоростью R/N. Эти буферы, в свою очередь, подключены к N выходным линейным картам, каждая со скоростью R, посредством связей со скоростью R/N. Буферы в центре разделены на N виртуальных выходных очередей.
Каждая входная линейная карта равномерно распределяет свои пакеты по N буферам, что она может делать без конкуренции. Каждый буфер записывает эти пакеты в одну буферную локальную память с общей скоростью R. Одновременно каждый буфер отправляет пакеты в начало каждой виртуальной выходной очереди на каждую выходную линейную карту, снова со скоростью R/N на каждую карту. Выходная линейная карта может явно пересылать эти пакеты из линии без конкуренции.
Каждый буфер в коммутаторе с балансировкой нагрузки действует как коммутатор с общей памятью, а коммутатор с балансировкой нагрузки по сути является способом масштабирования коммутатора с общей памятью за счет дополнительной задержки, связанной с пересылкой пакетов со скоростью R/N в два раза больше.
Группа Стэнфорда, исследующая коммутаторы с балансировкой нагрузки, концентрируется на реализациях, где количество буферов равно количеству линейных карт. Один буфер размещается на каждой линейной карте, и две сетки взаимосвязей фактически являются одной и той же сеткой, обеспечивая скорость 2R/N между каждой парой линейных карт. Но базовая архитектура коммутатора с балансировкой нагрузки не требует, чтобы буферы размещались на линейных картах или чтобы было одинаковое количество буферов и линейных карт.
Одним из интересных свойств коммутатора с балансировкой нагрузки является то, что, хотя сетка, соединяющая линейные карты с буферами, требуется для соединения каждой линейной карты с каждым буфером, нет требования, чтобы сетка действовала как неблокирующий кроссбар, или чтобы соединения реагировали на любой шаблон трафика. Такое соединение намного проще, чем централизованно управляемый кроссбар.
Если два пакета, предназначенные для одного и того же выхода, прибудут друг за другом на одну линейную карту, они будут распределены по двум разным буферам, которые могут иметь два разных уровня занятости, и поэтому пакеты могут быть переупорядочены к моменту доставки на выход. Хотя переупорядочение является допустимым, оно обычно нежелательно, поскольку TCP плохо работает с переупорядоченными пакетами.
Добавляя еще больше задержки и буферизации, коммутатор с балансировкой нагрузки может поддерживать порядок пакетов в потоках, используя только локальную информацию. Одним из таких алгоритмов является FOFF (Fully Ordered Frames First). FOFF имеет дополнительные преимущества, устраняя любую уязвимость к патологическим шаблонам трафика и предоставляя механизм для реализации приоритетов.
Проект Tiny Tera Стэнфордского университета (см. Abrizio ) представил архитектуру коммутатора, которая требовала как минимум двух конструкций чипов для самой коммутационной структуры (срез кросс-бара и арбитр). Модернизация арбитра для включения балансировки нагрузки и объединения этих устройств может иметь преимущества в надежности, стоимости и пропускной способности.
Поскольку линейные карты в коммутаторе с балансировкой нагрузки не должны находиться физически рядом друг с другом, одной из возможных реализаций является использование всей континентальной или глобальной магистральной сети в качестве связующей сетки, а основные маршрутизаторы — в качестве «линейных карт». Такая реализация страдает от того, что все задержки увеличиваются вдвое по сравнению с наихудшей задержкой передачи. Но у нее есть ряд интригующих преимуществ: