ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

7 минут чтени€

¬ небольших сетевых устройствах с одним сетевым процессом (ASIC или NPU) переместить пакет из входной очереди в выходную просто. ќба интерфейса ввода и вывода используют общий пул пам€ти пакетов, поэтому указатель на пакет может быть перемещен из одной очереди в другую.

ƒл€ достижени€ большего количества портов и более крупных устройств - особенно устройств шасси - должна быть внутренн€€ шина или матрица, котора€ соедин€ет механизмы обработки входных и выходных пакетов. ќдним из распространенных типов структуры, используемой дл€ соединени€ механизмов обработки пакетов в сетевом устройстве, €вл€етс€ структура матрицы; –исунок ниже иллюстрирует это.

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

ѕолотно матрицы

ƒл€ работы матрицы требуетс€ чувство времени (или, скорее, фиксированный временной интервал) и планировщик. ¬ каждый интервал времени один порт вывода (отправки) соедин€етс€ с одним портом ввода (приема), так что в течение этого периода времени отправитель может передать пакет, кадр или набор пакетов получателю. ѕланировщик "соедин€ет" правильные точки пересечени€ на матрице, чтобы передачи происходили в нужный период времени. Ќапример:

  • Line card 1 (LC1) хочет отправить пакет в LC3.
  • LC3 хочет отправить пакет в LC5.

¬ течение следующего временного цикла планировщик может подключить строку A к столбцу 1 ("установить" соединение в A3) и подключить строку C к столбцу 5 ("установить" соединение в C5), чтобы между этими парами был установлен канал св€зи.


ѕересечени€ и конфликты

„то произойдет, если два передатчика захот€т отправить пакет одному получателю? Ќапример, если в течение одного периода времени и LC1, и LC2 хот€т отправить пакет в LC9 через полотно перекрестной матрицы? Ёто называетс€ конфликтом, и это ситуаци€, которую должен обрабатывать планировщик структуры.  акому из двух входных портов должно быть разрешено отправл€ть свой трафик на выходной порт? ј где же тем временем должны находитс€ очереди вход€щего трафика?

ќдин из вариантов - хранить пакеты во входной очереди; коммутаторы, использующие эту технику, называютс€ коммутаторами с очередью ввода (input-queued switches). “акие коммутаторы испытывают head-of-line (HOL). Ѕлокировка HOL - это то, что происходит, когда пакет в начале линии, ожидающий пересылки через структуру, блокирует другие пакеты, сто€щие в очереди за ним.

ƒругой вариант - использовать в коммутаторе несколько виртуальных очередей вывода (virtual output queues- VOQ) дл€ каждого порта ввода.

VOQ дают матрице перекрестной сети несколько мест дл€ хранени€ вход€щих пакетов, пока они ожидают доставки на свои выходные порты. ¬о многих конструкци€х коммутаторов один VOQ существует на каждый выходной порт, дл€ которого предназначен входной трафик. —ледовательно, входной порт может иметь несколько пакетов в очереди в нескольких разных VOQ, предполага€, что несколько разных выходных портов.

 аждый из этих VOQ может обслуживатьс€ в течение одного тактового цикла. Ёто означает, что блокировка HOL устран€етс€, потому что несколько разных пакетов из одной входной очереди могут проходить через матрицу кроссбара одновременно. ƒл€ порта ввода существует не одна очередь, а несколько разных очередей.

ƒаже с VOQ остаетс€ потенциальна€ возможность разногласий по структуре перекрестной сети. Ќаиболее распространенный пример - это когда два или более вход€щих пакета должны покинуть коммутатор через один и тот же выходной порт в одно и то же врем€, или, точнее, в одном тактовом цикле. ¬ыходной порт может отправл€ть только один пакет за такт.

ќпределение того, кака€ входна€ очередь будет доставл€ть трафик на выходной порт первой, - это алгоритм, определ€емый производителем коммутатора дл€ максимального использовани€ аппаратного обеспечени€. iSLIP-это один из алгоритмов планировани€, используемых коммутаторами дл€ решени€ этой проблемы.


ќбзор алгоритма iSLIP

јлгоритм iSLIP разрешает конфликты межсетевых экранов, распредел€€ трафик таким образом, чтобы сетевое устройство достигало неблокирующей пропускной способности. ƒл€ понимани€ этого полезно внимательно изучить iSLIP в его простейшей форме, проанализировав, что происходит, когда алгоритм iSLIP выполн€етс€ один раз.

