RU2710302C1 - Method of organizing operation of network equipment components for processing network packets (4 versions) - Google Patents
Method of organizing operation of network equipment components for processing network packets (4 versions) Download PDFInfo
- Publication number
- RU2710302C1 RU2710302C1 RU2018143014A RU2018143014A RU2710302C1 RU 2710302 C1 RU2710302 C1 RU 2710302C1 RU 2018143014 A RU2018143014 A RU 2018143014A RU 2018143014 A RU2018143014 A RU 2018143014A RU 2710302 C1 RU2710302 C1 RU 2710302C1
- Authority
- RU
- Russia
- Prior art keywords
- rules
- network
- central processor
- equipment
- rule
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Изобретение относится к технологиям сетевой связи, в частности, к способам эффективного решения задач обработки сетевых пакетов, таких как маршрутизация (routing), фильтрация (filtering), маршрутизация на основе политик (policy based routing - PBR), трансляция сетевых адресов (network address translation - NAT) и т.д., а также любой комбинации указанных задач.The invention relates to network communication technologies, in particular, to methods for effectively solving network packet processing problems, such as routing, filtering, policy based routing (PBR), network address translation - NAT), etc., as well as any combination of these tasks.
Уровень техникиState of the art
В настоящее время широкое распространение получил подход, при котором современное сетевое оборудование строится на основе универсальных аппаратных компонентов. Это вызвано тем, что процесс производства таких компонентов хорошо налажен, вследствие чего их стоимость достаточно мала по сравнению со специализированным оборудованием. Примером универсальных аппаратных компонентов оборудования могут служить х86 и х64 совместимые центральные процессоры (CPU) общего назначения, оперативная память (RAM), сетевые платы (NIC) и т.п.Currently, an approach is widely used in which modern network equipment is built on the basis of universal hardware components. This is due to the fact that the production process of such components is well established, as a result of which their cost is quite small compared to specialized equipment. An example of universal hardware hardware components is x86 and x64 general purpose compatible central processing units (CPUs), random access memory (RAM), network cards (NICs), etc.
При этом настройка сетевого оборудования осуществляется администратором сети с использованием высокоуровневого языка конфигурирования путем написания набора правил, в соответствии с которыми сетевое оборудование организует свою деятельность. Набор таких правил далее будет упоминаться как конфигурация сетевого оборудования. Примером конфигурации сетевого оборудования может служить таблица маршрутизации для сетей, работающих на основе протоколов IPv4/IPv6, список контроля доступа (access control list - ACL) и т.д.In this case, network equipment is configured by the network administrator using a high-level configuration language by writing a set of rules in accordance with which the network equipment organizes its activities. A set of such rules will hereinafter be referred to as network equipment configuration. An example of a network equipment configuration is a routing table for networks operating on the basis of IPv4 / IPv6 protocols, access control list (ACL), etc.
Универсальные аппаратные компоненты имеют стандартизированные интерфейсы для взаимодействия между собой, поэтому они являются легко взаимозаменяемыми. При необходимости можно заменить какой-то имеющийся компонент на более новый, и тем самым улучшить производительность всей системы в целом. Однако, в последнее время наблюдается многократный рост пропускной способности сетевых адаптеров, в то время как рост производительности центральных процессоров и оперативной памяти переживает стагнацию. Вследствие этого становится невозможным увеличить производительность сетевого оборудования путем простой замены аппаратных компонентов.Universal hardware components have standardized interfaces for interacting with each other, so they are easily interchangeable. If necessary, you can replace some existing component with a newer one, and thereby improve the performance of the entire system. However, in recent years there has been a multiple increase in the bandwidth of network adapters, while the increase in the performance of central processors and RAM is undergoing stagnation. As a result, it becomes impossible to increase the performance of network equipment by simply replacing hardware components.
Поэтому, в сложившихся условиях, на первый план выходит задача оптимизации издержек, возникающих при взаимодействии разных аппаратных компонентов, а не задача ускорения отдельно взятого аппаратного компонента. Указанная задача связана с максимально эффективным использованием вычислительных мощностей, доступных в настоящее время.Therefore, under the current conditions, the task of optimizing the costs arising from the interaction of different hardware components comes to the fore, and not the task of accelerating a single hardware component. This task is associated with the most efficient use of computing power available at present.
Одной из важных проблем, препятствующих эффективному использованию вычислительных мощностей сетевого оборудования, является медленная скорость передачи данных между центральным процессором и оперативной памятью. По сути, процессор простаивает весь промежуток времени между моментом отправки запроса на очередной блок данных и моментом получения запрошенного блока данных.One of the important problems hindering the efficient use of the computing power of network equipment is the slow data transfer speed between the central processor and RAM. In fact, the processor is idle for the entire time interval between the moment of sending the request for the next data block and the moment of receiving the requested data block.
При обработке сетевых пакетов значительная часть запросов к оперативной памяти связана с необходимостью загрузки правил в центральный процессор. С ростом количества правил увеличивается количество запросов к оперативной памяти, соответственно растут и издержки, возникающие при обработке каждого сетевого пакета. Вследствие чего при большом количестве правил время обработки сетевых пакетов становится недопустимо большим.When processing network packets, a significant part of requests for RAM is associated with the need to load rules into the central processor. With an increase in the number of rules, the number of queries to RAM increases, and the costs associated with processing each network packet increase accordingly. As a result, with a large number of rules, the processing time of network packets becomes unacceptably long.
Несмотря на то, что оборудование на основе универсальных аппаратных компонентов не ориентировано на выполнение задач по обработке сетевых пакетов, тем не менее, оно вполне способно эффективно решать подобные задачи. Однако для этого требуется разработать такой подход к обработке сетевых пакетов, который бы минимизировал издержки, возникающие при взаимодействии аппаратных компонентов этого оборудования.Despite the fact that equipment based on universal hardware components is not oriented toward the fulfillment of network packet processing tasks, nevertheless, it is quite capable of effectively solving such problems. However, this requires the development of such an approach to processing network packets that would minimize the costs associated with the interaction of the hardware components of this equipment.
Существующий уровень техники предоставляет различные способы организации работы компонентов сетевого оборудования для обработки данных.The current level of technology provides various ways of organizing the operation of network equipment components for data processing.
В качестве патентов-аналогов выбраны патенты, которые основаны на эксплуатации так называемого OpenFlow-совместимого оборудования, а именно следующие изобретения:Patents that are based on the operation of the so-called OpenFlow-compatible equipment, namely the following inventions, are selected as patent patents:
1. Патент RU 2 589 340 С2, МПК H04L 12/70, 10.07.2016. - Сетевая система и способ получения данных тега VLAN.1.
2. Патент RU 2 628 476 С1, МПК H04L 12/70, 17.08.2017. - Коммутирующее устройство, контроллер, способ конфигурирования коммутирующего устройства и способ и система для обработки пакета.2.
3. Патент RU 2 609 086 С2, МПК H04L 12/70, 30.01.2017. - Сетевое устройство пересылки пакетов (варианты), способ настройки сетевого устройства пересылки пакетов (варианты) и способ пересылки пакета.3.
4. Патент RU 2 554 543 С2, МПК H04L 12/00, H04L 12/70, 27.06.2015. -Блок связи, система связи, способ связи и носитель записи.4.
Согласно описанию из Патента RU 2 628 476 «Коммутирующее устройство, контроллер, способ конфигурирования коммутирующего устройства и способ и система для обработки пакета» OpenFlow является протоколом управления между контроллером OpenFlow (OpenFlow Controller, для краткости - контроллер) и коммутатором OpenFlow (OpenFlow Switch, для краткости -коммутатор).As described in
Контроллер управляет поведениями коммутатора предпочтительно с использованием таблицы потоков (Flow Table). Таблица потоков хранится в коммутаторе и формируется из множества записей о потоках (Flow Entry). Каждая запись о потоке включает в себя, как правило, поля соответствия (Match Fields) и команды (Instructions).The controller controls the behavior of the switch, preferably using a flow table. The table of flows is stored in the switch and is formed from a set of records about flows (Flow Entry). Each stream record includes, as a rule, Match Fields and Instructions.
Как правило, поле соответствия указывает информацию, которую нужно сопоставить (которая может быть такой информацией, как различные поля заголовка пакета или ID порта, из которого коммутатор принимает пакет), и обеспечивает присвоенное значение информации, которую нужно сопоставить, причем присвоенное значение используется для сравнения с фактическим значением информации, которая относится к пакету и которую нужно сопоставить, а команды включают в себя множество типов команд, которые включают в себя действие (Action), используемое для указания выполнения некой операции над пакетом."Typically, the correspondence field indicates the information that needs to be matched (which can be information such as various header fields of the packet or the port ID from which the switch receives the packet) and provides the assigned value of the information that needs to be matched, and the assigned value is used for comparison with the actual value of the information that pertains to the package and which needs to be matched, and the commands include many types of commands, which include the Action used to indicate to perform some operation on the package. "
Таким образом, все указанные выше патенты-аналоги имеют тот общий признак с заявленным изобретением, что пакеты обрабатываются в соответствии с набором правил (в OpenFlow это называется Flow Table), где каждое правило (в OpenFlow это называется Flow Entry) в наборе состоит из полей пакетов (в OpenFlow это называется Match Fields) и действий (в OpenFlow это называется Instructions).Thus, all the above patent analogues have the same attribute with the claimed invention that packets are processed in accordance with a set of rules (in OpenFlow it is called Flow Table), where each rule (in OpenFlow it is called Flow Entry) in a set consists of fields packages (in OpenFlow it is called Match Fields) and actions (in OpenFlow it is called Instructions).
Как следует из описания протокола OpenFlow - это протокол управления между контроллером и коммутатором, описывающий возможности коммутатора по обработке сетевых пакетов. При этом реализация таких возможностей в конкретных программно-аппаратных комплексах может быть различна и допускает оптимизацию в соответствии с характеристиками конкретного оборудования. Таким образом, патенты-аналоги направлены на решение проблем, возникающих при эксплуатации уже реализованных OpenFlow-совместимых программно-аппаратных комплексов.As follows from the protocol description, OpenFlow is a control protocol between the controller and the switch that describes the switch's capabilities for processing network packets. Moreover, the implementation of such capabilities in specific software and hardware systems can be different and can be optimized in accordance with the characteristics of a particular equipment. Thus, patents-analogues are aimed at solving problems arising from the operation of already implemented OpenFlow-compatible software and hardware systems.
В отличие от патентов-аналогов заявленное изобретение описывает новые способы реализации программно-аппаратных комплексов для обработки сетевых пакетов, в том числе и OpenFlow-совместимых комплексов. Таким образом, патенты-аналоги и заявленное изобретение направлены на решение разных задач. В этом заключается новизна предлагаемого изобретения, в отличие от существующих изобретений.Unlike analog patents, the claimed invention describes new methods for implementing software and hardware systems for processing network packets, including OpenFlow-compatible complexes. Thus, patents-analogues and the claimed invention are aimed at solving various problems. This is the novelty of the invention, in contrast to existing inventions.
Наиболее близким к заявленному техническому решению является Патент RU 2 609 086 С2, МПК H04L 12/70, 30.01.2017. - Сетевое устройство пересылки пакетов (варианты), способ настройки сетевого устройства пересылки пакетов (варианты) и способ пересылки пакета. Это техническое решение принято за прототип.Closest to the claimed technical solution is
Патент-прототип описывает способ исправления недостатка стандарта OpenFlow версии 1.0, а именно невозможность использования нескольких таблиц (Flow Table). В качестве решения предлагается прогонять сетевой пакет через одну и ту же таблицу несколько раз, но при этом каждый раз с разными значениями полей (Match Fields), конкретно - с разным значением поля "ID порта, из которого коммутатор принимает пакет". Значение этого поля меняется путем отправки пакета в аппаратную петлю. Пакет отправляется в сеть и сразу же возвращается, но уже через другой порт. Таким образом, патент-прототип позволяет имитировать несколько таблиц с помощью одной, путем разбиения записей (Flow Entry) в ней на группы, при этом каждая группа записей реагирует только на пакеты, принятые из определенного порта коммутатора.The patent prototype describes a way to correct a flaw in the OpenFlow standard version 1.0, namely the inability to use multiple tables (Flow Table). As a solution, it is proposed to run the network packet through the same table several times, but each time with different field values (Match Fields), specifically with a different value for the "Port ID from which the switch receives the packet" field. The value of this field is changed by sending the packet to the hardware loop. The packet is sent to the network and immediately returned, but through a different port. Thus, the patent prototype allows you to simulate several tables using one, by splitting the entries (Flow Entry) in it into groups, with each group of entries responding only to packets received from a specific port on the switch.
Несмотря на достоинства, прототип имеет недостатки. Количество имитируемых таким образом таблиц ограничено количеством портов в коммутаторе. Это существенно ограничивает возможности администратора по конфигурации коммутатора. Кроме того, многократный прогон одних и тех же сетевых пакетов через одну и ту же таблицу негативно сказывается на пропускной способности коммутатора, в худшем случае при имитации N таблиц пропускная способность коммутатора будет падать в N раз.Despite the advantages, the prototype has disadvantages. The number of tables simulated in this way is limited by the number of ports in the switch. This significantly limits the administrator’s ability to configure the switch. In addition, multiple runs of the same network packets through the same table negatively affect the bandwidth of the switch, in the worst case, when simulating N tables, the bandwidth of the switch will drop N times.
В отличие от патента-прототипа, заявленное изобретение предлагает администратору более гибкие инструменты для конфигурации сетевого оборудования, при этом пропускная способность сетевого оборудования, независимо от его конфигурации, будет оставаться всегда высокой.Unlike the prototype patent, the claimed invention offers the administrator more flexible tools for configuring network equipment, while the throughput of network equipment, regardless of its configuration, will always remain high.
В качестве примера возьмем ту же задачу, которая решалась в патенте-прототипе, но переформулированную в терминах нашего патента, а именно: организация правил в виде нескольких наборов правил.As an example, we take the same problem that was solved in the prototype patent, but reformulated in terms of our patent, namely: the organization of rules in the form of several sets of rules.
В патенте-прототипе для того, чтобы отправить сетевой пакет на обработку в следующую таблицу использовалась аппаратная петля. В нашем патенте для того, чтобы отправить сетевой пакет на обработку в следующий набор правил достаточно создать нетерминальное правило с действием, например, JUMP (см. пример 2 и таблицы 6, 7), которое выполнит переход к первому правилу из следующего набора, то есть изменит порядок применения правил к пакету. Отметим, что нетерминальные правила используются только на этапе конфигурирования сетевого оборудования.In the prototype patent, a hardware loop was used to send the network packet for processing to the following table. In our patent, in order to send a network packet for processing to the next set of rules, it is enough to create a nonterminal rule with an action, for example, JUMP (see example 2 and tables 6, 7), which will go to the first rule from the next set, i.e. Change the order in which rules are applied to the package. Note that non-terminal rules are used only at the stage of configuring network equipment.
Предлагаемое изобретение позволяет преобразовать все исходные наборы правил в один набор примитивных терминальных правил и построить индекс этих правил. На этапе обработки пакетов уже используются преобразованные правила, и, как показано в разделе "Раскрытие изобретения", при этом пропускная способность оборудования не зависит ни от количества исходных правил, ни от количества наборов исходных правил.The present invention allows you to convert all the original rule sets into one set of primitive terminal rules and build an index of these rules. At the stage of processing packets, the converted rules are already used, and, as shown in the “Disclosure of the Invention” section, the equipment throughput does not depend on the number of source rules or the number of sets of source rules.
Таким образом, предлагаемое изобретение применимо, в том числе, для создания OpenFlow-совместимого оборудования, поддерживающего работу с несколькими таблицами (Flow Table) и обеспечивающего при этом не меньшую (возможно - большую) производительность, чем аналогичное оборудование, поддерживающее работу только с одной таблицей.Thus, the present invention is applicable, inter alia, to create OpenFlow-compatible equipment that supports work with multiple tables (Flow Table) and provides at the same time no less (possibly more) performance than similar equipment that supports work with only one table .
Помимо этого, предлагаемое изобретение применимо для создания и других программно-аппаратных комплексов, выполняющих обработку сетевых пакетов в соответствии с заданным набором правил.In addition, the present invention is applicable to the creation of other software and hardware systems that process network packets in accordance with a given set of rules.
Техническая цель заявленного изобретения заключается в увеличении количества сетевых пакетов, которые возможно передать из одного сегмента в сети в другой за единицу времени, соблюдая при этом политику безопасности, установленную администратором сети. То есть целью является увеличение пропускной способности сетевого оборудования с заданной конфигурацией, которое находится на границе сегментов сети.The technical goal of the claimed invention is to increase the number of network packets that can be transferred from one segment in the network to another in a unit of time, while observing the security policy established by the network administrator. That is, the goal is to increase the throughput of network equipment with a given configuration, which is located on the border of network segments.
Классическим подходом достижения этой цели является наращивание количества экземпляров сетевого оборудования и организация балансировки трафика между этими экземплярами. Например, вместо одного межсетевого экрана может использоваться два сетевых экрана и балансировщик трафика, равномерно распределяющий поток сетевых пакетов между межсетевыми экранами, что, в лучшем случае, двукратно увеличит пропускную способность системы в целом. Очевидно, недостатком такого подхода является его высокая стоимость: оборудование необходимо закупить, под него необходимо выделить место в серверном помещении, подвести электроснабжение, организовать его охлаждение и так далее.The classic approach to achieving this goal is to increase the number of instances of network equipment and organize the balancing of traffic between these instances. For example, instead of a single firewall, two firewalls and a traffic balancer can be used to evenly distribute the flow of network packets between firewalls, which, at best, will double the throughput of the entire system. Obviously, the disadvantage of this approach is its high cost: equipment must be purchased, it is necessary to allocate a place in the server room for it, bring power supply, organize its cooling, and so on.
Поэтому, целью заявленного изобретения является увеличение пропускной способности оборудования без увеличения количества его экземпляров. Это равнозначно увеличению количества сетевых пакетов, обрабатываемых за единицу времени единицей сетевого оборудования. Такую величину будем называть эффективностью сетевого оборудования.Therefore, the aim of the claimed invention is to increase the throughput of the equipment without increasing the number of copies. This is equivalent to an increase in the number of network packets processed per unit of time by a unit of network equipment. This value will be called the efficiency of network equipment.
Таким образом, технический результат, достигаемый при использовании заявленного изобретения, заключается в повышении эффективности сетевого оборудования по обработке сетевых пакетов в соответствии с заданной конфигурацией.Thus, the technical result achieved by using the claimed invention is to increase the efficiency of network equipment for processing network packets in accordance with a given configuration.
В результате реализации предлагаемого способа организации взаимодействия компонентов сетевого оборудования решаются следующие задачи:As a result of the implementation of the proposed method for organizing the interaction of network equipment components, the following tasks are solved:
1) минимизируется количество пересылок данных между центральным процессором и другими компонентами системы;1) the number of data transfers between the central processor and other components of the system is minimized;
2) не требуется использования новых инструментов настройки от администратора сетевого оборудования;2) it is not required to use new configuration tools from the network equipment administrator;
3) не требуется замены и модификации существующих компонентов системы.3) no replacement or modification of existing system components is required.
Технический результат достигается за счет реализации способа организации взаимодействия компонентов сетевого оборудования, который характеризуется следующими существенными признаками:The technical result is achieved through the implementation of the method of organizing the interaction of components of network equipment, which is characterized by the following essential features:
1) (наличие действия или совокупности действий) Способ предполагает наличие предварительного подготовительного этапа работы оборудования. Этот этап заключается в имитации обработки тех пакетов, которые теоретически могли бы прийти на сетевое оборудование с заданной конфигурацией. В процессе этой имитации становится известно, через какие правила пройдет сетевой пакет при попадании в сетевое оборудование. Объединение вместе правил, принадлежащих одному и тому же пути сетевого пакета, позволяет получить набор преобразованных правил, которые с одной стороны эквивалентны исходным, а с другой стороны - являются более простыми, что позволяет построить их индекс и выполнять эффективный поиск по ним.1) (the presence of an action or set of actions) The method involves the presence of a preliminary preparatory stage of the equipment. This stage consists in simulating the processing of those packets that could theoretically come to network equipment with a given configuration. During this simulation, it becomes known through which rules a network packet will go through when it enters network equipment. Combining together the rules that belong to the same network packet path allows you to get a set of converted rules that are on the one hand equivalent to the original ones and, on the other hand, are simpler, which allows you to build their index and perform an efficient search on them.
2) (порядок выполнения действий во времени) Способ предполагает, что подготовительный этап выполняется еще до начала приема первого пакета из сети. Это означает, что между моментом, когда администратор задает новую конфигурацию для оборудования, и моментом, когда оборудование на самом деле начинает работать в соответствии с новой конфигурацией, проходит некоторое время, на практике - до нескольких секунд. Очевидно, что в некоторых случаях это является недостатком, поскольку не позволяет менять конфигурацию оборудования очень часто (несколько раз в секунду). Однако, следует отметить, что затраты на подготовительный этап единовременны, в то время как положительный эффект от выполнения этого этапа длится все время работы оборудования вплоть до применения новой конфигурации. Поэтому, если конфигурация оборудования меняется относительно редко, то предлагаемый способ вполне оправдан.2) (the procedure for performing actions in time) The method assumes that the preparatory stage is carried out before the first packet is received from the network. This means that between the moment when the administrator sets a new configuration for the equipment and the moment when the equipment actually starts working in accordance with the new configuration, some time passes, in practice, up to several seconds. Obviously, in some cases this is a drawback, because it does not allow you to change the configuration of the equipment very often (several times per second). However, it should be noted that the costs of the preparatory phase are one-time, while the positive effect of this stage lasts all the time the equipment is in operation until the new configuration is applied. Therefore, if the configuration of the equipment changes relatively rarely, the proposed method is fully justified.
3) (условия осуществления действий; режим; использование устройств) Способ предполагает возможность подключения дополнительного аппаратного компонента к существующему сетевому оборудованию на основе универсальных аппаратных компонентов. В рамках заявленного изобретения описывается принцип работы дополнительного устройства, способного эффективно преобразовывать набор произвольных правил в набор терминальных примитивных правил. Это дополнительное устройство может использоваться для минимизации времени, необходимого на выполнение подготовительного этапа, что расширяет область применимости заявленного изобретения. В случае, если использование дополнительного устройства затруднено или нецелесообразно, способ предполагает возможность выполнения подготовительного этапа с помощью только имеющихся аппаратных компонентов.3) (conditions for the implementation of actions; mode; use of devices) The method involves the possibility of connecting an additional hardware component to existing network equipment based on universal hardware components. In the framework of the claimed invention describes the principle of operation of an additional device that can effectively convert a set of arbitrary rules into a set of terminal primitive rules. This additional device can be used to minimize the time required to complete the preparatory phase, which expands the scope of applicability of the claimed invention. In the event that the use of an additional device is difficult or impractical, the method involves the possibility of performing the preparatory phase using only the available hardware components.
Изобретение иллюстрируется следующими рисунками.The invention is illustrated by the following figures.
Фиг. 1 - блок-схема архитектуры современной вычислительной системы на базе х86 или х64 совместимого процессора общего назначения;FIG. 1 is a block diagram of the architecture of a modern computing system based on an x86 or x64 compatible general-purpose processor;
Фиг. 2 - блок-схема последовательности операций в сетевом оборудовании при обработке сетевого пакета;FIG. 2 is a flowchart of network equipment in processing a network packet;
Фиг. 3 - блок-схема последовательности операций в сетевом оборудовании при обработке сетевого пакета, иллюстрирующая работу изобретения согласно варианту осуществления «полностью аппаратное решение»;FIG. 3 is a flowchart of network equipment in processing a network packet, illustrating the operation of the invention according to an “fully hardware solution” embodiment;
Фиг. 4 - блок-схема архитектуры современной вычислительной системы на базе х86 или х64 совместимого процессора общего назначения, иллюстрирующая реализацию изобретения согласно варианту осуществления «полностью аппаратное решение»;FIG. 4 is a block diagram of the architecture of a modern computing system based on an x86 or x64 compatible general-purpose processor, illustrating the implementation of the invention according to a fully hardware solution embodiment;
Фиг. 5 - блок-схема преобразователя правил в предлагаемом способе;FIG. 5 is a block diagram of a rule converter in the proposed method;
Фиг. 6 - блок-схема модуля объединения правил в преобразователе правил;FIG. 6 is a block diagram of a rule combining module in a rule converter;
Фиг. 7 - блок-схема реализации способа с помощью полностью аппаратного решения, выполняющего функции преобразования, хранения и поиска правил (вариант 1);FIG. 7 is a flowchart of a method using a fully hardware solution that performs the functions of converting, storing, and searching for rules (option 1);
Фиг. 8 - блок-схема реализации способа с помощью аппаратного решения, выполняющего функции преобразования и поиска правил, с хранением исходных и примитивных терминальных правил в оперативной памяти (вариантFIG. 8 is a flowchart of a method using a hardware solution that performs the functions of converting and searching for rules, with the storage of the original and primitive terminal rules in RAM (option
2);2);
Фиг. 9 - блок-схема реализации способа с помощью аппаратного решения, выполняющего функции только преобразования правил (вариант 3);FIG. 9 is a flowchart of a method using a hardware solution that performs the functions of only transforming rules (option 3);
Фиг. 10 - блок-схема реализации способа, предполагающего снижение количества дополнительных подключаемых аппаратных компонентов (вариант 4).FIG. 10 is a flow chart of a method involving a reduction in the number of additional plug-in hardware components (option 4).
Раскрытие изобретенияDisclosure of invention
Для раскрытия заявленного изобретения используются следующие термины и определения.To disclose the claimed invention, the following terms and definitions are used.
Поле - значение некоторого свойства или атрибута, представленное в числовой форме.Field - the value of a property or attribute, represented in numerical form.
Пакет - специальным образом оформленное сообщение, передаваемое по линиям связи.Package - a specially designed message transmitted over communication lines.
Поля пакета - совокупность всех полей, каким-либо образом имеющих отношение к пакету в процессе его обработки. Поле пакета не обязательно является информацией, хранящейся в самом пакете, такой как, например, номер сетевого протокола. Полем пакета может быть информация, необходимая для обработки пакета и хранящаяся в сетевом оборудовании, такая как, например, временная метка приема пакета или номер правила, применяемого к пакету в данный момент времени.Package fields - a set of all fields that are in any way related to the package in the process of processing it. A packet field is not necessarily information stored in the packet itself, such as, for example, the network protocol number. The packet field may be the information necessary for processing the packet and stored in the network equipment, such as, for example, the timestamp of receiving the packet or the number of the rule applied to the packet at a given time.
Правило - совокупность набора проверок и упорядоченного набора действий, выполняемых по отношению к полям пакета.A rule is a collection of checks and an ordered set of actions performed in relation to the fields of a package.
Проверка (правила) - предикат, принимающий один или несколько полей пакета и возвращающий булево значение (1 (проверка пройдена) или 0 (проверка не пройдена)). Примером проверки может служить проверка того, что сумма всех полей пакета является четным числом.Validation (rules) - a predicate that takes one or more fields of a packet and returns a Boolean value (1 (validation passed) or 0 (validation failed)). An example of verification is the verification that the sum of all fields in a packet is an even number.
Говорят, что пакет подходит под правило, если все проверки правила, примененные к полям пакета, возвращают положительный результат.It is said that a package matches a rule if all rule checks applied to the fields of the package return a positive result.
Действие (правила) - операция, выполняемая над полями пакета. Примером действия может служить запись некоторых полей пакета в журнал.An action (rules) is an operation performed on the fields of a package. An example of an action is to write some fields of a package to a log.
Следующие проверки называются примитивными:The following checks are called primitive:
1. Проверка на то, что поле пакета равно заданному значению.1. Check that the packet field is equal to the specified value.
2. Проверка на то, что поле пакета имеет заданный префикс.2. Checking that the packet field has the specified prefix.
3. Проверка на то, что поле пакета находится в заданном диапазоне.3. Check that the packet field is in the specified range.
Правило называется примитивным, если все его проверки являются примитивными.A rule is called primitive if all of its checks are primitive.
Вердикт - действие, изменяющее порядок применения правил к пакету.Verdict - an action that changes the order in which rules are applied to a package.
Вердикт называется терминальным, если он завершает процесс применения правил к пакету.A verdict is called terminal if it completes the process of applying rules to a package.
Правило называется терминальным, если оно содержит терминальный вердикт.A rule is called terminal if it contains a terminal verdict.
Конфигурация (сетевого оборудования) - упорядоченный набор правил, определяющих алгоритм обработки сетевых пакетов.Configuration (network equipment) - an ordered set of rules that determine the algorithm for processing network packets.
Две конфигурации являются эквивалентными друг другу, если при применении этих наборов к любому пакету, они оказывают на него одинаковое воздействие.Two configurations are equivalent to each other if, when applying these sets to any package, they have the same effect on it.
Путем пакета будем называть упорядоченный в хронологическом порядке набор правил, под которые подошел пакет в процессе его обработки сетевым оборудованием.By a packet we will call a set of rules ordered in chronological order, under which a packet came up during its processing by network equipment.
Общие основные признаки предлагаемого способа организации работы компонентов сетевого оборудования для обработки сетевых пакетов заключаются в следующем.The general main features of the proposed method for organizing the operation of network equipment components for processing network packets are as follows.
Современные вычислительные системы на базе х86 и х64 совместимых процессоров устроены следующим образом (фиг. 1):Modern computing systems based on x86 and x64 compatible processors are arranged as follows (Fig. 1):
- центральный процессор 100 имеет встроенный контроллер памяти 101, поэтому соединен непосредственно со слотами оперативной памяти RAM 102 посредством соответствующей шины 103;- the
- чипсет 104 через различные типы шин 105 соединяется со слотами для периферийных устройств 106, в том числе и для сетевых адаптеров NIC 107;- the
- центральный процессор CPU 100 и чипсет 104 соединяются друг с другом внутренней шиной 108.- a central
Когда сетевой пакет 109 приходит в сетевой адаптер NIC 107, он пересылается в оперативную память RAM 102 посредством механизма DMA 110 (Direct Memory Access - прямой доступ к памяти).When the
Схема на фиг. 2 демонстрирует, что при большом количестве правил обработка сетевого пакета может занять значительное время.The circuit of FIG. Figure 2 shows that with a large number of rules, processing a network packet can take considerable time.
Механизм DMA 200 позволяет передавать данные между оперативной памятью RAM 202 и периферийными устройствами NIC 201 без участия центрального процессора CPU 203, позволяя ему заниматься в это время другими задачами. Таким образом, центральный процессор CPU 203 приступает к обработке сетевого пакета 204, когда сетевой пакет 204 уже находится в оперативной памяти RAM 202.The
При этом значительная часть времени при обработке сетевого пакета 204 тратится на загрузку правил 205 из оперативной памяти RAM 202 в центральный процессор CPU 203. Это вызвано тем, что процессору CPU 203 заранее неизвестно, какие правила необходимо применить к сетевому пакету 204. Поэтому центральный процессор CPU 203 запрашивает из оперативной памяти RAM 202 по одному все правила от 1 до N, где N - количество правил, до тех пор, пока не найдется терминальное правило, под которое подойдет сетевой пакет 204.In this case, a significant part of the time when processing the
С увеличением количества правил N в конфигурации сетевого оборудования увеличивается количество загрузок правил из оперативной памяти. Это имеет за собой негативные последствия, в частности, возникают многочисленные простои 206, препятствующие эффективному использованию процессора, во время которых процессор ожидает получения данных из памяти, а также существенно возрастает нагрузка на шину памяти, препятствуя тем самым работе других процессов в системе, поскольку многоядерный процессор может выполнять несколько задач одновременно. Таким образом, пропускная способность сетевого оборудования сильно зависит от того, сколько правил находится в его конфигурации.With an increase in the number of rules N in the configuration of network equipment, the number of rule downloads from RAM increases. This has negative consequences, in particular, there are
Задача, на решение которой направлено данное изобретение, заключается в разработке способа взаимодействия процессора с другими компонентами системы, приводящего к увеличению количества сетевых пакетов, которые возможно передать из одного сегмента в сети в другой за единицу времени, соблюдая при этом политику безопасности, установленную администратором сети.The problem to which this invention is directed is to develop a method for the processor to interact with other system components, leading to an increase in the number of network packets that can be transferred from one segment in the network to another per unit of time, while observing the security policy established by the network administrator .
Заявленное изобретение осуществляется с использованием устройства, подключаемого к процессору, либо реализуемого полностью или частично программным образом, и выполняющего обработку запросов, поступающих от процессора. Оно позволяет за относительно короткий фиксированный промежуток времени по заданному набору полей пакета определить, под какие правила подходит сетевой пакет, то есть определить те правила, которые должны быть загружены в процессор для применения их к сетевому пакету. Заявленное изобретение дополняет существующие программно-аппаратные комплексы, позволяя их компонентам выполнять свои задачи более эффективно.The claimed invention is carried out using a device connected to the processor, or implemented in whole or in part in software, and performing processing of requests from the processor. It allows for a relatively short fixed period of time from a given set of packet fields to determine which rules a network packet is suitable for, that is, to determine those rules that must be loaded into the processor to apply them to a network packet. The claimed invention complements the existing hardware and software systems, allowing their components to perform their tasks more efficiently.
Схема на фиг. 3 демонстрирует, как устройство для реализации способа позволяет значительно сократить время обработки сетевого пакета согласно одному из вариантов осуществления изобретения - «полностью аппаратное решение» (см. фиг. 7). Механизм приема пакетов из сетевой платы 301 в оперативную память 303 осуществляется по-прежнему с помощью прямого доступа к памяти 300. Однако, в этом варианте осуществления изобретения процессор 304 не обращается к оперативной памяти 303 с целью поиска подходящих правил. Вместо этого процессор отправляет запрос в устройство 302 в виде полей пакета 306. Устройство 302 с помощью внутренних модулей выполняет быстрый поиск тех правил из конфигурации сетевого оборудования, под которое подходит сетевой пакет 305. Отметим, что в это время правила к пакету не применяются, однако, поиск правил происходит с учетом тех изменений, которые могли бы происходить, если бы применение правил имело место быть. Найдя необходимые правила, устройство 302 формирует и отправляет процессору 304 набор действий 307, которые тот выполняет по отношению к сетевому пакету 305. Один простой 308, который является временем обработки запроса процессора 304 устройством 302, значительно меньше многочисленных простоев (см. блок 206 на фиг. 2), которые являются временем получения нескольких правил из оперативной памяти 303. Кроме того, в таком варианте осуществления изобретения, шина памяти не задействуется для передачи правил, и поэтому она может быть использована для передачи другой информации. Таким образом, устройство для реализации способа позволяет существенно увеличить пропускную способность сетевого оборудования, и при этом пропускная способность становится уже независимой от количества правил в конфигурации сетевого оборудования.The circuit of FIG. 3 shows how a device for implementing the method can significantly reduce the processing time of a network packet according to one embodiment of the invention — a “fully hardware solution” (see Fig. 7). The mechanism for receiving packets from the
На фиг. 4 приведена блок-схема, иллюстрирующая устройство для реализации изобретения.In FIG. 4 is a block diagram illustrating an apparatus for implementing the invention.
Само устройство для реализации способа в данном случае представляет собой отдельную РCI-плату 400, подключаемую непосредственно к процессору 407 (если такая возможность есть), либо к чипсету 408 (в противном случае) посредством PCIe шины 406.The device for implementing the method in this case is a
Перед началом использования устройства 400 для реализации способа, необходимо провести процедуру его настройки, которая выглядит следующим образом:Before using the
1. Преобразователю правил 404 передается заранее сформированный набор исходных правил посредством DMA-пересылки, который сохраняется в соответствующий буфер 401.1. A
2. Преобразователь правил 404 преобразует набор исходных правил в набор примитивных терминальных правил, который сохраняется в соответствующий буфер 402.2. The
3. Классификатор пакетов 405 на основе терминальных примитивных правил строит индекс правил 403.3. A
В случае изменения набора исходных правил может быть проведена процедура повторной настройки устройства 400 для реализации способа. При этом во время повторной настройки устройство продолжает свою работу в штатном режиме.In the event of a change in the set of source rules, a procedure for reconfiguring the
После успешного завершения настройки, устройство для реализации способа может быть использовано для того, чтобы выполнять поиск правил, необходимых для обработки сетевых пакетов. Для этого процессор 407 отправляет в классификатор пакетов 405 наборов полей пакета, который предварительно был принят из сетевого адаптера 410 и помещен в оперативную память 409. Классификатор пакетов 405 использует индекс правил 403, построенный им же на этапе настройки устройства, для того, чтобы определить позицию искомого правила в буфере терминальных примитивных правил 402. Передавать проверки найденного правила процессору не требуется, поскольку проверки используются только для поиска правил. Поэтому классификатор пакетов 405 передает процессору лишь действия найденного правила.After the successful completion of the setup, the device for implementing the method can be used to search for the rules necessary for processing network packets. For this, the
Возможность построения индекса правил из набора терминальных примитивных правил неоднократно описывалась в открытых источниках, например, в [1,2]. Отметим, что время поиска в таком индексе не зависит от количества правил в конфигурации сетевого оборудования, а зависит только от числа инспектируемых полей сетевого пакета. Поскольку это число является константой на всем протяжении работы сетевого оборудования, время поиска в индексе правил ограничено сверху относительно небольшим фиксированным временем.The possibility of constructing an index of rules from a set of terminal primitive rules has been repeatedly described in open sources, for example, in [1,2]. Note that the search time in such an index does not depend on the number of rules in the configuration of network equipment, but depends only on the number of inspected fields of the network packet. Since this number is a constant throughout the operation of the network equipment, the search time in the index of rules is limited from above by a relatively small fixed time.
Однако возможность преобразования набора произвольных правил в эквивалентный ему набор терминальных примитивных правил нигде раньше не описывалась. Вместе с тем, терминальность и примитивность всех правил в наборе является необходимым условием для построения индекса правил и, соответственно, для работы всего устройства для реализации способа. Поэтому именно преобразователь правил 404 является основным источником новизны заявленного изобретения.However, the possibility of transforming a set of arbitrary rules into an equivalent set of terminal primitive rules has never been described before. However, the terminality and primitiveness of all the rules in the set is a prerequisite for constructing an index of rules and, accordingly, for the operation of the entire device for implementing the method. Therefore, it is the
На фиг. 5 представлена блок-схема преобразователя правил в составе устройства для реализации способа на фиг. 4.In FIG. 5 is a block diagram of a rule converter as part of a device for implementing the method of FIG. 4.
Общее описание атрибутов преобразователя правил.A general description of the attributes of a rule converter.
Являющийся одним из основных компонентов устройства для реализации способа преобразователь правил обладает рядом важных свойств.Being one of the main components of the device for implementing the method, the rule converter has a number of important properties.
Разработанный преобразователь правил (фиг. 5) позволяет имитировать процесс применения исходного набора правил ко всем сетевым пакетам, которые теоретически могут попасть в сетевое оборудование. Это позволяет определить пути различных пакетов еще до их попадания в систему.The developed rule converter (Fig. 5) allows you to simulate the process of applying the original set of rules to all network packets that theoretically can get into the network equipment. This allows you to determine the paths of various packages even before they get into the system.
Путь пакета нетрудно преобразовать в примитивное терминальное правило. Для этого в качестве проверок правила используются проверки на равенство полей пакета тем значениям, которые привели к формированию пути пакета. А в качестве действий правила используется конкатенация всех действий из пути пакета.The package path can easily be converted into a primitive terminal rule. To do this, checks for the equality of packet fields to those values that led to the formation of the packet path are used as rule checks. And as the actions of the rule, the concatenation of all actions from the package path is used.
Формально, поиска всех путей пакетов с последующим их преобразованием в примитивные терминальные правила достаточно для реализации преобразователя для реализации способа. Но на практике такой подход неосуществим, поскольку количество различных пакетов, которые теоретически могут попасть в сетевое оборудование, слишком велико.Formally, searching for all paths of packets with their subsequent transformation into primitive terminal rules is enough to implement a converter for implementing the method. But in practice, this approach is not feasible, since the number of different packets that theoretically can get into the network equipment is too large.
Поэтому, важным свойством разработанного преобразователя является возможность группировки сетевых пакетов, имеющих одинаковые пути, в множества, которые можно описать с помощью примитивных предикатов. Таким образом, количество итоговых примитивных терминальных правил будет зависеть уже не от количества возможных пакетов, а от количества возможных путей пакетов, число которых значительно меньше.Therefore, an important property of the developed converter is the ability to group network packets that have the same path into sets that can be described using primitive predicates. Thus, the number of final primitive terminal rules will no longer depend on the number of possible packets, but on the number of possible packet paths, the number of which is much smaller.
Наконец, разработанный преобразователь позволяет оптимизировать действия, входящие в правила из пути пакета. Если несколько действий изменяют одно и то же поле пакета, то, в некоторых случаях, их можно заменить эквивалентным действием. Например, пару действий "прибавление числа 1" и "вычитание числа 6" можно заменить одним действием "вычитание числа 5". Это позволяет сократить количество действий в результирующих примитивных терминальных правилах.Finally, the developed converter allows you to optimize the actions included in the rules from the package path. If several actions change the same field of the package, then, in some cases, they can be replaced by an equivalent action. For example, a pair of actions “adding the
Преобразователь на фиг. 5 работает следующим образом.The converter of FIG. 5 works as follows.
Входными данными для преобразователя правил являются исходные правила, помещаемые в буфер 500. Выходными данными преобразователя являются терминальные примитивные правила, сохраняемые в буфер 510.The input to the rule converter is the original rules that are placed in the
Перед началом преобразования контроллер порядка вычислений 505 инициализирует регистры начальными значениями. Регистр базового правила 508 инициализируется правилом, под которое подходит любой пакет, и которое не выполняет над пакетом никаких действий. Регистр селектора правила 502 инициализируется значением, указывающим на первое правило из набора исходных правил 500. Регистр текущего пути 504 инициализируется пустым путем. Эти три регистра полностью описывают текущее состояние контроллера порядка вычислений 505 и могут в произвольный момент времени быть сохранены в хранилище состояний контроллера 507 или извлечены из него. Регистр текущего правила (503) не входит в состояние контроллера. Перед началом преобразования хранилище состояний контроллера 507 не содержит ни одного состояния.Before starting the conversion, the
Работа преобразователя правил основана на итеративном принципе. В начале каждой итерации декодер правил 501 извлекает из буфера исходных правил 500 правило, на которое указывает регистр селектора правил 502, преобразует его в форму, удобную для последующих вычислений и помещает его в регистр текущего правила 503. Дальнейшие действия зависят от вердикта текущего правила.The rule converter is based on an iterative principle. At the beginning of each iteration,
В случае, если текущее правило является терминальным, то результат работы модуля объединения правил 506 передается модулю оптимизации и компрессии правил 509. Модуль оптимизации и компрессии правил 509 может отбросить новое правило, в случае, если это правило никогда не сможет сработать, например, если оно описывает пустое множество пакетов. Также модуль оптимизации и компрессии правил 509 может объединить новое правило с одним из имеющихся терминальных примитивных правил. Наконец, новое правило может быть добавлено в конец буфера терминальных примитивных правил 510.If the current rule is terminal, then the result of the
В случае, если же текущее правило не является терминальным, то происходит следующее. Состояние контроллера помещается в хранилище состояний контроллера 507 для того, чтобы позже иметь возможность продолжить вычисления того пути пакетов, которое не содержит текущего правила. Значение регистра базового правила 508 замещается результатом работы модуля объединения правил 506, регистр текущего пути 504 дополняется значением регистра селектора правил 502, а регистр селектора правил 502 модифицируется в соответствии с вердиктом текущего правила. На этом итерация заканчивается.If the current rule is not terminal, then the following occurs. The state of the controller is placed in the state store of the
Обработка текущего пути пакетов заканчивается при наступлении одного из событий:Processing of the current packet path ends when one of the events occurs:
1. Регистр селектора правила 502 указывает на конец буфера исходных правил 500.1. The register of the
2. Регистр базового правила 508 содержит правило, под которое не может попасть ни один пакет.2. The register of the
После этого состояние всех регистров замещается теми значениями, которые были ранее сохранены в хранилище состояний контроллера 507 и контроллер продолжает обработку того пути пакетов, которое не содержит нетерминального пути, вызвавшего смену состояний контроллера.After that, the state of all registers is replaced by those values that were previously stored in the state store of the
Работа преобразователя правил заканчивается после обработки всех возможных путей пакетов.The rule converter ends after processing all possible packet paths.
Из всех модулей преобразователя правил наиболее сложным является модуль объединения правил 506. Он позволяет на основе пары упорядоченных правил А и В сформировать правило С, которое имеет следующие свойства. Во-первых, под правило С подходят только те пакеты, которые подходят под правила А и В одновременно, причем с учетом тех изменений, которые оказывают действия правила А на поля пакета. Во-вторых, действия правила С, эквиваленты тем действиям, которые содержатся одновременно в правилах А и В.Of all the modules of the rule converter, the most complex is the module for combining
На фиг. 6 представлена схема работы модуля объединения правил 506 в преобразователе правил, который представлен на фиг. 5.In FIG. 6 is a flow diagram of a
На фиг. 6 представлены проверки базового правила 600 и действия базового правила 602, которые соответствуют значениям в регистре базового правила 508 на фиг. 5. Проверки текущего правила 601 и действия текущего правила 603 соответствуют значениям в регистре текущего правила 503 на фиг. 5.In FIG. 6 shows checks of the
Модуль объединения правил применяет действия базового правила к проверкам текущего правила 601 в обратном порядке в соответствующем модуле 604, что позволяет получить набор проверок 606, описывающих множество пакетов, которые теоретически могли бы дойти до текущего правила по тому пути, из которого было образовано базовое правило. Полученный набор проверок 606 затем объединяется с проверками базового правила 600 в соответствующем модуле 607 для того, чтобы получить результирующий набор проверок 608.The rule combining module applies the actions of the basic rule to the checks of the
Для вычисления итогового набора действий 609 достаточно объединить набор действий базового и текущего правил, и, по возможности, его оптимизировать. Эта работа происходит в соответствующем модуле 605.To calculate the final set of
Пример полей пакета и соответствующего набора проверок и действий.An example of package fields and a corresponding set of checks and actions.
Без ограничения общности будем считать, что пакет имеет только одно поле (таблица 1). На практике, полями пакета являются такие атрибуты, как адреса сетевого уровня отправителя и получателя, номер протокола транспортного уровня, адреса транспортного уровня (порты) отправителя и получателя, и другие атрибуты.Without loss of generality, we assume that a packet has only one field (table 1). In practice, the packet fields are attributes such as the network layer addresses of the sender and receiver, the protocol number of the transport layer, the addresses of the transport layer (ports) of the sender and receiver, and other attributes.
В таблице 2 представлен вариант списка проверок, которые используются в дальнейших примерах реализации изобретения. На практике в качестве проверок могут использоваться более сложные логические выражения, содержащие арифметические, битовые и другие операции, выполняемые над несколькими полями пакета. Table 2 presents a variant of the list of checks that are used in further examples of the invention. In practice, more complex logical expressions containing arithmetic, bit, and other operations performed on several fields of a packet can be used as checks.
В таблице 3 представлен вариант списка действий, которые используются в дальнейших примерах реализации изобретения. На практике в качестве действий могут использоваться более сложные операции, например, инициализация поля пакета случайным числом.Table 3 presents a variant of the list of actions that are used in further examples of the invention. In practice, more complex operations can be used as actions, for example, initializing a packet field with a random number.
Рассмотрим варианты осуществления заявленного изобретения в соответствии с изложенными выше условиями. Построим примеры преобразования исходных произвольных правил в эквивалентные им наборы примитивных терминальных правил. Примеры демонстрируют принципы, на которых основана работа преобразователя для реализации способа.Consider embodiments of the claimed invention in accordance with the above conditions. Let us construct examples of the transformation of initial arbitrary rules into sets of primitive terminal rules equivalent to them. The examples demonstrate the principles on which the operation of the converter for implementing the method is based.
Пример 1 (таблицы 4 и 5) - набор исходных правил содержит одно нетерминальное правило (с действием LOG).Example 1 (tables 4 and 5) - a set of source rules contains one nonterminal rule (with the LOG action).
Нетрудно заметить, что правило №1 из таблицы 4 было преобразовано в правила №1 и 2 в таблице 5. При этом правило №1 из таблицы 5 является комбинацией правил №1 и 2 из таблицы 4, а правило №2 из таблицы 5 является комбинацией правил №1 и 3 из таблицы 5.It is easy to see that rule No. 1 from table 4 was converted into rules No. 1 and 2 in table 5. Moreover, rule No. 1 from table 5 is a combination of rules No. 1 and 2 from table 4, and rule No. 2 from table 5 is a combination rules No. 1 and 3 from table 5.
Пример 2 (таблицы 6 и 7) - набор исходных правил содержит одно нетерминальное правило, изменяющее порядок применения правил к пакету (с действием JUMP), и одно нетерминальное правило, изменяющее значение поля пакета (с действием MARK=MARK+X). Вместе эти правила образуют управляющую конструкцию, называемую в высокоуровневых языках программирования циклом. Example 2 (tables 6 and 7) - a set of source rules contains one nonterminal rule that changes the order of applying the rules to a package (with the JUMP action), and one nonterminal rule that changes the value of the package field (with the action MARK = MARK + X). Together, these rules form a control construct called a loop in high-level programming languages.
Условием выхода из цикла является значение метки меньшее, чем 100. При этом каждую итерацию цикла метка увеличивается на 50. Поэтому пакет не может провести в цикле более двух итераций.The condition for exiting the loop is a label value less than 100. In this case, each iteration of the loop, the label is increased by 50. Therefore, a packet cannot perform more than two iterations in a loop.
Таблица 7 - Эквивалентный набор примитивных терминальных правилTable 7 - An equivalent set of primitive terminal rules
Анализируя пути прохождения пакетов можно выяснить, что, например, пакет с меткой 11 имеет путь, состоящий из правил №1, 2, 1, 2, 3 из таблицы 6. Преобразование этого пути в примитивное терминальное правило дает правило №1 из таблицы 7.Analyzing the paths of the packets, it can be found that, for example, a packet with label 11 has a path consisting of rules No. 1, 2, 1, 2, 3 from table 6. Converting this path to a primitive terminal rule gives rule No. 1 from table 7.
Пример 3 (таблицы 8 и 9) - исходный набор правил содержит непримитивное нетерминальное правило (с проверкой MARK % X=Y и действием LOG). Example 3 (tables 8 and 9) - the initial set of rules contains a non-primitive nonterminal rule (with the MARK% X = Y check and the LOG action).
Поскольку метка может принимать значения только из диапазона от 0 до 255, очевидно, что дать число 5 в результате деления на 100 могут только три метки, а именно метки со значениями 5, 105 и 205. Соответственно, правило №1 из таблицы 8 преобразуется в три правила №1, 2, 3 из таблицы 9.Since the label can take values only from the range from 0 to 255, it is obvious that only three labels can give the number 5 as a result of dividing by 100, namely the labels with the
Таким образом, на основании вышеизложенного для реализации способа организации работы компонентов сетевого оборудования для обработки сетевых пакетов в данном техническом решении предлагаются следующие 4 варианта осуществления изобретения.Thus, based on the foregoing, for implementing the method of organizing the operation of network equipment components for processing network packets, the following 4 embodiments of the invention are proposed in this technical solution.
Основной вариант осуществления заявленного изобретения использует отдельный аппаратный компонент - аппаратный ускоритель, выполняющий функции преобразования, хранения и поиска правил (Вариант 1). Аппаратный компонент может быть реализован программным образом.The main embodiment of the claimed invention uses a separate hardware component - a hardware accelerator that performs the functions of conversion, storage and search of rules (Option 1). The hardware component may be implemented in software.
Эмуляция аппаратного компонента, с одной стороны, сводит к минимуму затраты на внедрение заявленного изобретения в существующее сетевое оборудование, но, с другой стороны, программная реализация имеет более низкую производительность по сравнению с аппаратной. В качестве компромисса может использоваться одно из нижеследующих вариантов осуществления изобретения, который предполагает реализацию части функционала аппаратным образом, а оставшейся части - программным образом.Emulation of a hardware component, on the one hand, minimizes the cost of introducing the claimed invention into existing network equipment, but, on the other hand, the software implementation has lower performance than hardware. As a compromise, one of the following embodiments of the invention can be used, which involves the implementation of part of the functionality in hardware, and the remaining part in software.
Схема на фиг. 7 иллюстрирует способ, для реализации которого используется полностью аппаратное решение, выполняющее функции преобразования, хранения и поиска правил (Вариант 1).The circuit of FIG. 7 illustrates a method for the implementation of which a fully hardware solution is used that performs the functions of transforming, storing and searching for rules (Option 1).
Вариант осуществления предполагает наличие дополнительного подключаемого компонента - аппаратного ускорителя 703, который берет на себя часть задач, связанных с принятием решений о дальнейших действиях, применяемых к сетевому пакету 709, тем самым снимая нагрузку с других компонентов системы, таких как центральный процессор 705, оперативная память 704, системные шины и так далее, в частности, аппаратный ускоритель 703 берет на себя задачу по преобразованию набора исходных правил 706 в набор примитивных терминальных правил, задачу построения индекса на основе преобразованных правил, задачу хранения преобразованных правил и индекса правил, задачу обработки запросов, поступающих от процессора 705, по поиску правил, под которые подходит заданный сетевой пакет 709, принятый из сетевого адаптера 702.An embodiment involves the presence of an additional plug-in component -
- Вариант осуществления предполагает наличие предварительного подготовительного этапа 700 работы оборудования. Этот этап заключается в преобразовании правил администратора к тому виду, который наилучшим образом подходит для обработки сетевых пакетов 709, поступивших на сетевую плату 702. Во время предварительного этапа 700 работы сетевого оборудования центральный процессор 705 инициирует DMA-пересылку исходных правил 706 из оперативной памяти 704 в аппаратный ускоритель 703. Аппаратный ускоритель 703 преобразует эти правила к примитивной терминальной форме и строит на их основе индекс. Блок-схема устройства для реализации способа приведена на фиг. 4. По завершении этого процесса аппаратный ускоритель 703 уведомляет центральный процессор 705 посредством аппаратного прерывания о своей готовности к обработке запросов.- The implementation option requires a preliminary
- Вариант осуществления предполагает, что подготовительный этап 700 выполняется заблаговременно, до начала основного этапа 701 работы оборудования. Это означает, что сетевое оборудование не может приступить к обработке сетевых пакетов 709 в соответствии с заданным набором правил до тех пор, пока аппаратный ускоритель 703 не выполнит необходимые подготовительные действия и не сообщит об этом центральному процессору 705. Такая задержка необходима, так как именно за счет выполнения подготовительного этапа 700 сетевое оборудование способно впоследствии на основном этапе 701 работы значительно быстрее обрабатывать сетевые пакеты.- The implementation option assumes that the
- Вариант осуществления предполагает, что поиск правил, под которые подходит сетевой пакет 709, осуществляется в аппаратном ускорителе 703. Для этого центральный процессор 705 формирует и отправляет запрос на поиск правил для аппаратного ускорителя 703. Запрос состоит только из набора полей 707 обрабатываемых пакетов 709, которые встречаются в наборах проверок исходных правил. Аппаратный ускоритель 703 выполняет поиск правил, под которые подходит сетевой пакет 709, используя полученные от центрального процессора 705 наборы полей 707 и индекс правил, построенный на подготовительном этапе 700 работы оборудования.- The embodiment assumes that the search for the rules for which the
- Вариант осуществления предполагает, что во время основного этапа 701 работы оборудования из аппаратного ускорителя 703 в центральный процессор 705 передаются наборы действий 708, ассоциированные с найденными примитивными терминальными правилами. Поскольку набор действий 708 терминального примитивного правила содержит в себе все действия исходных правил из пути пакета 709, то центральный процессор 705 может сразу же обработать сетевой пакет 709, не обращаясь к другим компонентам системы, получая при этом обработанный сетевой пакет 710, который может быть передан обратно в сеть с помощью сетевого адаптера 702.- The implementation option assumes that during the
- Вариант осуществления предполагает, что оперативная память 704 используется процессором 705 для хранения правил только на предварительном этапе 700 работы оборудования. Во время предварительного этапа 700 хранение правил 706 в оперативной памяти 704 необходимо для организации их DMA-пересылки в аппаратный ускоритель 703. Во время основного этапа 701 работы сетевого оборудования хранение правил 706 в оперативной памяти 704 не требуется, поскольку процессор 705 получает всю необходимую информацию для обработки сетевых пакетов 709 непосредственно от аппаратного ускорителя 703.- The implementation option assumes that the
Таким образом, повышение эффективности сетевого оборудования по обработке сетевых пакетов в соответствии с заданной конфигурацией достигается за счет построенного на подготовительном этапе 700 индекса правил. Индекс правил является более удобной формой представления терминальных правил для более эффективного поиска, время поиска в индексе правил ограничено сверху относительно небольшим фиксированным временем. Увеличение пропускной способности сетевого оборудования происходит за счет того, что время поиска в построенном индексе не зависит от количества правил в конфигурации сетевого оборудования. Учитываются только инспектируемые поля сетевого пакета, число которых является константой на всем протяжении работы сетевого оборудования.Thus, increasing the efficiency of network equipment for processing network packets in accordance with a given configuration is achieved due to the rule index constructed at the
Схема на фиг. 8 иллюстрирует способ, для реализации которого используется аппаратное решение, выполняющее функции преобразования и поиска правил, с хранением исходных и примитивных терминальных правил в оперативной памяти (Вариант 2).The circuit of FIG. 8 illustrates a method for the implementation of which a hardware solution is used that performs the functions of transforming and searching for rules, storing the source and primitive terminal rules in RAM (Option 2).
Вариант осуществления предполагает наличие дополнительного подключаемого компонента - аппаратного ускорителя 803. Аппаратный ускоритель 803 берет на себя часть задач, связанных с обработкой сетевых пакетов 811, тем самым снимая нагрузку с других компонентов системы, таких как центральный процессор 805, оперативная память 804, системные шины и так далее. В частности, аппаратный ускоритель 803 берет на себя задачу по преобразованию набора исходных правил 806 в набор примитивных терминальных правил 807, задачу построения индекса на основе преобразованных правил, задачу хранения индекса правил, задачу обработки запросов, поступающих от процессора 805, по поиску правил, под которые подходит заданный сетевой пакет 811.An embodiment involves the presence of an additional plug-in component -
- Вариант осуществления предполагает наличие предварительного подготовительного этапа 800 работы оборудования. Этот этап заключается в преобразовании правил администратора к тому виду, который наилучшим образом подходит для обработки сетевых пакетов 811, поступивших на сетевую плату 802. Во время подготовительного этапа 800 работы сетевого оборудования центральный процессор 805 инициирует DMA-пересылку исходных правил 806 из оперативной памяти 804 в аппаратный ускоритель 803. Аппаратный ускоритель 803 преобразует эти правила 806 к примитивной терминальной форме и строит на их основе индекс.По завершении этого процесса аппаратный ускоритель 803 уведомляет центральный процессор 805 посредством аппаратного прерывания о своей готовности к обработке запросов. Центральный процессор 805 инициирует обратную DMA-пересылку уже преобразованных к примитивной терминальной форме правил 807 из аппаратного ускорителя 803 в оперативную память 804.- The implementation option requires a preliminary
- Вариант осуществления предполагает, что подготовительный этап 800 выполняется заблаговременно, до начала основного этапа 801 работы оборудования. Это означает, что сетевое оборудование не может приступить к обработке сетевых пакетов 811 в соответствии с заданным набором правил до тех пор, пока аппаратный ускоритель 803 не выполнит необходимые подготовительные действия и не сообщит об этом центральному процессору 805. Такая задержка необходима, так как именно за счет выполнения подготовительного этапа 800 сетевое оборудование способно впоследствии на основном этапе 801 работы значительно быстрее обрабатывать сетевые пакеты 811.- The implementation option assumes that the
- Вариант осуществления предполагает, что поиск правил, под которые подходит сетевой пакет 811, осуществляется в аппаратном ускорителе 803. Для этого центральный процессор 805 формирует запрос на поиск правил для аппаратного ускорителя 803. Запрос состоит только из набора полей 808 обрабатываемых пакетов 811, которые встречаются в наборах проверок исходных правил 806. Аппаратный ускоритель 803 выполняет поиск правил, под которые подходит сетевой пакет 811, используя полученные наборы полей 808 и индекс правил, построенный на подготовительном этапе 800 работы оборудования.- The embodiment assumes that the search for the rules for which the
- Вариант осуществления предполагает, что во время основного этапа 801 работы оборудования из аппаратного ускорителя 803 в центральный процессор 805 передаются только номера 809 примитивных терминальных правил, под которые подошли обрабатываемые пакеты 811. Используя эти номера правил 809, центральный процессор 805 вычисляет позиции наборов действий 810, ассоциированных с найденными примитивными терминальными правилами в оперативной памяти 804 и запрашивает их. Получив наборы действий 810, центральный процессор 805 применяет их к сетевым пакетам 811, получая при этом обработанные сетевые пакеты 812, которые затем отправляются в сеть сетевым адаптером 802.- The embodiment assumes that during the
- Вариант осуществления предполагает, что оперативная память 804 используется процессором 805 для хранения как исходных 806, так и примитивных терминальных правил 807. Хранение правил в оперативной памяти 804 позволяет упростить конструкцию аппаратного ускорителя 803, однако требует дополнительного обращения, связанного с передачей наборов действий 810 на каждый сетевой пакет 811 к оперативной памяти 804 со стороны центрального процессора 805 во время основного этапа работы 801.- The embodiment assumes that the
Таким образом, повышение эффективности сетевого оборудования по обработке сетевых пакетов в соответствии с заданной конфигурацией достигается за счет построенного на подготовительном этапе 800 индекса правил. Индекс правил является более удобной формой представления терминальных правил для более эффективного поиска, время поиска в индексе правил ограничено сверху относительно небольшим фиксированным временем. Увеличение пропускной способности сетевого оборудования происходит за счет того, что время поиска в построенном индексе не зависит от количества правил в конфигурации сетевого оборудования. Учитываются только инспектируемые поля сетевого пакета, число которых является константой на всем протяжении работы сетевого оборудования.Thus, increasing the efficiency of network equipment for processing network packets in accordance with a given configuration is achieved due to the rule index constructed at the
Схема на фиг. 9 иллюстрирует способ, для реализации которого используется аппаратное решение, выполняющее функции только преобразования правил (Вариант 3).The circuit of FIG. 9 illustrates a method for the implementation of which a hardware solution is used that performs the functions of only rule translation (Option 3).
- Вариант осуществления предполагает наличие дополнительного подключаемого компонента - аппаратного ускорителя 903. Аппаратный ускоритель 903 берет на себя часть задач, связанных с обработкой сетевых пакетов 906, тем самым снимая нагрузку с других компонентов системы, таких как центральный процессор 905, оперативная память 904, системные шины и так далее. В частности, аппаратный ускоритель 903 берет на себя задачу по преобразованию набора исходных правил 907 в набор примитивных терминальных правил 908.- The implementation option involves the presence of an additional plug-in component -
- Вариант осуществления предполагает наличие предварительного подготовительного этапа 900 работы оборудования. Этот этап заключается в преобразовании правил администратора к тому виду, который наилучшим образом подходит для обработки сетевых пакетов 906. Во время предварительного подготовительного этапа 900 работы сетевого оборудования центральный процессор 905 инициирует DMA - пересылку исходных правил 907 из оперативной памяти 904 в аппаратный ускоритель 903. Аппаратный ускоритель 903 преобразует эти правила к примитивной терминальной форме 908 и уведомляет центральный процессор 905 посредством аппаратного прерывания об этом. Центральный процессор 905 инициирует обратную DMA-пересылку уже преобразованных правил 908 из аппаратного ускорителя 903 в оперативную память 904. Затем центральный процессор 905 строит в оперативной памяти 904 индекс 909 терминальных примитивных правил 908.- The implementation option requires a preliminary
- Вариант осуществления предполагает, что подготовительный этап 900 выполняется заблаговременно, до начала основного этапа 901 работы оборудования. Это означает, что сетевое оборудование не может приступить к обработке сетевых пакетов 906 в соответствии с заданным набором правил 907 до тех пор, пока аппаратный ускоритель 903 не выполнит необходимые подготовительные действия и не сообщит об этом центральному процессору 905. Такая задержка необходима, так как именно за счет выполнения подготовительного этапа 900 сетевое оборудование способно впоследствии на основном этапе 901 работы значительно быстрее обрабатывать сетевые пакеты 906.- The implementation option assumes that the
- Вариант осуществления предполагает, что поиск правил, под которые подходит сетевой пакет 906, осуществляется путем взаимодействия процессора 905 и оперативной памяти 904. Для этого центральный процессор 905 формирует набор полей 910 обрабатываемых пакетов 906 и использует их в качестве ключа для индекса правил 909, построенного на подготовительном этапе 900 работы оборудования и хранящийся в оперативной памяти 904.- The embodiment assumes that the search for the rules for which the
- Вариант осуществления предполагает, что во время основного этапа 901 работы оборудования между аппаратным ускорителем 903 и оперативной памятью 904 передача данных отсутствует. Поскольку индекс правил 909 хранится в оперативной памяти 904, то номера найденных правил 911 центральный процессор 905 получает также из оперативной памяти 904. Используя эти номера правил 911, центральный процессор 905 вычисляет позиции наборов действий 912, ассоциированных с найденными примитивными терминальными правилами 908 в оперативной памяти 904 и запрашивает их. Получив наборы действий 912, центральный процессор 905 применяет их к сетевым пакетам 906, получая при этом обработанные сетевые пакеты 913, которые затем отправляются в сеть сетевым адаптером 902.- The implementation option assumes that during the
- Вариант осуществления предполагает, что оперативная память 904 используется процессором 905 для хранения исходных правил 907, преобразованных правил 908 и для хранения индекса правил 909. Хранение правил в оперативной памяти 904 позволяет упростить конструкцию аппаратного ускорителя 903, однако требует нескольких дополнительных обращений на каждый сетевой пакет 906 к оперативной памяти 904 со стороны центрального процессора 905 во время основного этапа работы 901.- The embodiment assumes that the
Таким образом, повышение эффективности сетевого оборудования по обработке сетевых пакетов в соответствии с заданной конфигурацией достигается за счет построенного на подготовительном этапе 900 индекса правил 909. Индекс правил 909 является более удобной формой представления терминальных правил для более эффективного поиска, время поиска в индексе правил ограничено сверху относительно небольшим фиксированным временем. Увеличение пропускной способности сетевого оборудования происходит за счет того, что время поиска в построенном индексе не зависит от количества правил в конфигурации сетевого оборудования. Учитываются только инспектируемые поля сетевого пакета, число которых является константой на всем протяжении работы сетевого оборудования.Thus, an increase in the efficiency of network equipment for processing network packets in accordance with a given configuration is achieved due to the
Схема на фиг. 10 иллюстрирует способ, в котором используется полностью программное решение (Вариант 4).The circuit of FIG. 10 illustrates a method in which a fully software solution is used (Option 4).
Вариант осуществления предполагает снижение количества дополнительных подключаемых аппаратных компонентов.An embodiment involves reducing the number of additional plug-in hardware components.
- Вариант осуществления предполагает наличие предварительного подготовительного этапа 1000 работы оборудования. Этот этап заключается в преобразовании правил администратора к тому виду, который наилучшим образом подходит для обработки сетевых пакетов 1005 сетевым адаптером 1002. Во время предварительного подготовительного этапа 1000 работы сетевого оборудования центральный процессор 1004 преобразует исходные правила 1006 к примитивной терминальной форме и строит в оперативной памяти 1003 индекс 1008 терминальных примитивных правил 1007.- An implementation option involves the presence of a preliminary
- Вариант осуществления предполагает, что подготовительный этап 1000 выполняется заблаговременно, до начала основного этапа 1001 работы оборудования. Это означает, что сетевое оборудование не может приступить к обработке сетевых пакетов 1005 в соответствии с заданным набором правил 1006 до тех пор, пока центральный процессор 1004 не выполнит необходимые подготовительные действия. Такая задержка необходима, так как именно за счет выполнения подготовительного этапа 1000 сетевое оборудование способно впоследствии на основном этапе 1001 работы значительно быстрее обрабатывать сетевые пакеты 1005.- The implementation option assumes that the
- Вариант осуществления предполагает, что поиск правил, под которые подходит сетевой пакет 1005, осуществляется путем взаимодействия процессора 1004 и оперативной памяти 1003. Для этого центральный процессор 1004 формирует набор полей 1009 обрабатываемых пакетов и использует их в качестве ключа для индекса правил 1008, построенный на подготовительном этапе 1000 работы оборудования и хранящийся в оперативной памяти 1003.- The embodiment assumes that the search for the rules for which the
- Вариант осуществления предполагает, что во время основного этапа 1001 работы оборудования передача данных осуществляется только между центральным процессором 1004 и оперативной памятью 1003. Поскольку индекс правил 1008 хранится в оперативной памяти 1003, то номера найденных правил 1010 центральный процессор 1004 получает также из оперативной памяти 1003. Используя эти номера правил 1010, центральный процессор 1004 вычисляет позиции наборов действий 1011, ассоциированных с найденными примитивными терминальными правилами 1007 в оперативной памяти 1003 и запрашивает их. Получив наборы действий 1011, центральный процессор 1004 применяет их к сетевым пакетам 1005, получая при этом обработанные сетевые пакеты 1012, которые затем отправляются в сеть сетевым адаптером 1002.- The embodiment assumes that during the
- Вариант осуществления предполагает, что оперативная память 1003 используется процессором 1004 для хранения исходных правил 1006, преобразованных правил 1007 и для хранения индекса правил 1008. Хранение правил 1006 и 1007 и индекса правил 1008 в оперативной памяти 1003 и преобразование исходных правил 1006 к примитивной терминальной форме с помощью центрального процессора 1004 позволяет полностью убрать необходимость в аппаратном ускорителе, однако увеличивает время, затрачиваемое на выполнение подготовительного этапа 1000 работы оборудования, и требует нескольких дополнительных обращений на каждый сетевой пакет 1005 к оперативной памяти 1003 со стороны центрального процессора 1004 во время основного этапа работы 1001.- An embodiment assumes that the
Таким образом, повышение эффективности сетевого оборудования по обработке сетевых пакетов в соответствии с заданной конфигурацией достигается за счет построенного на подготовительном этапе 1000 индекса правил 1008. Индекс правил 1008 является более удобной формой представления терминальных правил для более эффективного поиска, время поиска в индексе правил ограничено сверху относительно небольшим фиксированным временем. Увеличение пропускной способности сетевого оборудования происходит за счет того, что время поиска в построенном индексе не зависит от количества правил в конфигурации сетевого оборудования. Учитываются только инспектируемые поля сетевого пакета, число которых является константой на всем протяжении работы сетевого оборудования.Thus, an increase in the efficiency of network equipment for processing network packets in accordance with a given configuration is achieved due to the
Таким образом, с помощью данного изобретения обеспечивается решение задачи, которая заключается в разработке способа взаимодействия процессора с другими компонентами системы, приводящего к увеличению количества сетевых пакетов, которые возможно передать из одного сегмента в сети в другой за единицу времени, соблюдая при этом политику безопасности, установленную администратором сети.Thus, with the help of this invention, it is possible to solve the problem, which consists in developing a method for the processor to interact with other system components, leading to an increase in the number of network packets that can be transferred from one segment of the network to another in a unit of time, while observing the security policy, set by the network administrator.
При этом способ не требует использования новых инструментов настройки от администратора сетевого оборудования и не требует замены и модификации существующих компонентов системы.Moreover, the method does not require the use of new configuration tools from the network equipment administrator and does not require replacement or modification of existing system components.
Технический результат достигается за счет реализации способа организации взаимодействия компонентов сетевого оборудования, который для заданного сетевого пакета исключает загрузку в процессор тех правил, под которые этот пакет не может подойти, и обеспечивает загрузку только тех правил, под которые этот пакет подходит, сводя к минимуму количество пересылок данных между центральным процессором и другими компонентами системы. То есть обеспечивается существенное увеличение пропускной способности сетевого оборудования с заданной конфигурацией, которое находится на границе сегментов сети.The technical result is achieved through the implementation of a method for organizing the interaction of network equipment components, which for a given network packet eliminates loading into the processor those rules that this package cannot match, and ensures that only the rules that this package is suitable for are downloaded, minimizing the number of data transfers between the central processor and other components of the system. That is, a significant increase in the throughput of network equipment with a given configuration, which is located at the boundary of network segments, is provided.
Источники информацииSources of information
1. Madhi D., Ramasamy К., 2007, "Network routing algorithms, protocols, and architectures", Morgan Kaufmann, USA, стр. 1-957.1. Madhi D., Ramasamy K., 2007, "Network routing algorithms, protocols, and architectures", Morgan Kaufmann, USA, pp. 1-957.
2. Varghese G., 2005, "Network Algorithmics An Interdisciplinary Approach to Designing Fast Networked Devices ", Morgan Kaufmann, USA. стр. 1-491.2. Varghese G., 2005, "Network Algorithmics An Interdisciplinary Approach to Designing Fast Networked Devices", Morgan Kaufmann, USA. p. 1-491.
3. Патент RU 2 589 340 C2, МПК H04L 12/70, 10.07.2016. - Сетевая система и способ получения данных тега VLAN.3.
4. Патент RU 2 628 476 С1, МПК H04L 12/70, 17.08.2017. - Коммутирующее устройство, контроллер, способ конфигурирования коммутирующего устройства и способ и система для обработки пакета.4.
5. Патент RU 2 609 086 С2, МПК H04L 12/70, 30.01.2017. - Сетевое устройство пересылки пакетов (варианты), способ настройки сетевого устройства пересылки пакетов (варианты) и способ пересылки пакета.5.
6. Патент RU 2 554 543 С2, МПК H04L 12/00, H04L 12/70, 27.06.2015. - Блок связи, система связи, способ связи и носитель записи.6.
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018143014A RU2710302C1 (en) | 2018-12-05 | 2018-12-05 | Method of organizing operation of network equipment components for processing network packets (4 versions) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018143014A RU2710302C1 (en) | 2018-12-05 | 2018-12-05 | Method of organizing operation of network equipment components for processing network packets (4 versions) |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2710302C1 true RU2710302C1 (en) | 2019-12-25 |
Family
ID=69023052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018143014A RU2710302C1 (en) | 2018-12-05 | 2018-12-05 | Method of organizing operation of network equipment components for processing network packets (4 versions) |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2710302C1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050201273A1 (en) * | 2004-03-09 | 2005-09-15 | Nec Corporation | Label-switched path network with alternate routing control |
CN103428771A (en) * | 2013-09-05 | 2013-12-04 | 迈普通信技术股份有限公司 | Communication method, software defined network SDN switch and communication system |
RU2602333C2 (en) * | 2011-03-04 | 2016-11-20 | Нек Корпорейшн | Network system, packet processing method and storage medium |
RU2609086C2 (en) * | 2014-05-07 | 2017-01-30 | Общество С Ограниченной Ответственностью "Яндекс" | Network device for forwarding packets (versions), method of setting up network device for forwarding packets (versions) and method for forwarding packet |
RU2668394C2 (en) * | 2014-06-25 | 2018-09-28 | ЗетТиИ Корпорейшн | Packet collection method and system, network device and network management centre |
-
2018
- 2018-12-05 RU RU2018143014A patent/RU2710302C1/en active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050201273A1 (en) * | 2004-03-09 | 2005-09-15 | Nec Corporation | Label-switched path network with alternate routing control |
RU2602333C2 (en) * | 2011-03-04 | 2016-11-20 | Нек Корпорейшн | Network system, packet processing method and storage medium |
CN103428771A (en) * | 2013-09-05 | 2013-12-04 | 迈普通信技术股份有限公司 | Communication method, software defined network SDN switch and communication system |
RU2609086C2 (en) * | 2014-05-07 | 2017-01-30 | Общество С Ограниченной Ответственностью "Яндекс" | Network device for forwarding packets (versions), method of setting up network device for forwarding packets (versions) and method for forwarding packet |
RU2668394C2 (en) * | 2014-06-25 | 2018-09-28 | ЗетТиИ Корпорейшн | Packet collection method and system, network device and network management centre |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9397901B2 (en) | Methods, systems, and computer readable media for classifying application traffic received at a network traffic emulation device that emulates multiple application servers | |
US7583673B2 (en) | Network processor for forwarding packets in an IP network | |
US20100050177A1 (en) | Method and apparatus for content based searching | |
US9864606B2 (en) | Methods for configurable hardware logic device reloading and devices thereof | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
US7937495B2 (en) | System and method for modifying data transferred from a source to a destination | |
US11182150B2 (en) | Zero packet loss upgrade of an IO device | |
Gao et al. | OVS-CAB: Efficient rule-caching for Open vSwitch hardware offloading | |
CN116599892B (en) | Server system, routing method, routing device, electronic equipment and storage medium | |
US20220166718A1 (en) | Systems and methods to prevent packet reordering when establishing a flow entry | |
RU2710302C1 (en) | Method of organizing operation of network equipment components for processing network packets (4 versions) | |
US10339091B2 (en) | Packet data processing method, apparatus, and system | |
US9736080B2 (en) | Determination method, device and storage medium | |
CN113347100B (en) | Data stream transmission method and device, computer equipment and storage medium | |
EP3136251B1 (en) | Flit transmission method and device of network on chip | |
JP2020524445A (en) | Parallel information processing on multi-core computing platform | |
US20160364244A1 (en) | Method or Apparatus for Flexible Firmware Image Management in Microserver | |
US10484304B2 (en) | Determining actions to be immediately performed on a network packet with an application specific integrated circuit | |
CN111240845A (en) | Data processing method, device and storage medium | |
CN117714398B (en) | Data transmission system, method, electronic equipment and storage medium | |
JPH09224066A (en) | Communication protocol parallel processor | |
Pacífico et al. | eBPFlow: A Hardware/Software Platform to Seamlessly Offload Network Functions Leveraging eBPF | |
US20230185624A1 (en) | Adaptive framework to manage workload execution by computing device including one or more accelerators | |
US20230176932A1 (en) | Processor, information processing apparatus, and information processing method | |
US20230043461A1 (en) | Packet processing configurations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
QB4A | Licence on use of patent |
Free format text: LICENCE FORMERLY AGREED ON 20200723 Effective date: 20200723 |
|
QZ41 | Official registration of changes to a registered agreement (patent) |
Free format text: LICENCE FORMERLY AGREED ON 20200723 Effective date: 20210830 |