RU2584471C1 - DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER - Google Patents

DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER Download PDF

Info

Publication number
RU2584471C1
RU2584471C1 RU2014148077/08A RU2014148077A RU2584471C1 RU 2584471 C1 RU2584471 C1 RU 2584471C1 RU 2014148077/08 A RU2014148077/08 A RU 2014148077/08A RU 2014148077 A RU2014148077 A RU 2014148077A RU 2584471 C1 RU2584471 C1 RU 2584471C1
Authority
RU
Russia
Prior art keywords
unit
network
processing unit
switch
interaction
Prior art date
Application number
RU2014148077/08A
Other languages
Russian (ru)
Inventor
Станислав Олегович Беззубцев
Вячеслав Викторович Васин
Руслан Леонидович Смелянский
Александр Владиславович Шалимов
Original Assignee
Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" filed Critical Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей"
Priority to RU2014148077/08A priority Critical patent/RU2584471C1/en
Application granted granted Critical
Publication of RU2584471C1 publication Critical patent/RU2584471C1/en

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: telecommunications.
SUBSTANCE: invention relates to the field of telecommunications and data communications. Said device comprises one or more network interfaces, unit for receiving information, unit of initial flow identification, instructions processing unit, unit to implement actions, group activities processing unit, unit of intermodule interaction, unit for interaction with the controller, means of communication between units; one or more network interfaces are connected to the unit for receiving information, information receiving unit output is connected with input of flow initial identification unit and the input of receiving information is connected to the output of inter-module interaction with its input connected to the output of instructions processing unit, the instruction processing unit is connected to flow initial identification and flow identification unit, in its turn, is connected to inter-module interaction. Listed components are implemented as a single structural design.
EFFECT: technical result consists in increase of speed of processing network headers, which increases the rate and is achieved by using receiving and transmitting data device interacting with the OpenFlow controller.
6 cl, 3 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

Изобретение относится к области телекоммуникации, связи и передачи данных.The invention relates to the field of telecommunications, communications and data transmission.

УРОВЕНЬ ТЕХНИКИBACKGROUND

Программно-конфигурируемая сеть (SDN от англ. Software-defined Networking, также программно-определяемая сеть) - сеть передачи данных, в которой уровень управления сетью отделен от устройств передачи данных и реализуется на программном уровне, одна из форм виртуализации вычислительных ресурсов.A software-defined network (SDN from the English Software-defined Networking, also a software-defined network) is a data transmission network in which the network control layer is separated from data transmission devices and implemented at the software level, one of the forms of virtualization of computing resources.

Ключевые принципы программно-конфигурируемых сетей - разделение процессов передачи и управления данными, централизация управления сетью при помощи унифицированных программных средств, виртуализация физических сетевых ресурсов. Протокол OpenFlow, реализующий независимый от производителя интерфейс между логическим контроллером сети и сетевым транспортом, является одной из реализаций концепции программно-конфигурируемой сети и считается движущей силой ее распространения и популяризации.The key principles of software-configurable networks are the separation of transmission and data management processes, centralization of network management using unified software tools, virtualization of physical network resources. The OpenFlow protocol, which implements a manufacturer-independent interface between the logical network controller and network transport, is one of the implementations of the concept of a software-configured network and is considered to be the driving force behind its distribution and popularization.

Коммутатор - один из центральных элементов компьютерной сети. Коммутаторы являются структурными элементами всех бизнес-коммуникаций, от передачи данных до голосовой связи и от видеосвязи до беспроводного доступа. Они способны увеличить чистую прибыль компании благодаря повышению производительности, сократить эксплуатационные расходы и повысить уровень безопасности и обслуживания клиентов. Программируемый коммутатор обеспечивает более высокую гибкость, поскольку коммутатор можно контролировать и настраивать локально или удаленно для управления передачей трафика по сети и доступом ко всей сети.A switch is one of the central elements of a computer network. Switches are the structural elements of all business communications, from data transmission to voice communications and from video communications to wireless access. They can increase the company's net profit by increasing productivity, reducing operating costs, and improving security and customer service. A programmable switch provides greater flexibility because the switch can be controlled and configured locally or remotely to control traffic over the network and access to the entire network.

В архитектуре программно-конфигурируемой сети выделяется три уровня:The architecture of a software-configurable network has three levels:

- инфраструктурный уровень, на котором функционируют сетевые коммутаторы и каналы передачи данных;- the infrastructure level at which network switches and data transmission channels operate;

- уровень управления - набор программных средств, физически отделенных от инфраструктурного уровня, обеспечивающий реализацию механизмов управления устройствами инфраструктурного уровня;- management level - a set of software that is physically separated from the infrastructure level, ensuring the implementation of mechanisms for managing devices at the infrastructure level;

- уровень сетевых приложений.- level of network applications.

Ядром уровня управления программно-конфигурируемой сетью является сетевая операционная система - программное средство, обеспечивающее, с одной стороны, интерфейс со средствами инфраструктурного уровня (например, динамическое изменение таблиц маршрутизации), и с другой стороны - прикладной программный интерфейс для уровня сетевых приложений, сформулированный в терминах более высокого уровня абстракции (например, «имя узла», «имя пользователя»), нежели используется в параметрах конфигурации сетевых устройств (IP-адрес, маска подсети, МАС-адрес).The core of the software-configurable network management layer is the network operating system — a software tool that provides, on the one hand, an interface with infrastructure-level tools (for example, dynamically changing routing tables), and on the other hand, an application programming interface for the network application level formulated in in terms of a higher level of abstraction (for example, “host name”, “username”), rather than used in the configuration parameters of network devices (IP address, subnet mask, MAC -address).

Стандарт OpenFlow является основной движущей силой концепции программно-конфигурируемых сетей и наиболее широко применимым на сегодняшнее время стандартом для их построения.The OpenFlow standard is the main driving force behind the concept of software-configurable networks and the most widely used standard for building them today.

Одно из направлений современных исследований: разработка прототипа OpenFlow коммутатора с улучшенными возможностями.One of the areas of modern research is the development of a prototype of an OpenFlow switch with advanced capabilities.

Из уровня техники известно изобретение «Communication method, software defined network SDN switch and communication system» («CN 103428771 А», опубликовано 04.12.2013).The prior art invention is known as “Communication method, software defined network SDN switch and communication system” (“CN 103428771 A”, published 04.12.2013).

Данный метод описывает возможность связи OpenFlow коммутатора с OpenFlow контроллером с использованием беспроводной среды. Недостатком данного метода является то, что он не решает проблему ограничения реализации протокола OpenFlow в современных коммутаторах с поддержкой данного стандарта, а именно структурные ограничения при аппаратном поиске и нехватка гибкости в работе с произвольными полями сетевых заголовков.This method describes the possibility of connecting an OpenFlow switch with an OpenFlow controller using a wireless environment. The disadvantage of this method is that it does not solve the problem of limiting the implementation of the OpenFlow protocol in modern switches supporting this standard, namely, structural limitations in hardware search and lack of flexibility in working with arbitrary fields of network headers.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Данное изобретение направлено на устранение недостатков, присущих существующим решениям.The present invention addresses the disadvantages inherent in existing solutions.

