RU2807656C1 - Balancing method while maintaining integrity of data flows - Google Patents

Balancing method while maintaining integrity of data flows Download PDF

Info

Publication number
RU2807656C1
RU2807656C1 RU2023122633A RU2023122633A RU2807656C1 RU 2807656 C1 RU2807656 C1 RU 2807656C1 RU 2023122633 A RU2023122633 A RU 2023122633A RU 2023122633 A RU2023122633 A RU 2023122633A RU 2807656 C1 RU2807656 C1 RU 2807656C1
Authority
RU
Russia
Prior art keywords
session
packet
balancing
output
output interface
Prior art date
Application number
RU2023122633A
Other languages
Russian (ru)
Inventor
Павел Иванович Попенко
Original Assignee
Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Filing date
Publication date
Application filed by Акционерное общество "Научно-производственное предприятие "Цифровые решения" filed Critical Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Application granted granted Critical
Publication of RU2807656C1 publication Critical patent/RU2807656C1/en

Links

Images

Abstract

FIELD: computing systems.
SUBSTANCE: systems for analyzing data networks, namely methods for balancing while maintaining the integrity of data flows, taking into account the membership of TCP/UDP protocol sessions. The technical result is achieved by proposing a balancing method while preserving the integrity of data streams, in which the fields of packets are allocated in the form of a bit vector - descriptor, the body of the packet is stored in SRAM memory for the duration of processing, then a 5-tuple session hash is constructed from the generated vector of packet headers, which is supplied as an address to the DDR memory of the session store. The data received from memory is the saved session parameters, if it is noted that the session has already been encountered, then the output used the previous time is reused, and if the output interface for the session in the parameters received from the DDR memory of the session store is not defined or the session timeout has passed - a new output for the session is determined. At the same time, session parameters are recorded/updated in the DDR session storage. The output of the balancing table is the number of the output interface for the session, on which the packet body is retrieved from the packet buffer and issued to the selected output interface.
EFFECT: ensuring the functioning of traffic pre-processing devices with packet balancing without breaking sessions when balancing parameters change.
2 cl, 4 dwg

Description

Область техникиTechnical field

Изобретение относится к области построения систем анализа сетей передачи данных, а именно к способам высокоскоростного поиска и отслеживания TCP/UDP-сессий в высоконагруженных сетях, и может быть использовано в устройствах предварительной обработки для систем глубокого анализа сетевого трафика, поддерживающих стек протоколов ТСР/IP. Заявляемый способ направлен на обеспечение функций балансировки потоков данных сетевых пакетов с сохранением целостности потоков данных.The invention relates to the field of constructing systems for analyzing data networks, namely to methods for high-speed search and tracking of TCP/UDP sessions in high-load networks, and can be used in preprocessing devices for deep analysis systems of network traffic that support the TCP/IP protocol stack. The inventive method is aimed at providing functions for balancing data flows of network packets while maintaining the integrity of data flows.

Уровень техникиState of the art

Известен классический способ балансировки, в котором для каждого приходящего пакета строится битовый вектор - дескриптор с описанием полей 5-tuple. Полученный вектор сжимается методом хеширования до битового вектора выбранной размерности разрешающей способности балансировки N. Алгоритм балансировки обеспечивает сохранение целостности сессии -пакеты, принадлежащие одной и той же сессии, имеют одинаковый вектор 5-tuple и соответственно попадают на один и тот же выход/порт.There is a well-known classical balancing method, in which for each incoming packet a bit vector is built - a descriptor with a description of the 5-tuple fields. The resulting vector is compressed by hashing to a bit vector of the selected balancing resolution dimension N. The balancing algorithm ensures the preservation of session integrity - packets belonging to the same session have the same 5-tuple vector and, accordingly, end up on the same output/port.

Однако в случае добавления нового выхода к алгоритму балансировки, часть записей в таблице балансировки будет переписана на новый выход. Это приведет к тому, что установленные сессии, выход для которых переписан, будут прерваны. Аналогичная ситуация наблюдается при удалении выхода из балансировки, где сессии удаленных выходов будут перенаправлены на другие выходы/порты, что также приведет к разрыву сессии.However, if a new output is added to the balancing algorithm, some of the entries in the balancing table will be rewritten to the new output. This will cause established sessions whose output has been overwritten to be terminated. A similar situation is observed when removing an output from balancing, where sessions of remote outputs will be redirected to other outputs/ports, which will also lead to session termination.