¬о врем€ выполнени€ iSLIP происход€т три важных событи€:

  1. «апрос. ¬се входные точки (вход) на перекрестной матрице с поставленным в очередь трафиком спрашивают свои выходные точки (выход), могут ли они отправить.
  2. ѕредоставление (грант).  ажда€ точка вывода, получивша€ запрос, должна определ€ть, кака€ точка ввода будет разрешена дл€ отправки. ≈сли есть один запрос, то грант предоставл€етс€ без дальнейшего обсуждени€. ќднако при наличии нескольких запросов точка вывода должна определ€ть, кака€ точка ввода может отправл€ть. Ёто делаетс€ через циклического перебора, где одному запросу предоставл€етс€ грант, последующему запросу предоставл€етс€ грант во врем€ следующего выполнени€ iSLIP, и так далее по кругу.  огда было прин€то решение об этом конкретном выполнении iSLIP, кажда€ точка вывода отправл€ет свое сообщение о предоставлении, эффективно сигнализиру€ о разрешении на отправку, в соответствующую точку ввода.
  3. ѕрин€тие. ¬ходна€ точка рассматривает сообщени€ о предоставлении гранта, полученные ею от выходных точек, выбира€ грант циклическим способом. ѕосле выбора входной сигнал уведомл€ет выходной сигнал о том, что грант прин€т. ≈сли и только, если выходна€ точка уведомлена о том, что грант был прин€т, выходна€ точка перейдет к следующему запросу. ≈сли сообщение accept не получено, то точка вывода попытаетс€ обслужить предыдущий запрос во врем€ следующего выполнени€ iSLIP.

ѕонимание процессов запроса, предоставлени€ и прин€ти€ дает нам представление о том, как пакеты могут быть доставлены одновременно через матрицу кроссбара без конфликтов. ќднако, если вы поразмыслите над сложным набором входов, VOQ и выходов, вы можете пон€ть, что один запуск iSLIP не планирует доставки столько пакетов, сколько могло бы быть после одного выполнени€.

ѕонимание процессов запроса, предоставлени€ и прин€ти€ дает нам представление о том, как пакеты могут быть доставлены одновременно через матрицу кроссбара без конфликтов. ќднако, если вы поразмыслите над сложным набором входов, VOQ и выходов, вы поймете, что один запуск iSLIP не планирует доставки столько пакетов, сколько могло бы быть после одного выполнени€.

 онечно, некоторые входы были предоставлены выходам, и некоторые пакеты могут быть переадресованы, но возможно, что некоторые выходы никогда не были согласованы с ожидающим входом. ƒругими словами, если вы ограничите iSLIP одним исполнением за такт, мы оставим доступную выходную полосу пропускани€ неиспользуемой.

ѕоэтому обычной практикой €вл€етс€ запуск iSLIP через несколько итераций. ¬ результате количество совпадений ввода-вывода максимально. «а один раз через матрицу кроссбара может быть отправлено больше пакетов. —колько раз нужно запускать iSLIP, чтобы максимально увеличить количество пакетов, которые можно коммутировать через матрицу кроссбара за такт? »сследовани€ показывают, что дл€ шаблонов трафика, преобладающих в большинстве сетей, запуск iSLIP четыре раза лучше всего сопоставл€ет входные и выходные данные в матрице. ¬ыполнение iSLIP более четырех раз не приводит к значительному увеличению количества совпадений. ƒругими словами, запуск iSLIP п€ть, шесть или дес€ть раз в большинстве сетевых сред ничего не даст.


¬ыход за рамки iSLIP

Ёто обсуждение до сих пор предполагало, что движение, протекающее через матрицу, имеет одинаковое значение. ќднако в современных центрах обработки данных одни классы трафика имеют приоритет над другими. Ќапример, фреймы хранилища Fibre Channel over Ethernet (FCoE) должны проходить через матрицу без потерь, в то врем€ как сеанс TCP, попадающий в класс QoS, этого не делает.

ќбрабатывает ли iSLIP трафик с разными приоритетами, отдава€ одни запросы раньше других? ƒа, но в модифицированной форме алгоритма, который мы рассмотрели. ¬арианты iSLIP включают ѕриоритетный, ѕороговый и ¬звешенный iSLIP.

ѕомимо iSLIP, который здесь используетс€ просто как удобный пример управлени€ конфликтами, поставщики будут писать свои собственные алгоритмы, соответствующие аппаратным возможност€м своей собственной коммутационной матрицы. Ќапример, в этом разделе рассматриваетс€ только матрица перекрестных линий с вход€щей очередью, но многие структуры перекрестных линий предлагают также организацию очереди вывода на выходной стороне матрицы.