В качестве реализации изобретения может быть предложено устройство для приема и передачи данных с возможностью осуществления взаимодействия с OpenFlow контроллером, содержащее один или более сетевых интерфейсов, средство обмена информацией между блоками, блок приема информации, блок первоначальной идентификации потока, блок обработки инструкций, блок реализации действий, блок обработки групповых действий, блок межмодульного взаимодействия, блок взаимодействия с контроллером; причем один или более сетевых интерфейсов соединены с блоком приема информации, выход блока приема информации подключен к входу блока первоначальной идентификации потока, а вход блока приема информации подключен к выходу блока междумодульного взаимодействия, вход которого подключен к выходу блока обработки инструкций, при этом блок обработки инструкций соединен с блоком первоначальной идентификацией потока, а блок идентификации потока, в свою очередь, соединен с блоком междумодульного взаимодействия, также блок обработки инструкций соединен с блоком реализации действий, который соединен с блоком обработки групповых действий и с блоком взаимодействия с контроллером, который соединен с блоком обработки инструкций, причем средство обмена информацией между блоками соединено со всеми вышеперечисленными блоками и с одним или более вышеуказанных сетевых интерфейсов. Все перечисленные элементы находятся в едином конструктивном исполнении. Технический результат от использования изобретения заключается в увеличении скорости в обработке сетевых заголовков, что повышает скорость и обеспечивает возможность точно идентифицировать потоки информации в сети и гибко определять политику их обработки.As an implementation of the invention, there may be proposed a device for receiving and transmitting data with the possibility of interacting with an OpenFlow controller, comprising one or more network interfaces, a means for exchanging information between blocks, an information receiving unit, an initial flow identification unit, an instruction processing unit, an implementation unit , a block for processing group actions, an intermodular interaction unit, an interaction unit with a controller; moreover, one or more network interfaces are connected to the information receiving unit, the output of the information receiving unit is connected to the input of the initial flow identification unit, and the input of the information receiving unit is connected to the output of the inter-module interaction unit, the input of which is connected to the output of the instruction processing unit, while the instruction processing unit connected to the initial flow identification unit, and the flow identification unit, in turn, connected to the inter-module interaction unit, also the instruction processing unit connected to an action implementation unit, which is connected to a group action processing unit and to a controller interaction unit, which is connected to an instruction processing unit, wherein the means for exchanging information between the units is connected to all of the above units and to one or more of the above network interfaces. All of these elements are in a single design. The technical result from the use of the invention is to increase the speed in processing network headers, which increases the speed and provides the ability to accurately identify the flows of information on the network and flexibly determine the policy for their processing.

Указанный технический результат достигается тем, что архитектура коммутатора оптимизируется следующим образом:The specified technical result is achieved in that the switch architecture is optimized as follows:

- используется масштабируемая ТСАМ память для классификации каждого проходящего через коммутатор фрагмента сетевых обменов;- scalable TSAM memory is used to classify each fragment of network exchanges passing through the switch;

- используются модули памяти для хранения произвольных смесей буферов пакетов, элементов потоковых таблиц, разной ширины и глубины, выявляющих как точное соответствие шаблонам, так и шаблонам с метасимволами.- memory modules are used to store arbitrary mixtures of packet buffers, elements of flow tables, of different widths and depths, revealing both exact correspondence to patterns and patterns with metacharacters.

При этом устройство может поддерживать стандарты связи 802.3ab; 802.3ае; 802.3аn.At the same time, the device can support 802.3ab communication standards; 802.3ae; 802.3an.

Сетевые интерфейсы устройства могут быть выполнены по технологиям Gigabit Ethernet; 10 Gigabit Ethernet.Network interfaces of the device can be made using Gigabit Ethernet technologies; 10 Gigabit Ethernet.

Управление устройством может осуществляться при помощи удаленного доступа через сеть Интернет или локальную вычислительную сетью или напрямую через выделенный для этого отдельный порт.The device can be controlled using remote access via the Internet or a local area network or directly through a dedicated port.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

В данном устройстве под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).In this device, a system means a computer system, a computer (electronic computer), CNC (numerical program control), PLC (programmable logic controller), computerized control systems, and any other devices that can perform a given, clearly defined sequence of operations (actions, instructions).

Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы или микрокоды).By a command processing device is meant an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs or microcodes).

Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, постоянное запоминающее устройство (ПЗУ), твердотельные накопители (SSD), оптические приводы.The command processing device reads and executes machine instructions (programs) from one or more data storage devices. Storage devices may include, but are not limited to, hard disks (HDDs), flash memory, read-only memory (ROM), solid state drives (SSDs), and optical drives.

Программа - набор инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.A program is a set of instructions intended for execution by a control device of a computer or a device for processing commands.

Ниже будут рассмотрены некоторые термины, которые в дальнейшем будут использоваться при описании изобретения.Below we will consider some terms that will be used later in the description of the invention.

Сетевой коммутатор (жарг. свитч от англ. switch - переключатель) - устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутатор работает на канальном (втором) уровне модели OSI. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты. Для соединения нескольких сетей на основе сетевого уровня служат маршрутизаторы (3 уровень OSI). OpenFlow коммутатор способен выполнять коммутацию пакетов на 2-4 уровне модели OSI в зависимости от заданного набора правил.Network switch (jarg. Switch from English switch - switch) - a device designed to connect several nodes of a computer network within one or more network segments. The switch operates at the channel (second) level of the OSI model. The switches were designed using bridge technology and are often considered multiport bridges. Routers (OSI Layer 3) are used to connect multiple networks based on the network layer. The OpenFlow switch is able to perform packet switching at the 2-4 level of the OSI model, depending on a given set of rules.

Ассоциативная память (АП) или Ассоциативное запоминающее устройство (АЗУ) является особым видом машинной памяти, используемой в приложениях очень быстрого поиска. Известна также как память, адресуемая по содержимому, ассоциативное запоминающее устройство, контентно-адресуемая память или ассоциативный массив, хотя последний термин чаще используется в программировании для обозначения структуры данных. Двоичная АП - простейший тип ассоциативной памяти, который использует слова поиска данных, состоявшие полностью из единиц и нулей. В троичной АП (ТСАМ) добавляется третье значение для сравнения «X» или «не важно», для одного или более битов в сохраненном слове данных, добавляя таким образом большей гибкости поиску. Например, в троичной АП могло бы быть сохранено слово «10ХХ0», которое выдаст совпадение на любое из четырех слов поиска «10000», «10010», «10100» или «10110». Добавление гибкости к поиску приходит за счет увеличения цены двоичной АП, поскольку внутренняя ячейка памяти должна теперь закодировать три возможных состояния вместо двух. Это дополнительное состояние обычно осуществляется добавлением бита маски «важности»(«важно»/«не важно») к каждой ячейке памяти.Associative memory (AP) or Associative storage device (RAM) is a special kind of machine memory used in very fast search applications. Also known as content-addressable memory, associative memory, content-addressable memory, or associative array, although the latter term is more often used in programming to refer to a data structure. Binary AP is the simplest type of associative memory that uses data search words, consisting entirely of ones and zeros. In the ternary AP (TCAM), a third value is added to compare “X” or “not important”, for one or more bits in the stored data word, thereby adding more search flexibility. For example, the word “10XX0” could be stored in a ternary AP, which would match any of the four search words “10000”, “10010”, “10100” or “10110”. Adding flexibility to the search comes at the cost of increasing the price of a binary AP, since the internal memory cell should now encode three possible states instead of two. This extra state is usually done by adding a “importance” mask bit (“important” / “not important”) to each memory location.