Также из заявки US 20100149966 А1 опуб.2010.07.17 известен способ балансировки нагрузки между множеством хостов, который сохраняет привязку сеанса к данному хосту. Серверы пересылки генерируют функцию маршрутизации, которые учитывают доступность хоста и распределяют сеансовые пакеты в соответствии с такой функцией маршрутизации (например, хеш-функций). Сеанс распределяется на один и тот же хост для сохранения сходства сеансов. Когда доступность хоста изменяется, создается новая функция маршрутизации, так что любой новый сеанс маршрутизируется в соответствии с новой функцией маршрутизации, а существующие сеансы маршрутизируются в соответствии со старой функцией маршрутизации. Имея одинаковую информацию о состоянии/доступности хостов в системе, серверы пересылки независимо генерируют идентичные функции маршрутизации на основе предварительно согласованного статического протокола.Also from the application US 20100149966 A1 pub. 2010.07.17, a method of load balancing between multiple hosts is known, which preserves the binding of the session to a given host. Forwarders generate a routing function that takes host availability into account and distributes session packets according to that routing function (e.g., hash functions). The session is distributed to the same host to maintain session similarity. When a host's availability changes, a new routing function is created so that any new session is routed according to the new routing function, and existing sessions are routed according to the old routing function. Given the same information about the state/availability of hosts in the system, forwarders independently generate identical routing functions based on a pre-agreed static protocol.

Недостатком известных решений является разрыв сессии при балансировке пакетов в случае добавления нового выхода/порта или удаления уже используемого выхода/порта.The disadvantage of known solutions is that the session is broken when balancing packets in the case of adding a new output/port or deleting an already used output/port.

Техническим результатом предложенного изобретения является обеспечение функционирования устройств предварительной обработки трафика с обеспечением балансировки пакетов без разрыва сессий при изменении параметров балансировки.The technical result of the proposed invention is to ensure the functioning of traffic pre-processing devices with packet balancing without breaking sessions when balancing parameters change.

Поставленный технический результат достигается тем, что предложен способ балансировки с сохранением целостности потоков данных сетевых пакетов, заключающийся в том, что пакет после приема через входной интерфейс (101), передается в блок анализа пакета (102), где выполняется выделение из пакета необходимых полей пакетов - исходного IP-адреса, исходного порта, целевого IP-адреса, целевого порта и типа протокола, и формирование на их основе битового вектора - дескриптора, где тело пакета сохраняется в пакетном буфере на SRAM-памяти (103) до момента принятия решения о наборе действий, выполняемых над пакетом, а дескриптор передается в блок расчета hash 5-tuple сессии (104), где на основе упомянутых полей пакетов дескриптор сжимается методом хеширования до битового вектора выбранной размерности разрешающей способности балансировки N, где для каждого возможного из 2N значений сжатого вектора балансировки ставится в соответствие номер выходного интерфейса - таблицу балансировки размером 2N, где пакеты, принадлежащие одной и той же сессии, имеют одинаковый вектор hash 5-tuple и, соответственно, далее должны попасть на один и тот же выходной интерфейс.Hash 5-tuple сессии подается в качестве адреса в DDR-память (105) хранилища сессий, где данными, получаемыми из памяти, являются запомненные параметры сессии, если отмечено, что сессия уже встречалась, тогда переиспользуется выходной интерфейс, задействованный в предыдущий раз, а если выход для сессии в параметрах, полученных из DDR-памяти (105) хранилища сессий не определен или прошел таймаут сессии - происходит определение нового выхода для сессии, при этом рассчитанный блоком расчета hash 5-tuple сессии (104) длиной N бит подается в качестве адреса на пакетный буфер на SRAM-памяти (103) - таблицу балансировки, где выходом таблицы балансировки является номер выходного интерфейса (107), а тело пакета извлекается из пакетного буфера на SRAM-памяти (103) и блоком балансировки (106) выдается в выбранный выходной интерфейс (108).The stated technical result is achieved by the fact that a balancing method is proposed while preserving the integrity of network packet data flows, which consists in the fact that the packet, after being received through the input interface (101), is transferred to the packet analysis unit (102), where the necessary packet fields are extracted from the packet - source IP address, source port, destination IP address, destination port and protocol type, and the formation on their basis of a bit vector - descriptor, where the body of the packet is stored in a packet buffer in SRAM memory (103) until the decision is made to dial actions performed on the packet, and the descriptor is passed to the hash calculation block of the 5-tuple session (104), where, based on the mentioned packet fields, the descriptor is compressed by hashing to a bit vector of the selected balancing resolution dimension N, where for each possible of 2 N values the compressed balancing vector is mapped to the number of the output interface - a balancing table of size 2 N, where packets belonging to the same session have the same 5-tuple hash vector and, accordingly, must then go to the same output interface.Hash The 5-tuple session is supplied as an address to the DDR memory (105) of the session store, where the data received from the memory are the remembered session parameters, if it is noted that the session has already been encountered, then the output interface used the previous time is reused, and if the output for the session in the parameters received from the DDR memory (105) of the session store is not defined or the session timeout has passed - a new output for the session is determined, and the 5-tuple hash of the session (104) of length N bits calculated by the calculation block is supplied as an address to the packet buffer on SRAM memory (103) - a balancing table, where the output of the balancing table is the number of the output interface (107), and the body of the packet is extracted from the packet buffer on SRAM memory (103) and the balancing block (106) is issued to the selected output interface (108).

