По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В небольших сетевых устройствах с одним сетевым процессом (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 происходят три важных события: Запрос. Все входные точки (вход) на перекрестной матрице с поставленным в очередь трафиком спрашивают свои выходные точки (выход), могут ли они отправить. Предоставление (грант). Каждая точка вывода, получившая запрос, должна определять, какая точка ввода будет разрешена для отправки. Если есть один запрос, то грант предоставляется без дальнейшего обсуждения. Однако при наличии нескольких запросов точка вывода должна определять, какая точка ввода может отправлять. Это делается через циклического перебора, где одному запросу предоставляется грант, последующему запросу предоставляется грант во время следующего выполнения iSLIP, и так далее по кругу. Когда было принято решение об этом конкретном выполнении iSLIP, каждая точка вывода отправляет свое сообщение о предоставлении, эффективно сигнализируя о разрешении на отправку, в соответствующую точку ввода. Принятие. Входная точка рассматривает сообщения о предоставлении гранта, полученные ею от выходных точек, выбирая грант циклическим способом. После выбора входной сигнал уведомляет выходной сигнал о том, что грант принят. Если и только, если выходная точка уведомлена о том, что грант был принят, выходная точка перейдет к следующему запросу. Если сообщение accept не получено, то точка вывода попытается обслужить предыдущий запрос во время следующего выполнения iSLIP. Понимание процессов запроса, предоставления и принятия дает нам представление о том, как пакеты могут быть доставлены одновременно через матрицу кроссбара без конфликтов. Однако, если вы поразмыслите над сложным набором входов, VOQ и выходов, вы можете понять, что один запуск iSLIP не планирует доставки столько пакетов, сколько могло бы быть после одного выполнения. Понимание процессов запроса, предоставления и принятия дает нам представление о том, как пакеты могут быть доставлены одновременно через матрицу кроссбара без конфликтов. Однако, если вы поразмыслите над сложным набором входов, VOQ и выходов, вы поймете, что один запуск iSLIP не планирует доставки столько пакетов, сколько могло бы быть после одного выполнения. Конечно, некоторые входы были предоставлены выходам, и некоторые пакеты могут быть переадресованы, но возможно, что некоторые выходы никогда не были согласованы с ожидающим входом. Другими словами, если вы ограничите iSLIP одним исполнением за такт, мы оставим доступную выходную полосу пропускания неиспользуемой. Поэтому обычной практикой является запуск iSLIP через несколько итераций. В результате количество совпадений ввода-вывода максимально. За один раз через матрицу кроссбара может быть отправлено больше пакетов. Сколько раз нужно запускать iSLIP, чтобы максимально увеличить количество пакетов, которые можно коммутировать через матрицу кроссбара за такт? Исследования показывают, что для шаблонов трафика, преобладающих в большинстве сетей, запуск iSLIP четыре раза лучше всего сопоставляет входные и выходные данные в матрице. Выполнение iSLIP более четырех раз не приводит к значительному увеличению количества совпадений. Другими словами, запуск iSLIP пять, шесть или десять раз в большинстве сетевых сред ничего не даст. Выход за рамки iSLIP Это обсуждение до сих пор предполагало, что движение, протекающее через матрицу, имеет одинаковое значение. Однако в современных центрах обработки данных одни классы трафика имеют приоритет над другими. Например, фреймы хранилища Fibre Channel over Ethernet (FCoE) должны проходить через матрицу без потерь, в то время как сеанс TCP, попадающий в класс QoS, этого не делает. Обрабатывает ли iSLIP трафик с разными приоритетами, отдавая одни запросы раньше других? Да, но в модифицированной форме алгоритма, который мы рассмотрели. Варианты iSLIP включают Приоритетный, Пороговый и Взвешенный iSLIP. Помимо iSLIP, который здесь используется просто как удобный пример управления конфликтами, поставщики будут писать свои собственные алгоритмы, соответствующие аппаратным возможностям своей собственной коммутационной матрицы. Например, в этом разделе рассматривается только матрица перекрестных линий с входящей очередью, но многие структуры перекрестных линий предлагают также организацию очереди вывода на выходной стороне матрицы.
img
В этой статье мы расскажем про самые популярные и полезные паттерны архитектуры программного обеспечения. Многоуровневая архитектура (n-уровневая) Многоуровневая архитектура является одной из самых распространенных. Ее идея заключается в том, что компоненты с одинаковыми функциями организованы в горизонтальные слои, или уровни. В результате чего каждый уровень выполняет определенную роль в приложении. В таком варианте архитектуры нет ограничения на количество уровней, которое может иметь приложение. При этом здесь также продвигается концепция разграничения полномочий. Многоуровневая архитектура абстрагирует представление о программном обеспечении как о едином целом; предоставляя достаточно информации для понимания ролей каждого уровня и взаимосвязи между ними. Стандартной реализацией такой модели может быть: Пользовательский интерфейс/уровень представления: отображение и запуск пользовательского интерфейса, отправка запросов серверному приложению. Уровень приложений: содержит уровень представления, уровень приложения, уровень предметной области и уровень хранения и управления данными. Уровень предметной области: этот уровень содержит всю логику предметной области, сущности, события и другие типы объектов, которые содержат логику предметной области. Уровень базы данных: это уровень данных, который используется для сохранения данных, которые будут использоваться сервером приложений. Пример: десктоп приложение, электронная коммерция или веб-приложения и т.д. Клиент-сервер Это наипростейшая архитектура, состоящая из сервера и нескольких клиентов. Она представляет собой распределенную структуру, которая распределяет задачи или рабочую нагрузку между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. При такой архитектуре, когда клиент отправляет запрос данных на сервер, сервер принимает этот запрос и отвечает клиенту, предоставляя требуемые данные. Клиенты своими ресурсами не делятся. Пример: электронная почта, обмен документами, банковские операции и т.д. Event-Bus (событийно-ориентированная архитектура) Это распределенная асинхронная архитектура для создания быстро масштабируемых реактивных приложений. Такая архитектура подходит для стека приложений любого уровня, от маленьких до сложных. Основная идея – асинхронная доставка и обработка событий. Эта модель состоит из четырех основных компонентов: Источник события Получатель события Канал Шина событий Источник публикует сообщение в определенный канал на шине событий. Получатель подписывается на определенный канал и получает сообщения, которые публикуются на канале, на который они подписаны. Пример: электронная коммерция, разработка мобильных приложений, службы уведомлений и т.д. Шаблон брокера Этот шаблон можно использовать для структурирования распределенных систем с несвязанными компонентами, взаимодействующими посредством удаленных вызовов служб. Компонент брокер отвечает за координацию обмена данными между компонентами; таких как переадресация запросов, а также передача результатов и исключений. Серверы публикуют свои возможности (услуги и характеристики) брокеру. Клиенты запрашивает услугу у брокера, и затем брокер перенаправляет клиента к подходящей услуге из своего реестра. Пример: ПО брокера сообщений, Apache ActiveMQ, Apache Kafka, RabbitMQ, JBoss Messaging и т.д. Микросервисный шаблон В данной модели службы взаимодействуют с использованием синхронных протоколов, таких как HTTP/REST, или асинхронных протоколов, таких как AMQP (Advanced Message Queuing Protocol - расширенный протокол организации очереди сообщений). Службы можно разрабатывать и разворачивать независимо, и каждая служба будет иметь собственную базу данных. Согласованность данных между службами поддерживается с помощью шаблона Saga (последовательность локальных транзакций). Пример: может быть реализован в различных вариантах использования, особенно в обширном конвейере данных Одноранговая модель (Peer-to-Peer) Здесь, как и в обычной клиент-серверной архитектуре, несколько клиентов взаимодействуют с центральным сервером. Но модель одноранговой сети (Р2Р) состоит из децентралированной сети одноранговых узлов. В этом шаблоне узлы ведут себя и как клиенты, и как серверы. Одноранговые узлы могут функционировать как клиент, запрашивающий услуги у других одноранговых узлов, и как сервер, предоставляющий услуги другим одноранговым узлам. Сети Р2Р распределяют рабочую нагрузку между одноранговыми узлами, и все они вносят и потребляют ресурсы внутри сети без необходимости использования централизованного сервера. Одноранговый узел может динамически менять свою роль с течением времени Пример: файлообменные сети, мультимедийные протоколы PDTP, P2PTV, биткоин, блокчен и т.д. Blackboard (доска объявлений) Данный паттерн полезен при решении задач, для которых не известны детерминированные стратегии решения. Все компоненты имеют доступ к «доске объявлений». Компоненты могут создавать новые объекты данных, которые в последствие будут добавлены на эту доску. Компоненты ищут определенные типы данных на доске и находят их по образцу, совпадающему с существующим источником знаний. Этот шаблон состоит из трех основных компонентов: Доска объявлений: структурированная глобальная память, которая содержит объекты из пространства решений. Источник знаний: специализированные модули с собственным представлением решения Компонент управления: выбирает, настраивает и выполняет модули Пример: быстрое распознавание, идентификация структуры белка, интерпретация сигналов звуколокатора, программы машинного обучения и т.д.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59