OpenFlow - протокол управления процессом обработки данных, передающихся по сети передачи данных маршрутизаторами и коммутаторами, реализующий технологию программно-конфигурируемой сети.OpenFlow is a protocol for managing the process of processing data transmitted over a data network by routers and switches that implements software-configured network technology.

Протокол используется для управления сетевыми коммутаторами и маршрутизаторами с центрального устройства-контроллера сети (например, с сервера или даже персонального компьютера). Это управление заменяет или дополняет работающую на коммутаторе (маршрутизаторе) встроенную программу, осуществляющую построение маршрута, создание карты коммутации и т.д. Контроллер используется для управления таблицами потоков коммутаторов, на основании которых принимается решение о передаче принятого пакета на конкретный порт коммутатора. Таким образом, в сети формируются прямые сетевые соединения с минимальными задержками передачи данных и необходимыми параметрами.The protocol is used to control network switches and routers from a central network controller device (for example, from a server or even a personal computer). This control replaces or complements the built-in program running on the switch (router) that performs route building, creating a switching map, etc. The controller is used to manage switch flow tables, on the basis of which a decision is made to transfer the received packet to a specific switch port. Thus, direct network connections are formed in the network with minimal data transmission delays and the necessary parameters.

В программно-конфигурируемой сети уровни управления сетью и передачи данных разделяются за счет переноса функций управления (маршрутизаторами, коммутаторами и т.п.) в приложения, работающие на отдельном сервере (контроллере). Заинтересованность ИТ-компаний в ПКС вызвана тем, что такие технологии позволяют повысить эффективность сетевого оборудования на 25-30%, снизить на 30% затраты на эксплуатацию сетей, превратить управление сетями из искусства в инженерию, повысить безопасность и предоставить пользователям возможность программно создавать новые сервисы и оперативно загружать их в сетевое оборудование.In a software-configurable network, network management and data transfer levels are separated by transferring management functions (routers, switches, etc.) into applications running on a separate server (controller). The interest of IT companies in PKS is due to the fact that such technologies can increase the efficiency of network equipment by 25-30%, reduce network maintenance costs by 30%, turn network management from art into engineering, increase security and provide users with the ability to programmatically create new services and quickly load them into network equipment.

В архитектуре программно-конфигурируемой сети можно выделить три уровня:In the architecture of a software-configurable network, three levels can be distinguished:

инфраструктурный уровень, предоставляющий набор сетевых устройств (коммутаторов и каналов передачи данных);infrastructure level, providing a set of network devices (switches and data transmission channels);

уровень управления, включающий в себя сетевую операционную систему, которая обеспечивает приложениям сетевые сервисы и программный интерфейс для управления сетевыми устройствами и сетью;a management level that includes a network operating system that provides applications with network services and a software interface for managing network devices and a network;

уровень сетевых приложений для гибкого и эффективного управления сетью.Network application layer for flexible and efficient network management.

Виртуализация управления сетью позволяет снизить расходы на построение и сопровождение программно конфигурируемых сетей.Network management virtualization can reduce the cost of building and maintaining software-configured networks.

Программные средства программно-конфигурируемой сети позволяют администраторам добавлять новую функциональность к уже имеющейся сетевой архитектуре. При этом новые функции будут работать на многих платформах - их не придется реализовывать заново во встроенном программном обеспечении коммутаторов каждого поставщика.Software-configured network software allows administrators to add new functionality to their existing network architecture. At the same time, new functions will work on many platforms - they will not have to be re-implemented in the firmware of each vendor’s switches.

На централизованном контроллере программно-конфигурируемой сети системный администратор может наблюдать всю сеть в едином представлении, за счет чего повышаются удобство управления, безопасность и упрощается выполнение ряда других задач. Действительно, поскольку администратор видит все потоки трафика, то ему легче замечать вторжения, назначать приоритеты различным типам трафика и разрабатывать правила реагирования сети при заторах и проблемах с оборудованием.On a centralized controller of a software-configurable network, the system administrator can observe the entire network in a single view, thereby increasing the ease of management, security, and simplifying the execution of a number of other tasks. Indeed, since the administrator sees all traffic flows, it is easier for him to notice intrusions, prioritize various types of traffic, and develop rules for responding to networks in case of congestion and equipment problems.

Теоретически неограниченные возможности сетей программно-конфигурируемой сети к расширению позволяют строить «облачные» решения, масштабируемые в зависимости от решаемых задач. При этом сеть обладает требуемой «интеллектуальностью», необходимой, в частности, для оркестровки работы обширных групп коммутаторов.Theoretically, the unlimited possibilities of networks of a software-configurable network to expand allow you to build "cloud" solutions that are scalable depending on the tasks. Moreover, the network possesses the required “intelligence”, necessary, in particular, for orchestrating the work of large groups of switches.

Наиболее перспективным и активно развивающимся стандартом для программно-конфигурируемой сети является OpenFlow (открытый стандарт, в котором описываются требования, предъявляемые к коммутатору, поддерживающему протокол OpenFlow для удаленного управления).The most promising and rapidly developing standard for a software-configurable network is OpenFlow (an open standard that describes the requirements for a switch that supports the OpenFlow protocol for remote control).

Механизм работы коммутатора, поддерживающего стандарт OpenFlow, достаточно прост. У каждого пришедшего пакета «вырезается» заголовок (битовая строка определенной длины). Для этой битовой строки в таблицах потоков, начиная с первой, ищется правило, у которого поле признаков ближе всего соответствует (совпадает) заголовку пакета. При наличии совпадения над пакетом и его заголовком выполняются преобразования, определяемые набором инструкций, указанных в найденном правиле. Инструкции, ассоциированные с каждой записью таблицы, описывают действия, связанные с пересылкой пакета, модификацией его заголовка, обработкой в таблице групп, обработкой в конвейере и пересылкой пакета на определенный порт коммутатора. Инструкции конвейера обработки позволяют пересылать пакеты в последующие таблицы для дальнейшей обработки и в виде метаданных передавать информацию между таблицами. Инструкции также определяют правила модификации счетчиков, которые могут быть использованы для сбора разнообразной статистики.The mechanism of operation of the switch that supports the OpenFlow standard is quite simple. Each received packet "cuts out" a header (a bit string of a certain length). For this bit string, in the flow tables, starting with the first one, a rule is searched for in which the attribute field most closely matches (matches) the packet header. If there is a match, the package and its header are converted, determined by the set of instructions specified in the found rule. The instructions associated with each table entry describe the steps involved in forwarding the packet, modifying its header, processing in the group table, processing in the pipeline, and forwarding the packet to a specific port on the switch. The processing pipeline instructions allow you to forward packets to subsequent tables for further processing and to transfer information between tables in the form of metadata. The instructions also define the rules for modifying the counters, which can be used to collect a variety of statistics.

Если нужного правила в первой таблице не обнаружено, то пакет инкапсулируется и отправляется контроллеру, который формирует соответствующее правило для пакетов данного типа и устанавливает его на коммутаторе (или на наборе управляемых им коммутаторов), либо пакет может быть сброшен (в зависимости от конфигурации коммутатора).If the desired rule is not found in the first table, the packet is encapsulated and sent to the controller, which forms the corresponding rule for packets of this type and installs it on the switch (or on the set of switches managed by it), or the packet can be discarded (depending on the switch configuration) .