Проведенный анализ уровня техники позволяет определить, что предложенное техническое решение является «новым» и имеет «изобретательский уровень», а возможность его использования в промышленности определяет его промышленно применимым.The analysis of the level of technology allows us to determine that the proposed technical solution is “new” and has an “inventive step”, and the possibility of its use in industry determines its industrial applicability.

Эти и другие аспекты станут очевидными и будут объяснены со ссылками на чертеж и вариант осуществления, описанный в дальнейшем.These and other aspects will become apparent and will be explained with reference to the drawing and embodiment described hereinafter.

Изобретение поясняется следующими графическими материалами:The invention is illustrated by the following graphic materials:

Фиг. 1 - схема, иллюстрирующая известный способ балансировки.Fig. 1 is a diagram illustrating a known balancing method.

Фиг. 2 - схема, иллюстрирующая структуру дескриптора.Fig. 2 is a diagram illustrating the structure of a descriptor.

Фиг. 3 - схема, иллюстрирующая алгоритм - способ балансировки с сохранением целостности информационных сессий.Fig. 3 - diagram illustrating the algorithm - a method of balancing while maintaining the integrity of information sessions.

Фиг. 4 - схема, иллюстрирующая функциональные блоки, реализующие способ балансировки с сохранением целостности информационных сессий.Fig. 4 is a diagram illustrating functional blocks that implement a balancing method while maintaining the integrity of information sessions.

Осуществление изобретенияCarrying out the invention

Предложенный способ позволяет балансировать без разрыва сессий при изменении параметров балансировки.The proposed method allows balancing without interrupting sessions when balancing parameters change.

Сессия пакетов - набор пакетов, имеющих одинаковые адреса отправителя и получателя, порты отправителя и получателя и протокол (IP и TCP/UDP-заголовков, кода протокола L4). Формат IP-пакета подробно описан в спецификации RFC 791 «Internet Protocol DARPA Internet Program Protocol Specification)), сентябрь 1981. Протокол TCP описывается в спецификации RFC 793 «Transmission Control Protocol)), сентябрь 1980, протокол UDP описан в спецификации RFC 768 «User Datagram Protocol)), август 1980.Packet session - a set of packets that have the same source and recipient addresses, sender and recipient ports and protocol (IP and TCP/UDP headers, L4 protocol code). The IP packet format is described in detail in the specification RFC 791 "Internet Protocol DARPA Internet Program Protocol Specification"), September 1981. The TCP protocol is described in the specification RFC 793 "Transmission Control Protocol"), September 1980, the UDP protocol is described in the specification RFC 768 "User Datagram Protocol), August 1980.

Для достижения поставленного технического результата выполняются следующие этапы операций:To achieve the desired technical result, the following stages of operations are performed:

Прием пакета через входной интерфейс (101), после приема пакета выполняется анализ и выделение заголовков пакета. Для этого пакет передается в блок анализа пакета (102), в котором выполняется выделение необходимых полей пакетов, например, IP и TCP/UDP-заголовков (исходного IP-адреса, исходного порта, целевого IP-адреса, целевого порта и типа протокола), и формирование на их основе информационного блока - битового вектора (дескриптора), показанного на фиг.2. Информация включает в себя IP-адрес получателя (201), IP-адрес отправителя (202), порт получателя (203), порт отправителя (204), типа протокола (205). Тело пакета сохраняется в статической памяти с произвольным доступом (SRAM-памяти) – пакетный буфер на время обработки до момента принятия решения о наборе действий, выполняемых над пакетом.Receiving a packet through the input interface (101), after receiving the packet, the packet headers are analyzed and extracted. To do this, the packet is transmitted to the packet analysis block (102), in which the necessary fields of the packets are extracted, for example, IP and TCP/UDP headers (source IP address, source port, destination IP address, destination port and protocol type), and the formation on their basis of an information block - a bit vector (descriptor) shown in Fig.2. The information includes the recipient IP address (201), the sender IP address (202), the recipient port (203), the sender port (204), the protocol type (205). The body of the packet is stored in static random access memory (SRAM) - a packet buffer for the duration of processing until a decision is made on the set of actions to be performed on the packet.

Тело пакета сохраняется в пакетном буфере на SRAM-памяти (103) до момента принятия решения о наборе действий, выполняемых над пакетом. На основе информации о пакете и его заголовков формируется дескриптор пакета, показанный на фиг. 2. Из сформированного вектора заголовков пакета (дескриптор) блок расчета hash 5-tuple сессии (104) рассчитывает hash 5-tuple сессии, который подается в качестве адреса в DDR-память (105) хранилища сессий.The body of the packet is stored in a packet buffer in SRAM memory (103) until a decision is made on the set of actions to be performed on the packet. Based on the packet information and its headers, the packet descriptor shown in FIG. 2. From the generated vector of packet headers (descriptor), the 5-tuple session hash calculation block (104) calculates the 5-tuple session hash, which is supplied as an address to the DDR memory (105) of the session storage.

Дескриптор сжимается методом хеширования до битового вектора выбранной размерности разрешающей способности балансировки N, где для каждого возможного из 2N значений сжатого вектора балансировки ставится в соответствие номер выхода/порта-таблицу балансировки размером 2N, где пакеты, принадлежащие одной и той же сессии, имеют одинаковый вектор hash 5-tuple и, соответственно, далее должны попасть на один и тот же выходной интерфейс. Для этого блок расчета hash 5-tuple сессии (104) рассчитывает hash-сессии на основе полей дескриптора (IP-адресов получателя и отправителя, TCP/UDP-портов получателя и отправителя, кода протокола L4), где кортеж (tuple) состоит из исходного IP-адреса, исходного порта, целевого IP-адреса, целевого порта и типа протокола, как показано на фиг. 2. Кортеж из пяти параметров однозначно идентифицирует сеанс TCP/UDP-сессии. На основе пяти полей дескриптора рассчитывается hash-сумма, например, по алгоритму счетчика с аутентификацией Галуа (GCM) или выполнением побитовой логической операции «исключающее ИЛИ» (XOR) над соответствующими битами IP-адреса получателя (32 бит), IP-адреса отправителя (32 бит), порта получателя (16 бит), порта отправителя (16 бит), типа протокола (8 бит) и отправляет результаты операции побитового «исключающее ИЛИ» и генерирует hash-сумму, имеющую Y-биты, где Y является положительным целым числом. В алгоритме счетчика с аутентификацией Галуа (GCM) входные блоки вектора байт нумеруются последовательно, номер блока кодируется блочным алгоритмом. Выход функции шифрования используется в операции «исключающее ИЛИ» с открытым текстом для получения hash-суммы. Схема представляет собой потоковый шифр, поэтому использование уникального вектора байт гарантирует получение уникальной hash-суммы. Разрядность счетчика с аутентификацией Галуа (GCM) выбирается исходя из условия, чем больше разрядность, тем лучше равномерность распределения и, следовательно, выше идентичность балансировки потоков трафика.The descriptor is compressed by hashing to a bit vector of the selected balancing resolution dimension N, where for each possible of 2 N values of the compressed balancing vector, an output/port number is assigned to a balancing table of size 2 N, where packets belonging to the same session , have the same hash vector 5-tuple and, accordingly, must then go to the same output interface. To do this, the 5-tuple session hash calculation block (104) calculates hash sessions based on the descriptor fields (recipient and sender IP addresses, recipient and sender TCP/UDP ports, L4 protocol code), where the tuple consists of the original IP address, source port, destination IP address, destination port and protocol type as shown in FIG. 2. A tuple of five parameters uniquely identifies a TCP/UDP session. Based on the five fields of the descriptor, a hash sum is calculated, for example, using a Galois counter algorithm (GCM) or performing a bitwise logical XOR operation on the corresponding bits of the recipient IP address (32 bits), the sender IP address ( 32 bits), destination port (16 bits), source port (16 bits), protocol type (8 bits) and sends the results of a bitwise XOR operation and generates a hash sum having Y bits where Y is a positive integer . In the Galois counter algorithm (GCM), the input byte vector blocks are numbered sequentially, the block number is encoded by the block algorithm. The output of the encryption function is used to XOR the plaintext to obtain the hash sum. The scheme is a stream cipher, so using a unique vector of bytes guarantees a unique hash sum. The bit size of the Galois counter (GCM) is selected based on the condition that the larger the bit size, the better the distribution uniformity and, therefore, the higher the traffic flow balancing identity.