Запись о потоке может предписывать переслать пакет в определенный порт (обычный физический порт либо виртуальный, назначенный коммутатором, или зарезервированный виртуальный порт, установленный спецификацией протокола). Зарезервированные виртуальные порты могут определять общие действия пересылки: отправка контроллеру, широковещательная (лавинная) рассылка, пересылка без OpenFlow. Виртуальные порты, определенные коммутатором, могут точно определять группы агрегирования каналов, туннели или интерфейсы с обратной связью.A stream record may direct the packet to be forwarded to a specific port (a regular physical port, either a virtual port designated by the switch, or a reserved virtual port set by the protocol specification). Reserved virtual ports can determine the general forwarding actions: sending to the controller, broadcasting (flooding), forwarding without OpenFlow. The virtual ports defined by the switch can pinpoint link aggregation groups, tunnels, or loopback interfaces.

Записи о потоках могут также указывать на группы, в которых определяется дополнительная обработка. Группы представляют собой наборы действий для широковещательной рассылки, а также наборы действий пересылки с более сложной семантикой, например быстрое изменение маршрута или агрегирование каналов. Механизм групп позволяет эффективно изменять общие выходные действия для потоков. Таблица групп содержит записи о группах, содержащие список контейнеров действий со специальной семантикой, зависящей от типа группы. Действия в одном или нескольких контейнерах действий применяются к пакетам, отправляемым в группу.Stream entries may also indicate groups in which additional processing is defined. Groups are sets of actions for broadcasting, as well as sets of forwarding actions with more complex semantics, for example, fast route change or aggregation of channels. The group mechanism allows you to effectively change the overall output actions for threads. The group table contains group entries containing a list of action containers with special semantics depending on the type of group. Actions in one or more action containers apply to packets sent to the group.

Разработчики коммутаторов могут быть свободны в реализации их внутренней структуры, однако процедура просмотра пакетов и семантика инструкций должны быть для всех одинаковы. Например, в то время как поток может использовать все группы для пересылки в некоторое множество портов, разработчик коммутатора может выбрать для реализации этого единую битовую маску внутри аппаратной таблицы маршрутизации. Другой пример - это процедура просмотра таблиц: конвейер физически может быть реализован с помощью различного количества аппаратных таблиц. Установка, обновление и удаление правил в таблицах потоков коммутатора осуществляются контроллером. Правила могут устанавливаться реактивно (в ответ на пришедшие пакеты) или проактивно (заранее, до прихода пакетов).Switch developers can be free to implement their internal structure, however, the procedure for viewing packets and the semantics of instructions should be the same for everyone. For example, while a thread can use all groups to forward to a number of ports, the switch designer can choose to implement this single bitmask inside the hardware routing table. Another example is the procedure for viewing tables: a pipeline can be physically implemented using a different number of hardware tables. Installation, updating and removal of rules in the switch flow tables are performed by the controller. Rules can be set reactively (in response to incoming packets) or proactively (in advance, before packets arrive).

Управление данными в OpenFlow осуществляется не на уровне отдельных пакетов, а на уровне их потоков. Правило в коммутаторе OpenFlow устанавливается с участием контроллера только для первого пакета, а затем все остальные пакеты потока его используют.Data management in OpenFlow is carried out not at the level of individual packets, but at the level of their flows. The rule in the OpenFlow switch is established with the participation of the controller only for the first packet, and then all other packets of the flow use it.

Для оптимизации вышеперечисленных процессов предлагается устройство для приема и передачи данных с возможностью осуществления взаимодействия с OpenFlow контроллером, содержащее один или более сетевых интерфейсов, средство обмена информацией между блоками, блок приема информации, блок первоначальной идентификации потока, блок обработки инструкций, блок реализации действий, блок обработки групповых действий, блок межмодульного взаимодействия, блок взаимодействия с контроллером; причем один или более сетевых интерфейсов соединены с блоком приема информации, выход блока приема информации подключен к входу блока первоначальной идентификации потока, а вход блока приема информации подключен к выходу блока междумодульного взаимодействия, вход которого подключен к выходу блока обработки инструкций, при этом блок обработки инструкций соединен с блоком первоначальной идентификацией потока, а блок идентификации потока в свою очередь соединен с блоком междумодульного взаимодействия, также блок обработки инструкций соединен с блоком реализации действий, который соединен с блоком обработки групповых действий и с блоком взаимодействия с контроллером, который соединен с блоком обработки инструкций, причем средство обмена информацией между блоками соединено со всеми вышеперечисленными блоками и с одним или более вышеуказанных сетевых интерфейсов. Все перечисленные элементы находятся в едином конструктивном исполнении.To optimize the above processes, a device is proposed for receiving and transmitting data with the possibility of interacting with an OpenFlow controller, containing one or more network interfaces, a means of exchanging information between blocks, an information receiving unit, an initial flow identification unit, an instruction processing unit, an action implementation unit, a unit group actions processing, intermodular interaction unit, interaction unit with the controller; moreover, one or more network interfaces are connected to the information receiving unit, the output of the information receiving unit is connected to the input of the initial flow identification unit, and the input of the information receiving unit is connected to the output of the inter-module interaction unit, the input of which is connected to the output of the instruction processing unit, while the instruction processing unit connected to the initial flow identification unit, and the flow identification unit, in turn, is connected to the intermodular interaction unit, also an instruction processing unit with It is connected to an action implementation unit, which is connected to a group action processing unit and to an interaction unit with a controller, which is connected to an instruction processing unit, wherein the means for exchanging information between the units is connected to all of the above units and to one or more of the above network interfaces. All of these elements are in a single design.

Работа модулей рассматриваемого устройства происходит следующим образом: прием пакета, выделение свободного буфера и сохранение тела пакета в нем, формирование дескриптора пакета по заголовочным данным пакета, сопоставление дескриптора пакета набору правил классификации потоков, содержащихся в таблицах потоков, с целью его классификации, выбор идентификатора классификатора потоков, выборка микропрограммы по ранее вычисленному идентификатору потока, применение микропрограммы, модификация заголовочных данных пакета и дескриптора согласно заданной микропрограмме обработки, обработка пакета согласно сопоставленному микропрограммой модификатору группы потоков, дублирование пакета, если это определено микропрограммой обработки, отправка пакета(-ов), освобождение ранее захваченного буфера.The modules of the device in question work as follows: receiving a packet, allocating a free buffer and saving the packet body in it, generating a packet descriptor from the packet header data, matching the packet descriptor to the set of classification rules for streams contained in the flow tables, in order to classify it, selecting a classifier identifier streams, fetching the firmware using the previously calculated stream identifier, applying the firmware, modifying the packet header data and descriptor with publicly predetermined microprogram processing, processing the packet according to a mapped firmware modifier group flows duplicate packet if it is determined by the firmware processing, sending the packet (s), the release previously trapped buffer.

Коммутатор является системой, управляемой потоком событий, реализующей обработку битовых векторов ограниченной длины - фрагментов сетевого обмена. Передача битового вектора в коммутатор является событием, в терминах имитационного моделирования, а коммутатор реализует формирование реакции на событие. При этом по источнику возникновения потоков событий и по их свойствам потоки могут быть разделены на два основных класса:The switch is a system controlled by the flow of events, which implements processing of bit vectors of limited length - fragments of network exchange. The transmission of the bit vector to the switch is an event, in terms of simulation, and the switch implements the formation of a reaction to the event. Moreover, according to the source of the occurrence of the event flows and their properties, the flows can be divided into two main classes:

- поток данных пользователей - data plane;- user data stream - data plane;