Одновременно с этим сформированные параметры сессии записываются в DDR-память (105). Данными, получаемыми из DDR-памяти, являются запомненные параметры сессии. Если отмечено, что сессия уже встречалась, тогда переиспользуется выход, задействованный в предыдущий раз. Если выход для сессии в параметрах, полученных из DDR-памяти (105), не определен или прошел таймаут сессии - происходит определение нового выхода для сессии. Таким образом, проверяется в ячейке SRAM-памяти сессий, адрес которой равен hash-сумме, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет hash-суммы, об уже принятом пакете с такой же hash-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора, если информация совпадает, то для пакета переиспользуется выход, задействованный в предыдущий раз.At the same time, the generated session parameters are written to DDR memory (105). The data received from DDR memory is the stored session parameters. If it is noted that the session has already been encountered, then the output used the previous time is reused. If the output for the session in the parameters received from the DDR memory (105) is not defined or the session timeout has passed, a new output for the session is determined. Thus, in the session SRAM memory cell, the address of which is equal to the hash-sum, the presence of information consisting of the packet header fields used to calculate the hash-sum is checked, about an already received packet with the same hash-sum, if the cell already contains there is information, then it is compared with the data from the descriptor; if the information matches, then the output used the previous time is reused for the packet.

В TCP-протоколе начало сессии определяется либо по флагу SYN начала сессии, либо, если флаг не установлен, по таймауту - если в течение времени «Limit_T» не было пакетов данной сессии - считается, что сессия новая. Когда сессия открыта, информация о ней записывается в память. Окончание сессии определяется флагом RST, FIN либо таймаутом «Limit_T». В UDP-протоколе не используется аналогичный флаг, поэтому решение принимается в случае, если в течение времени «Limit_T» выход/порт для сессии в параметрах, полученных из DDR-памяти (105), не определен или прошел таймаут сессии -происходит определение нового выхода/порта для сессии.In the TCP protocol, the beginning of a session is determined either by the SYN flag of the beginning of the session, or, if the flag is not set, by a timeout - if there were no packets for this session during the “Limit_T” time, the session is considered to be new. When a session is opened, information about it is written to memory. The end of the session is determined by the RST, FIN flag or the “Limit_T” timeout. The UDP protocol does not use a similar flag, so a decision is made if during the “Limit_T” time the output/port for the session in the parameters received from the DDR memory (105) is not defined or the session timeout has passed - a new output is determined /port for the session.

Проверяется временной интервал между пакетами сессии, и если он превышает порог таймаута «Limit_T» (например, более 30 секунд), то происходит определение нового выхода/порта для сессии. Для этого рассчитанный блоком расчета hash 5-tuple сессии (104) длиной N бит подается в качестве адреса на пакетный буфер - SRAM таблицу балансировки, где выходом таблицы балансировки является номер выходного интерфейса (107) для сессии. Блок балансировки (106) на основе hash 5-tuple сессии распределяет пакеты между выходными интерфейсами (107). Каждому интерфейсу соответствует фиксированный набор hash 5-tuple сессии. Идентичность балансировки обеспечивается за счет того, что все потоки одной сетевой сессии имеют одинаковую hash-сумму. Тело пакета извлекается из пакетного буфера на SRAM-памяти (103) и блоком балансировки (106) выдается в выбранный выходной интерфейс (107).The time interval between session packets is checked, and if it exceeds the “Limit_T” timeout threshold (for example, more than 30 seconds), then a new output/port is determined for the session. To do this, the 5-tuple session hash (104) of length N bits calculated by the calculation unit is supplied as an address to the packet buffer - SRAM balancing table, where the output of the balancing table is the number of the output interface (107) for the session. The balancing unit (106) based on the 5-tuple session hash distributes packets between output interfaces (107). Each interface corresponds to a fixed set of 5-tuple session hashes. Identical balancing is ensured by the fact that all flows of one network session have the same hash sum. The packet body is retrieved from the packet buffer on the SRAM memory (103) and issued by the balancing unit (106) to the selected output interface (107).

В предпочтительном варианте осуществления изобретения указанные логические блоки: блок анализа пакета, блок расчета hash 5-tuple сессии, блок балансировки реализованы на базе перепрограммируемой логической интегральной схемы (ПЛИС) или сверхбольшой интегральной схемы (СБИС). Блоки могут быть реализованы конечным автоматом и несколькими регистрами с соответствующей внутренней логикой и реализуются автоматически, например, из представленного XML-описания сетевого протокола, они управляются микрокодом, хранящимся во встроенной памяти. Специалисту очевидно, что вышеуказанные логические блоки, схемы/алгоритмы обработки могут быть выполнены с помощью элемента памяти, который записывает обрабатываемые данные и процесс обработки, в качестве которых могут применяться: процессор общего назначения, машиночитаемый носитель, конечный автомат или другое аппаратно-программируемое логическое устройство, транзисторная логика или любое их сочетание, чтобы выполнять описанные выше функции.In the preferred embodiment of the invention, the specified logical blocks: packet analysis block, 5-tuple session hash calculation block, balancing block are implemented on the basis of a reprogrammable logic integrated circuit (FPGA) or very large-scale integrated circuit (VLSI). The blocks can be implemented by a finite state machine and several registers with corresponding internal logic and are implemented automatically, for example, from the presented XML description of the network protocol, they are controlled by microcode stored in the built-in memory. It is obvious to a person skilled in the art that the above logical blocks, processing circuits/algorithms can be implemented using a memory element that records the processed data and the processing process, which can be used: a general purpose processor, computer-readable media, a state machine or other hardware-programmable logic device , transistor logic or any combination thereof to perform the functions described above.

Предложенный способ балансировки с сохранением целостности потоков данных ориентирован на применение в устройствах на базе ПЛИС или СБИС, например, в брокерах сетевых пакетов (NPB), которые работают на уровне пакетов, где правила распределения и агрегации трафика полностью определяются настройками. В NPB нет стандартов построения таблиц пересылки (МАС-таблиц) и протоколов обмена с другими коммутаторами (типа STP), а поэтому диапазон возможных пользовательских настроек и интерпретируемых полей в них гораздо шире. Брокер может равномерно распределить трафик из одного или нескольких входных портов на заданный диапазон выходных портов с функцией равномерной нагрузки по выходу. Также можно задать правила на копирование, фильтрацию, классификацию, дедупликацию и модификацию трафика к разным группам входных портов NPB, а также применять последовательно друг за другом в самом устройстве. ПЛИС или СБИС может быть запрограммирована для выполнения предложенного способа и размещена в любом иерархическом месте компьютерной сети центра обработки данных или NPB.The proposed method of balancing while maintaining the integrity of data streams is aimed at use in devices based on FPGAs or VLSIs, for example, in network packet brokers (NPBs), which operate at the packet level, where the rules for distribution and aggregation of traffic are completely determined by the settings. NPB does not have standards for constructing forwarding tables (MAC tables) and exchange protocols with other switches (such as STP), and therefore the range of possible user settings and interpreted fields in them is much wider. The broker can evenly distribute traffic from one or more input ports to a specified range of output ports with an output load balancing feature. You can also set rules for copying, filtering, classification, deduplication and modification of traffic to different groups of NPB input ports, and apply them sequentially one after another in the device itself. An FPGA or VLSI can be programmed to perform the proposed method and placed at any hierarchical location in a data center or NPB computer network.

Предложенный по изобретению способ балансировки с сохранением целостности потоков данных может выполняться посредством одной или нескольких компьютерных программ, содержащих программный код или порции программного обеспечения для исполнения на компьютере/процессоре. Компьютерная программа содержит элементы программного кода, которые побуждают компьютер выполнять заявленный способ.The balancing method proposed by the invention while maintaining the integrity of data streams can be performed by one or more computer programs containing program code or pieces of software for execution on a computer/processor. A computer program contains elements of program code that cause a computer to perform the claimed method.