- поток данных управления - control plane.- control data stream - control plane.

Сам же коммутатор представляет собой совокупность детерминированных конечных автоматов (ДКА) с состоянием.The switch itself is a collection of deterministic finite state machines (DFA) with state.

Обработка потоков данных пользователей в рамках коммутатора сводится к последовательной обработке каждого отдельного фрагмента данных - кадра Ethernet согласно заложенной в коммутатор логике. Под заложенной в коммутатор логикой в случае OpenFlow коммутатора понимается не фиксированная производителем изделия логика, а совокупное состояние всех ДКА обработки данных data plane, изменяемое воздействиями как data plane, так и control plane.Processing user data streams within the switch is reduced to sequential processing of each individual piece of data - Ethernet frame according to the logic embedded in the switch. In the case of the OpenFlow switch, the logic embedded in the switch is understood not as the logic fixed by the manufacturer of the product, but the aggregate state of all DFAs for processing the data plane data, changed by the effects of both the data plane and the control plane.

Основная логика коммутатора реализует обработку пакетов, проходящих через него. Обработка кадров в коммутаторе описывается как суперпозиция отображений, каждое из которых отвечает отдельному требованию спецификации OpenFlow.The main logic of the switch implements the processing of packets passing through it. The processing of frames in the switch is described as a superposition of mappings, each of which meets a separate requirement of the OpenFlow specification.

Со структурной точки зрения коммутатор является совокупностью блоков, каждый из которых реализует:From a structural point of view, the switch is a collection of blocks, each of which implements:

- вычисление заданной функции, реализуемой посредством ДКА;- calculation of a given function, implemented by DFA;

- чтение наборов входных значений;- reading sets of input values;

- формирование наборов результирующих значений.- the formation of sets of resulting values.

Блоки коммутатора образуют ДКА, реализуемый через конвейер. При этом контекст обработки каждого фрагмента данных представляет собой совокупность:The blocks of the switch form the DKA, implemented through the conveyor. Moreover, the processing context of each piece of data is a combination of:

- фрагмента обрабатываемых данных (пакета), или же пары:- a fragment of the processed data (package), or a pair:

- числа, принадлежащего заданному подмножеству Z (идентификатор буфера, содержащего пакет);- a number belonging to a given subset Z (identifier of the buffer containing the packet);

- вектора фиксированной длины, каждый из элементов которого принадлежит некоторому заданному подмножеству Z - дескриптора фрагмента обрабатываемых данных (дескриптора пакета);- a vector of fixed length, each of the elements of which belongs to a given subset Z - a descriptor of a fragment of the processed data (a packet descriptor);

- числа, принадлежащего заданному подмножеству Z - идентификатор классификатора, суть таблицы потоков OpenFlow (глобального состояния экземпляра ДКА коммутатора).- a number belonging to a given subset Z - identifier of the classifier, the essence of the table of flows OpenFlow (global state of the instance of the DCA switch).

Обработка каждого пакета реализуется по следующему алгоритму (см. фиг. 1):Processing of each packet is implemented according to the following algorithm (see Fig. 1):

1. Прием пакета.1. Receive the package.

2. Выделение свободного буфера и сохранение тела пакета в нем.2. Allocating a free buffer and saving the package body in it.

3. Формирование дескриптора пакета по заголовочным данным пакета, согласно спецификации.3. The formation of the package descriptor for the header data of the package, according to the specification.

4. Выбор идентификатора первичного классификатора потоков.4. Selection of the identifier of the primary classifier of flows.

5. Заполнение вспомогательных служебных полей контекста обработки.5. Filling in auxiliary service fields of the processing context.

6. Задание ограничения на длины цепочки обработки пакета.6. Setting a limit on the length of the packet processing chain.

7. Выполнение в цикле шагов 8, 9, 10, пока не удовлетворен критерий завершения обработки пакета.7. Performing steps 8, 9, 10 in a cycle until the criterion for completing the processing of the packet is satisfied.

8. Классификация пакета по таблицам потоков.8. Classification of the package according to the flow tables.

9. Обработка фрагмента сообщения согласно идентификатору группы потоков, определенному классификатором.9. Processing the message fragment according to the identifier of the group of threads defined by the classifier.

10. Декремент счетчика длины цепочки обработки пакета.10. The decrement of the counter length of the packet processing chain.

11. Конец тела цикла.11. The end of the body of the cycle.

12. Освобождение ранее захваченного буфера.12. Releasing a previously captured buffer.

При этом, как видно из приведенной схемы, идентификатор группы потоков выступает в роли идентификатора микропрограммы, по которой должно быть осуществлено преобразование над полями контекста обработки пакета. В результате обработки пакета изменению могут быть подвержены все неслужебные поля контекста обработки пакета:Moreover, as can be seen from the above diagram, the identifier of the group of threads acts as the identifier of the microprogram, according to which the conversion over the fields of the packet processing context should be carried out. As a result of processing the package, all unofficial fields of the package processing context can be affected by the change:

- desc - дескриптор пакета;- desc - packet descriptor;

- table - селектор классификатора;- table - classifier selector;

- complete - завершение обработки текущего пакета.- complete - completion of processing the current package.

Как видно из схемы, штатное завершение обработки пакета может произойти из-за превышения допустимой длины цепи обработки пакета, что, в свою очередь, может быть следствием:As can be seen from the diagram, the regular completion of the processing of the package may occur due to exceeding the allowable length of the processing chain of the package, which, in turn, may be a consequence of

- наличия цикла в цепи обработки пакета, обусловленного некорректным набором правил преобразований дескриптора в функции process;- the presence of a cycle in the packet processing chain due to an incorrect set of rules for transforming the descriptor into the process function;

- несогласованностью ограничения на максимальную длину цепочки обработки пакетов и де-факто необходимым и продиктованным набором преобразований над некоторой группой потоков.- inconsistency of the restrictions on the maximum length of the packet processing chain and the de facto necessary and dictated set of transformations over a certain group of flows.

В соответствии с требованиями спецификации «Ошибка! Источник ссылки не найден.» классификация потоков должна осуществляться для каждого отдельно взятого пакета. Классификация осуществляется на базе значений фиксированного набора полей заголовочных данных пакетов и заданных табличных значений классификаторов, путем выбора из таблицы потоков номера потока, имеющего максимальный вес (параметр потока) и совпадающего по заданной маске с заданным шаблоном (см. фиг. 2).In accordance with the requirements of the specification “Error! The source of the link was not found. ”The classification of flows should be carried out for each individual package. Classification is carried out on the basis of the values of a fixed set of fields of packet header data and given table values of classifiers, by selecting from the table of streams the stream number that has the maximum weight (stream parameter) and matches the specified mask with the given pattern (see Fig. 2).

В рамках модели коммутатора рассматривается элемент памяти ТСАМ как средство реализации классификатора.In the framework of the switch model, the TSAM memory element is considered as a means of classifier implementation.

На данный момент элемент ТСАМ является единственным эффективным методом поиска по шаблонам с масками и весами. Это осуществляется за счет реализации в элементах ТСАМ массового параллелизма - вариант схемы 2 с параллельным вычислением тела внешнего цикла (строки 6-18) и последующим выбором наилучшего результата на каскаде компараторов и мультиплексоров.At the moment, the TSAM element is the only effective search method for templates with masks and weights. This is due to the implementation of mass parallelism in the TSAM elements - a variant of scheme 2 with parallel calculation of the body of the outer loop (lines 6-18) and the subsequent selection of the best result on the cascade of comparators and multiplexers.