Варианты осуществления изобретения не являются исчерпывающими и приведены только с целью пояснения и подтверждения промышленной применимости, и специалисты в данной области техники способны создавать альтернативные варианты осуществления без отрыва от объема формулы, но в пределах сущности изобретения, отраженной в описании.The embodiments of the invention are not exhaustive and are provided only for the purpose of explanation and confirmation of industrial applicability, and those skilled in the art are able to create alternative embodiments without departing from the scope of the claims, but within the spirit of the invention as reflected in the description.

Claims (2)

1. Способ балансировки с сохранением целостности потоков данных сетевых пакетов, в котором пакет после приема через входной интерфейс (101) передается в блок анализа пакета (102), где выполняется выделение из пакета необходимых полей пакетов – исходного IP-адреса, исходного порта, целевого IP-адреса, целевого порта и типа протокола и формирование на их основе битового вектора – дескриптора, отличающийся тем, что тело пакета сохраняется в пакетном буфере на SRAM-памяти (103) до момента принятия решения о наборе действий, выполняемых над пакетом, а дескриптор передается в блок расчета hash 5-tuple сессии (104), где дескриптор сжимается методом хеширования до битового вектора выбранной размерности разрешающей способности балансировки N, где для каждого возможного из 2^N значений сжатого вектора балансировки – дескриптора ставится в соответствие номер выходного интерфейса, а пакеты, принадлежащие одной и той же сессии, имеют одинаковый вектор hash 5-tuple и, соответственно, далее должны попасть на один и тот же выходной интерфейс, результат расчета hash 5-tuple сессии подается в качестве адреса в DDR-память (105) хранилища сессий, где данными, получаемыми из памяти, являются запомненные параметры сессии, если отмечено, что сессия уже встречалась, тогда переиспользуется выходной интерфейс, задействованный в предыдущий раз, а если выход для сессии в параметрах, полученных из DDR-памяти (105) хранилища сессий не определен или прошел таймаут сессии – происходит определение нового выхода для сессии, при этом рассчитанный блоком расчета hash 5-tuple сессии (104) длинной N бит подается в качестве адреса на пакетный буфер на SRAM-памяти (103) – таблицу балансировки, где выходом таблицы балансировки является номер выходного интерфейса для сессии (107), а тело пакета извлекается из пакетного буфера на SRAM-памяти (103) и блоком балансировки (106) выдается в выбранный выходной интерфейс (107).1. A method of balancing while maintaining the integrity of data streams of network packets, in which the packet, after receiving through the input interface (101), is transmitted to the packet analysis unit (102), where the necessary packet fields are extracted from the packet - source IP address, source port, destination IP address, target port and protocol type and the formation on their basis of a bit vector - a descriptor, characterized in that the body of the packet is stored in a packet buffer in SRAM memory (103) until a decision is made on the set of actions performed on the packet, and the descriptor is passed to the hash calculation block of the 5-tuple session (104), where the descriptor is compressed using the hashing method to a bit vector of the selected balancing resolution dimension N, where for each possible of 2^N values of the compressed balancing vector, the descriptor is associated with the output interface number, and packets belonging to the same session have the same 5-tuple hash vector and, accordingly, must then go to the same output interface; the result of the calculation of the 5-tuple hash of the session is supplied as an address to the DDR memory (105) of the storage sessions, where the data received from the memory are the remembered session parameters, if it is noted that the session has already been encountered, then the output interface used the previous time is reused, and if the output for the session is in the parameters received from the DDR memory (105) of the session store is not defined or the session timeout has passed - a new output for the session is determined, while the 5-tuple session hash (104) of length N bits calculated by the calculation block is supplied as an address to the packet buffer on SRAM memory (103) - the balancing table, where the output The balancing table is the number of the output interface for the session (107), and the body of the packet is retrieved from the packet buffer on the SRAM memory (103) and the balancing block (106) is issued to the selected output interface (107). 2. Способ по п.1, отличающийся тем, что при проверке таймаута сессии осуществляют проверку временного интервала между пакетами сессии, и если он превышает порог таймаута «Limit_T» более 30 секунд, то происходит определение нового выходного интерфейса для сессии.2. The method according to claim 1, characterized in that when checking the session timeout, the time interval between session packets is checked, and if it exceeds the timeout threshold “Limit_T” for more than 30 seconds, then a new output interface for the session is determined.
RU2023122633A 2023-08-31 Balancing method while maintaining integrity of data flows RU2807656C1 (en)