В данном разделе приведено описание основного конвейера, реализующего обработку фрагментов сетевых потоков и являющегося центральным компонентом модулей обработки данных типов 1G, 10G.This section describes the main pipeline that implements processing of fragments of network flows and is a central component of data processing modules of types 1G, 10G.

Разработанная модель коммутатора включает в свой состав следующие функциональные блоки (см. фиг. 3):The developed switch model includes the following functional blocks (see Fig. 3):

- Блок приема информации - обеспечивает чтение потока входящих сообщений, буферизацию каждого из них в одной из очередей входящих сообщений в зависимости от значений флаговых полей заголовочных данных, формирование дескриптора сообщения и контекста обработки сообщения, передачу контекста на последующую обработку.- Information receiving unit - provides reading the stream of incoming messages, buffering each of them in one of the incoming message queues depending on the values of the flag fields of the header data, forming a message descriptor and message processing context, transferring the context for subsequent processing.

- Блок идентификации потока - обеспечивает обработку дескриптора сообщения, сопоставление дескриптора набору шаблонов, определение идентификатора шаблона с максимальным весом.- Stream identification block - provides processing of the message descriptor, matching the descriptor to a set of templates, determining the template identifier with the maximum weight.

- Блок обработки инструкций - обеспечивает выборку дескриптора набора инструкций по идентификатору, применение инструкций путем модификации списка дескрипторов действий, накапливаемых в контексте обработки сообщения.- An instruction processing unit - provides selection of a descriptor of a set of instructions by identifier, application of instructions by modifying the list of action descriptors accumulated in the context of message processing.

- Блок реализации действий - обеспечивает отработку списка действий, содержащихся в контексте обработки пакета путем последовательного прогона контекста обработки через набор функциональных элементов, реализующих отработку отдельных воздействий на поля дескриптора сообщения.- The block for the implementation of actions - provides refinement of the list of actions contained in the context of processing the package by sequentially running the processing context through a set of functional elements that implement the processing of individual effects on the fields of the message descriptor.

- Блок обработки групповых сообщений - обеспечивает отработку наперед заданных правил по выбору исходящего порта из заданной группы, дублированию сообщений для последующей раздачи на группу портов, реализации широковещательной передачи.- Group message processing unit - provides for the development of predefined rules for selecting an outgoing port from a given group, duplicating messages for subsequent distribution to a group of ports, and broadcasting.

- Блок межмодульного взаимодействия - обеспечивает передачу сообщений между модулями, входящими в состав коммутатора, для последующей выдачи в порт назначения коммутатора в зависимости от заданного в контексте обработки сообщения, логического номера исходящего порта. Данный блок также обеспечивает прием межмодульных транзакций от других модулей и направление сообщения в локальные порты.- Intermodular interaction unit - provides the transmission of messages between the modules that make up the switch for subsequent delivery to the destination port of the switch, depending on the logical number of the outgoing port specified in the context of message processing. This unit also provides for receiving intermodular transactions from other modules and forwarding messages to local ports.

- Блок взаимодействия с контроллером представляет собой распределенную систему, включающую в свой состав:- The unit of interaction with the controller is a distributed system, which includes:

- Блок управляющего контроллера - обеспечивает отображение ресурсов модулей коммутатора в адресное пространство управляющего приложения, обеспечивает преобразование операций ввода-вывода в наборы транзакций шины AXI4 (выступает в качестве средства обмена информацией между блоками), связующей модули.- The block of the control controller - provides the mapping of the resources of the switch modules into the address space of the control application, provides the conversion of I / O into the transaction sets of the AXI4 bus (acts as a means of exchanging information between the blocks) connecting the modules.

- Блоки управления модулями коммутатора - реализуют прозрачный мост между внешней шиной AXI4 (выступает в качестве средства обмена информацией между блоками) и блоками параметрической и служебной информации функциональных блоков модуля коммутатора.- Control modules of the switch modules - implement a transparent bridge between the external bus AXI4 (acts as a means of exchanging information between the blocks) and the parametric and service information blocks of the functional blocks of the switch module.

ПРИМЕР РЕАЛИЗАЦИИEXAMPLE OF IMPLEMENTATION

В качестве одного из вариантов реализации вышеописанного устройства для приема и передачи данных с возможностью осуществления взаимодействия с OpenFlow контроллером предлагается программно-аппаратный комплекс, который включает в свой состав:As one of the embodiments of the above device for receiving and transmitting data with the possibility of interacting with the OpenFlow controller, a hardware-software complex is proposed, which includes:

- вычислитель на базе процессора общего назначения (например, ARM)- a calculator based on a general-purpose processor (for example, ARM)

- ПО коммутатора- switch software

- ПО агента коммутатора- switch agent software

В качестве вычислителя на базе процессора ARM может выступать вычислительное устройство SmartFusion SOM (http://www.emcraft.com/products/133), производства EmCraft (http://www.emcraft.com), располагаемое на плате SOM-BSB development baseboard (http://www.emcraft.com/products/133#starter-kit). SmartFusion SOM представляет собой ПП размера 30 на 57 мм и включает в свой состав:As a computer based on an ARM processor, the SmartFusion SOM computing device (http://www.emcraft.com/products/133), manufactured by EmCraft (http://www.emcraft.com), located on the SOM-BSB development board, can be used baseboard (http://www.emcraft.com/products/133#starter-kit). SmartFusion SOM is a PP of size 30 by 57 mm and includes:

- СБИС СнК Microsemi SmartFusion sSOC на базе 100 MHz 32-bit ARM Cortex-M3, набор периферии, в том числе 100Mb/sec Fast Ethernet MAC- VLSI SoC Microsemi SmartFusion sSOC based on 100 MHz 32-bit ARM Cortex-M3, a set of peripherals, including 100Mb / sec Fast Ethernet MAC

- 16 MB оперативной памяти- 16 MB RAM

- 16 MB NOR flash- 16 MB NOR flash

- Fast Ethernet PHY- Fast Ethernet PHY

На СнК выполняется ПО агента под управлением ОС Linux в варианте uclibc. Устройство хранения и/или чтения данных используется для хранения загрузочного образа системы и содержит файловую систему JFFS2 для хранения пользовательских данных, в которой располагается программное обеспечение агента, а также конфигурационный файл агента, содержащий описание подключенных модулей коммутатора, их настройки, а также, наборы начальных значений параметрических данных модулей коммутаторов (начальное заполнение правил таблицы OpenFlow, наборов инструкций и действий), применяемых при запуске ПО агента. Базовый набор конфигурационных данных хранится в файле в формате Ini.On SoC, agent software running Linux in the uclibc version is running. A device for storing and / or reading data is used to store the boot image of the system and contains the JFFS2 file system for storing user data, which contains the agent software, as well as the agent configuration file containing a description of the connected switch modules, their settings, as well as initial sets the values of the parametric data of the switch modules (initial filling in the rules of the OpenFlow table, sets of instructions and actions) used when starting the agent software. The basic set of configuration data is stored in a file in the Ini format.

Плата SOM-BSB используется для установки мезонина с СнК, подключения к источнику питания (5В, постоянного тока) через USB разъем, подключения системы по FastEthernet через гнездо RJ45.The SOM-BSB board is used to install a mezzanine with SoC, connect to a power source (5V, DC) via a USB connector, and connect the system via FastEthernet through an RJ45 socket.

За основу BSP взят пакет Linux BSP, поставляемый в составе изделия SmartFusion StarterKit (http://www.emcraft.com/products/133#starter-kit). Для обеспечения необходимого для выполнения ПО агента набора сервисов ОС Linux изменены настройки времени компиляции ядра ОС Linux и правила сборки загрузочного образа. Выполнена сборка СПО из исходных текстов. Полученный образ загрузки системы записан в NOR flash, входящий в состав модуля SmartFusion SOM.The BSP is based on the Linux BSP package supplied with the SmartFusion StarterKit product (http://www.emcraft.com/products/133#starter-kit). In order to provide the Linux OS services set necessary for the agent software to run, the Linux kernel compilation time settings and the rules for building the boot image have been changed. The assembly of open source software from source texts has been completed. The resulting system boot image is recorded in NOR flash, which is part of the SmartFusion SOM module.

Вычислитель обеспечивает выполнение ПО агента под управлением ОС вычислителя:The calculator provides agent software execution under the control of the calculator OS:

- содержит сетевой интерфейс, предоставляет агенту возможность взаимодействия с узлом контроллера OpenFlow по сети Ethernet, по протоколу прикладного уровня OpenFlow, сообщения которого инкапсулируются в поток TCP/IP;- contains a network interface, provides the agent with the opportunity to interact with the OpenFlow controller node via Ethernet, using the OpenFlow application layer protocol, whose messages are encapsulated in a TCP / IP stream;

- содержит набор СПО, предоставляющий набор стандартных интерфейсов POSIX по управлению ресурсами вычислителя: управление памятью, процессорным временем, наборами потоков команд, средств межпотокового взаимодействия;- contains a set of open source software that provides a set of standard POSIX interfaces for calculator resource management: memory management, processor time, sets of instruction flows, means of inter-stream interaction;

- содержит вспомогательный интерфейс взаимодействия с модулями коммутатора, предоставляет агенту возможность обмена транзакциями с модулями коммутатора, инкапсулирующим наборы команд и сопроводительных данных, достаточными для реализации операций чтения и записи не менее чем 32-битных чисел по 32-битным адресам, обеспечивает атомарность производимых транзакций.- contains an auxiliary interface for interacting with switch modules, provides the agent with the opportunity to exchange transactions with switch modules, encapsulating sets of commands and accompanying data, sufficient to implement read and write operations of at least 32-bit numbers at 32-bit addresses, and ensuring the atomicity of transactions.

ПО агента коммутатора утилизирует ресурсы вычислителя для:The switch agent software utilizes the resources of the calculator for:

- взаимодействия с контроллером OpenFlow:- interactions with the OpenFlow controller:

- реализации протокола OpenFlow 1.3.2;- implementation of the OpenFlow protocol 1.3.2;

- обработки запросов и формирования ответов/уведомлений;- processing requests and generating responses / notifications;

- взаимодействия с модулями коммутатора:- interactions with the switch modules:

- формирования серии транзакций записи для изменения настроек отдельных блоков модулей коммутатора;- formation of a series of write transactions to change the settings of individual blocks of switch modules;

- формирования серии транзакций записи для инъекции полезной нагрузки PACKET OUT сообщений протокола OpenFlow в основной тракт обработки данных модулей коммутатора;- formation of a series of write transactions for injection of the payload PACKET OUT of OpenFlow protocol messages into the main data processing path of the switch modules;

- формирования серии транзакций чтения для отслеживания состояния и изменения состояния отдельных блоков модулей коммутатора;- the formation of a series of read transactions to track the status and state changes of individual blocks of switch modules;

- формирования серии транзакций чтения для получения буферизованных тел принятых пакетов, предназначенных для последующей передачи на контроллер в сообщениях PACKET IN;- formation of a series of read transactions to receive buffered bodies of received packets intended for subsequent transmission to the controller in PACKET IN messages;

- трансляцию воздействий, реализуемых контроллером по протоколу OpenFlow, в воздействия на различные блоки модули коммутатора;- translation of the effects implemented by the controller according to the OpenFlow protocol, into the effects on the various blocks of the switch modules;

- трансляцию изменений состояния различных блоков модулей коммутатора в наборы сообщений протокола OpenFlow;- translation of state changes of various blocks of switch modules into sets of OpenFlow protocol messages;

- фоновый мониторинг состояния блоков модулей коммутатора;- background monitoring of the state of blocks of switch modules;

- чтение и запись конфигурации агента, набора настроек по умолчанию из (в) конфигурационный файл; - reading and writing agent configuration, default settings from (c) the configuration file;

- ведение журнала активности ПО, системных значимых событий, ошибок.- maintaining a log of software activity, system significant events, errors.

Специалисту в данной области очевидно, что конкретные варианты реализации устройства для приема и передачи данных были описаны здесь в целях иллюстрации, допустимы различные модификации, не выходящие за рамки и сущности объема изобретения.One skilled in the art will recognize that specific embodiments of a device for receiving and transmitting data have been described herein for purposes of illustration, various modifications are permissible without departing from the scope and essence of the scope of the invention.

Claims (6)

1. Устройство для приема и передачи данных с возможностью осуществления взаимодействия с OpenFlow контроллером, включающее:
один или более сетевых интерфейсов,
блок приема информации,
блок первоначальной идентификации потока,
блок обработки инструкций,
блок реализации действий,
блок обработки групповых действий,
блок межмодульного взаимодействия,
блок взаимодействия с контроллером,
средство обмена информацией между блоками;
причем один или более сетевых интерфейсов соединены с блоком приема информации, выход блока приема информации подключен к входу блока первоначальной идентификации потока, а вход блока приема информации подключен к выходу блока междумодульного взаимодействия, вход которого подключен к выходу блока обработки инструкций, при этом блок обработки инструкций соединен с блоком первоначальной идентификацией потока, а блок идентификации потока, в свою очередь, соединен с блоком междумодульного взаимодействия, также блок обработки инструкций соединен с блоком реализации действий, который соединен с блоком обработки групповых действий и с блоком взаимодействия с контроллером, который соединен с блоком обработки инструкций, причем средство обмена информацией между блоками соединено со всеми вышеперечисленными блоками и с одним или более вышеуказанных сетевых интерфейсов.
1. A device for receiving and transmitting data with the ability to interact with the OpenFlow controller, including:
one or more network interfaces,
information receiving unit,
initial flow identification unit,
instruction processing unit,
action implementation unit,
group action processing unit,
intermodular interaction unit,
controller interaction unit,
means for exchanging information between blocks;
moreover, one or more network interfaces are connected to the information receiving unit, the output of the information receiving unit is connected to the input of the initial flow identification unit, and the input of the information receiving unit is connected to the output of the inter-module interaction unit, the input of which is connected to the output of the instruction processing unit, while the instruction processing unit connected to the initial flow identification unit, and the flow identification unit, in turn, connected to the inter-module interaction unit, also the instruction processing unit connected to an action implementation unit, which is connected to a group action processing unit and to a controller interaction unit, which is connected to an instruction processing unit, wherein the means for exchanging information between the units is connected to all of the above units and to one or more of the above network interfaces.
2. Устройство по п. 1, характеризующееся тем, что сетевые интерфейсы могут быть выполнены по технологии Gigabit Ethernet.2. The device according to claim 1, characterized in that the network interfaces can be implemented using Gigabit Ethernet technology. 3. Устройство по п. 1, характеризующееся тем, что сетевые интерфейсы могут быть выполнены по технологии 10 Gigabit Ethernet.3. The device according to claim 1, characterized in that the network interfaces can be made using 10 Gigabit Ethernet technology. 4. Устройство по п. 1, характеризующееся тем, что управление устройством может осуществляться при помощи удаленного доступа через сеть Интернет.4. The device according to claim 1, characterized in that the device can be controlled using remote access via the Internet. 5. Устройство по п. 1, характеризующееся тем, что управление устройством может осуществляться при помощи удаленного доступа через локальную вычислительную сеть.5. The device according to claim 1, characterized in that the device can be controlled using remote access through a local area network. 6. Устройство по п. 1, характеризующееся тем, что управление устройством может осуществляться через выделенный для этого отдельный порт. 6. The device according to claim 1, characterized in that the device can be controlled through a separate port dedicated to this.
RU2014148077/08A 2014-12-30 2014-12-30 DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER RU2584471C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014148077/08A RU2584471C1 (en) 2014-12-30 2014-12-30 DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014148077/08A RU2584471C1 (en) 2014-12-30 2014-12-30 DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER

Publications (1)

Publication Number Publication Date
RU2584471C1 true RU2584471C1 (en) 2016-05-20

Family

ID=56012156

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014148077/08A RU2584471C1 (en) 2014-12-30 2014-12-30 DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER

Country Status (1)

Country Link
RU (1) RU2584471C1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017209645A1 (en) * 2016-05-31 2017-12-07 Общество С Ограниченной Ответственностью "Программируемые Сети" Method for transmitting ethernet frames over software defined networks (sdn)
RU2678452C1 (en) * 2017-09-13 2019-01-29 Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" Method of virtualization of data storage systems for data processing center and cloud computing
RU2691886C1 (en) * 2018-08-15 2019-06-18 Общество с ограниченной ответственностью "ТЕКОН Микропроцессорные технологии" Complex-functional unit for vlsi-type system on chip
RU2705429C1 (en) * 2016-06-20 2019-11-07 Алибаба Груп Холдинг Лимитед Method and device for distributed processing of stream data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7835380B1 (en) * 2004-10-19 2010-11-16 Broadcom Corporation Multi-port network interface device with shared processing resources
RU2420013C1 (en) * 2009-10-14 2011-05-27 Федеральное государственное учреждение 16 Центральный научно-исследовательский испытательный институт Министерства обороны Российской Федерации имени маршала войск связи А.И. Белова Mobile station of confidential telephone communication
WO2013023195A1 (en) * 2011-08-10 2013-02-14 Castine Nicholas J Device and method for remote computer operation
WO2014022901A2 (en) * 2012-08-10 2014-02-13 Sabia Experience Tecnologia S.A. Method and system implemented by a collaborative distributed computational network, and related devices
RU2522314C1 (en) * 2010-06-23 2014-07-10 Интернэшнл Бизнес Машинз Корпорейшн Data unit storage/storage instructions for communication with adapters
RU2523917C2 (en) * 2010-01-06 2014-07-27 Нек Корпорейшн Communication control system and communication control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7835380B1 (en) * 2004-10-19 2010-11-16 Broadcom Corporation Multi-port network interface device with shared processing resources
RU2420013C1 (en) * 2009-10-14 2011-05-27 Федеральное государственное учреждение 16 Центральный научно-исследовательский испытательный институт Министерства обороны Российской Федерации имени маршала войск связи А.И. Белова Mobile station of confidential telephone communication
RU2523917C2 (en) * 2010-01-06 2014-07-27 Нек Корпорейшн Communication control system and communication control method
RU2522314C1 (en) * 2010-06-23 2014-07-10 Интернэшнл Бизнес Машинз Корпорейшн Data unit storage/storage instructions for communication with adapters
WO2013023195A1 (en) * 2011-08-10 2013-02-14 Castine Nicholas J Device and method for remote computer operation
WO2014022901A2 (en) * 2012-08-10 2014-02-13 Sabia Experience Tecnologia S.A. Method and system implemented by a collaborative distributed computational network, and related devices

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017209645A1 (en) * 2016-05-31 2017-12-07 Общество С Ограниченной Ответственностью "Программируемые Сети" Method for transmitting ethernet frames over software defined networks (sdn)
RU2643469C2 (en) * 2016-05-31 2018-02-01 Би4Эн Груп Лимитед Method for ethernet frames transmission via software-configurable networks (sdn)
US10587508B2 (en) 2016-05-31 2020-03-10 Obschestvo S Ogranichennoi Otvetstvennostyu «Programmiruemye Seti» Ethernet frame transmission method in software defined networks (SDN)
RU2705429C1 (en) * 2016-06-20 2019-11-07 Алибаба Груп Холдинг Лимитед Method and device for distributed processing of stream data
US11036562B2 (en) 2016-06-20 2021-06-15 Advanced New Technologies Co., Ltd. Streaming data distributed processing method and device
RU2678452C1 (en) * 2017-09-13 2019-01-29 Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" Method of virtualization of data storage systems for data processing center and cloud computing
RU2691886C1 (en) * 2018-08-15 2019-06-18 Общество с ограниченной ответственностью "ТЕКОН Микропроцессорные технологии" Complex-functional unit for vlsi-type system on chip

Similar Documents

Publication Publication Date Title
Costa et al. {NaaS}:{Network-as-a-Service} in the Cloud
CN102334112B (en) Method and system for virtual machine networking
RU2584449C2 (en) Communication control system, switching node and communication control method
US9329970B2 (en) Selecting an operator graph configuration for a stream-based computing application
US9047143B2 (en) Automation and programmability for software defined networking systems
US10313380B2 (en) System and method for centralized virtual interface card driver logging in a network environment
CN107925677A (en) For unloading the technology of data object replication and service function chain management
CN107431666B (en) Method, apparatus, and medium for implementing low latency in a data center environment
RU2584471C1 (en) DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER
CN110710160A (en) Generating network-wide logical models for network policy analysis
CN115917520A (en) System for providing LPM implementation for programmable data planes through distributed algorithms
Shanmugalingam et al. DPDK Open vSwitch performance validation with mirroring feature
EP4311367A2 (en) Session management in a forwarding plane
CN115917473A (en) System for building data structure by using highly extensible algorithm realized by distributed LPM
US10616116B1 (en) Network traffic load balancing using rotating hash
Cao et al. CoFilter: High-performance switch-accelerated stateful packet filter for bare-metal servers
US20220166718A1 (en) Systems and methods to prevent packet reordering when establishing a flow entry
Li et al. SDN components and OpenFlow
US20180198704A1 (en) Pre-processing of data packets with network switch application -specific integrated circuit
Maqbool et al. Virtual TCAM for data center switches
US11403200B2 (en) Provisioning resources for monitoring hosts based on defined functionalities of hosts
WO2016108711A1 (en) Data reception and transmission device capable of interacting with an openflow controller
Ibanez et al. Enabling the Reflex Plane with the nanoPU
Zhu et al. OpenStack Oriented Networking-VPP Network Optimization Method
US20200112505A1 (en) Flow rules

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20161231

NF4A Reinstatement of patent

Effective date: 20171124

PC41 Official registration of the transfer of exclusive right

Effective date: 20180524

MM4A The patent is invalid due to non-payment of fees

Effective date: 20191231