Publications (1)

Publication Number Publication Date
RU2807656C1 true RU2807656C1 (en) 2023-11-21

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070297410A1 (en) * 2006-06-23 2007-12-27 Seung Yong Yoon Real-time stateful packet inspection method and apparatus
US20100149966A1 (en) * 2005-04-14 2010-06-17 Microsoft Corporation Stateless, affinity-preserving load balancing
US20120230225A1 (en) * 2011-03-11 2012-09-13 Broadcom Corporation Hash-Based Load Balancing with Per-Hop Seeding
KR101214794B1 (en) * 2012-03-23 2012-12-24 주식회사 윈스테크넷 Traffic distribution method and sysem using hash algorithm and dynamic connection allocation
RU2679227C1 (en) * 2018-04-05 2019-02-06 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Firewall operating method
CN109688006A (en) * 2018-12-24 2019-04-26 北京天元特通科技有限公司 Support the high performance network log information distribution method of object set group dynamic instrumentation
CN109905320A (en) * 2019-02-25 2019-06-18 杭州迪普科技股份有限公司 A kind of the message distribution method and device of aggregation port
CN112565101A (en) * 2020-11-03 2021-03-26 西安交大捷普网络科技有限公司 Data packet distribution method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100149966A1 (en) * 2005-04-14 2010-06-17 Microsoft Corporation Stateless, affinity-preserving load balancing
US20070297410A1 (en) * 2006-06-23 2007-12-27 Seung Yong Yoon Real-time stateful packet inspection method and apparatus
US20120230225A1 (en) * 2011-03-11 2012-09-13 Broadcom Corporation Hash-Based Load Balancing with Per-Hop Seeding
KR101214794B1 (en) * 2012-03-23 2012-12-24 주식회사 윈스테크넷 Traffic distribution method and sysem using hash algorithm and dynamic connection allocation
RU2679227C1 (en) * 2018-04-05 2019-02-06 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Firewall operating method
CN109688006A (en) * 2018-12-24 2019-04-26 北京天元特通科技有限公司 Support the high performance network log information distribution method of object set group dynamic instrumentation
CN109905320A (en) * 2019-02-25 2019-06-18 杭州迪普科技股份有限公司 A kind of the message distribution method and device of aggregation port
CN112565101A (en) * 2020-11-03 2021-03-26 西安交大捷普网络科技有限公司 Data packet distribution method

Similar Documents

Publication Publication Date Title
US10742722B2 (en) Server load balancing
US8010990B2 (en) Acceleration of packet flow classification in a virtualized system
JP5544429B2 (en) Method for processing a plurality of data and switching device for switching communication packets
CN101217493B (en) TCP data package transmission method
US9602428B2 (en) Method and apparatus for locality sensitive hash-based load balancing
CN112673595B (en) Method and system for using a stream cache with data packets including dynamic headers
US20030231632A1 (en) Method and system for packet-level routing
US9596300B2 (en) Technologies for processing data packets in batches
US11489815B2 (en) Methods and systems for synchronizing state amongst monitoring nodes
US20200374231A1 (en) Managing network traffic flows
US8365045B2 (en) Flow based data packet processing
Barbette et al. Cheetah: A high-speed programmable load-balancer framework with guaranteed per-connection-consistency
US20160197954A1 (en) Defending against flow attacks
RU2807656C1 (en) Balancing method while maintaining integrity of data flows
CN111385228A (en) Mobile target defense method based on openflow switch port confusion
RU2786178C1 (en) Method for tracking sessions in network traffic
RU2790635C1 (en) Method for filtering a part of packets in a network session
RU2778462C1 (en) A way to track fragments of packets in network traffic
RU2786629C1 (en) Method for ensuring balancing identity for bidirectional network session data flow
Oncioiu et al. Approach to prevent SYN flood DoS Attacks in Cloud
RU2790636C1 (en) Method for detecting duplicate packets in a network traffic flow
US20240154999A1 (en) Thwarting syn flood ddos attacks
US20230370336A1 (en) Re-simulation of updated sdn connection flows
TWI660615B (en) Network system control method and network system
WO2023219718A1 (en) Re-simulation of updated sdn connection flows