RU2786178C1 - Method for tracking sessions in network traffic - Google Patents

Method for tracking sessions in network traffic Download PDF

Info

Publication number
RU2786178C1
RU2786178C1 RU2022114857A RU2022114857A RU2786178C1 RU 2786178 C1 RU2786178 C1 RU 2786178C1 RU 2022114857 A RU2022114857 A RU 2022114857A RU 2022114857 A RU2022114857 A RU 2022114857A RU 2786178 C1 RU2786178 C1 RU 2786178C1
Authority
RU
Russia
Prior art keywords
session
packet
descriptor
sessions
information
Prior art date
Application number
RU2022114857A
Other languages
Russian (ru)
Inventor
Михаил Викторович Бадин
Алексей Михайлович Михайлов
Сергей Алексеевич Плотко
Original Assignee
Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Filing date
Publication date
Application filed by Акционерное общество "Научно-производственное предприятие "Цифровые решения" filed Critical Акционерное общество "Научно-производственное предприятие "Цифровые решения"
Application granted granted Critical
Publication of RU2786178C1 publication Critical patent/RU2786178C1/en

Links

Images

Abstract

FIELD: data networks.
SUBSTANCE: invention relates to the field of systems for monitoring and analyzing data networks. The effect is achieved by extracting Ethernet, IP and TCP/UDP headers from the packet and forming a descriptor based on them. Based on the header fields of the IP address packet, L4 protocol code, TCP/UDP ports, the HASH sum of the session is calculated. In the RAM cell, the address of which is equal to the received HASH sum of the session, a search is made for information about the already received packet with the same HASH sum of the session. Based on the results of comparison with the data from the descriptor, the package is assigned an identifier - the value of the ACTION field, on the basis of which a decision is made about further actions on the package.
EFFECT: enabling the operation of traffic pre-processing devices with ensuring the integrity of information flows transmitted via TCP/UDP sessions.
1 cl, 7 dwg, 1 tbl

Description

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

Изобретение относится к области построения систем мониторинга и анализа сетей передачи данных, а именно к методам высокоскоростного поиска и отслеживания TCP/UDP сессий в высоконагруженных сетях, может быть использовано в устройствах предварительной обработки для систем глубокого анализа сетевого трафика, поддерживающих стек протоколов TCP/IP. Заявляемый способ направлен на обеспечение функций обработки сетевых пакетов, таких как фильтрация и балансировка, с учетом принадлежности к сессиям протоколов TCP или UDP и может быть применен в устройствах предварительной обработки сетевого трафика.The invention relates to the field of building systems for monitoring and analyzing data transmission networks, and in particular to methods for high-speed search and tracking of TCP / UDP sessions in high-load networks, can be used in pre-processing devices for deep network traffic analysis systems that support the TCP / IP protocol stack. The claimed method is aimed at providing network packet processing functions, such as filtering and balancing, taking into account belonging to TCP or UDP protocol sessions and can be applied in network traffic preprocessing devices.

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

Известны способы отслеживания сессий для балансировки нагрузки на серверные системы «Global server load balancing», патент US 7454500 B1, G06F 15/173, 18.11.2008, «Server load balancing using IP option field approach to identify route to selected server», патент US 7088718 B1, H04L 12/28, 08.08.2006, недостатками их являются невозможность обеспечения целостности информационных потоков, передаваемых через TCP/UDP сессии, а также невозможность реализации в устройствах предварительной обработки трафика на базе перепрограммируемой логической интегральной схемы (ПЛИС) или сверхбольшой интегральной схемы (СБИС). Known methods for tracking sessions for load balancing on server systems "Global server load balancing", patent US 7454500 B1, G06F 15/173, 11/18/2008, "Server load balancing using IP option field approach to identify route to selected server", US patent 7088718 B1, H04L 12/28, 08/08/2006, their disadvantages are the impossibility of ensuring the integrity of information flows transmitted over TCP / UDP sessions, as well as the impossibility of implementing traffic pre-processing devices based on a reprogrammable logic integrated circuit (FPGA) or ultra-large integrated circuit (VLSI).

Техническим результатом предложенного изобретения является обеспечение функционирования устройств предварительной обработки трафика с обеспечением целостности информационных потоков, передаваемых через TCP/UDP сессии.The technical result of the proposed invention is to ensure the functioning of traffic pre-processing devices with ensuring the integrity of information flows transmitted via TCP/UDP sessions.

Поставленный технический результат достигается тем, что предложен способ отслеживания сессий в сетевом трафике, заключающийся в отслеживании сессий для балансировки нагрузки на серверные системы, где сетевой пакет после приема передается в блок анализа пакета, в котором выполняется выделение из пакета Ethernet, IP и TCP/UDP-заголовков, кода протокола L4 и формирование на их основе информационного блока – дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор – в буфер дескрипторов и затем в блок поиска сессии, в котором по алгоритму счетчика с аутентификацией Галуа рассчитывается HASH-сумма сессии по IP-адресам получателя и отправителя, TCP/UDP-портам получателя и отправителя и коду протокола L4, при этом для разрешения коллизий, возникающих при отслеживании сессии на основе HASH-суммы сессии, в одной ячейке RAM-памяти сессий содержатся записи с информацией, по меньшей мере, о четырех сессиях, затем блок поиска сессии проверяет в ячейке RAM-памяти сессий, адрес которой равен HASH-сумме сессии, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы сессии, об уже принятом пакете с такой же HASH-суммой сессии, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора, если информация о сессии не найдена, то дескриптор передается в блок обработки сессии, в RAM-памяти правил сохраняется набор правил, определяющий правила коммутации, блок обработки сессии выполняет поиск правила, под которое попадает дескриптор, который ведется до первого совпадения, если совпадение не найдено, то пакет отбрасывается, по результатам поиска устанавливается значение поля ACTION в дескриптор и дескриптор передается в блок поиска сессии, который в соответствующую ячейку RAM-памяти сессий записывает значение ACTION из дескриптора, далее блок коммутации на основе значения ACTION либо удаляет пакет из пакетного буфера, либо передает пакет в соответствующий выходной интерфейс.The stated technical result is achieved by the fact that a method for tracking sessions in network traffic is proposed, which consists in tracking sessions for load balancing on server systems, where the network packet, after receiving, is transmitted to the packet analysis unit, in which Ethernet, IP and TCP / UDP are separated from the packet headers, the L4 protocol code and the formation of an information block - a descriptor on their basis, then the packet is stored in the packet buffer, and the descriptor - in the descriptor buffer and then in the session search block, in which the HASH sum of the session is calculated using the Galois authentication counter algorithm IP addresses of the recipient and sender, TCP / UDP ports of the recipient and sender, and the L4 protocol code, while in order to resolve collisions that occur when tracking a session based on the HASH sum of the session, one cell of the session RAM contains records with information on at least four sessions, then the session lookup block checks the session RAM location whose address is en HASH-sum of the session, the presence of information consisting of the fields of the headers of the packet, according to which the calculation of the HASH-sum of the session was performed, about the already received packet with the same HASH-sum of the session, if the cell already contains information, then it is compared with the data from descriptor, if information about the session is not found, then the descriptor is transferred to the session processing block, the set of rules that defines the switching rules is stored in the RAM memory of the rules, the session processing block searches for the rule that the descriptor falls under, which is carried out until the first match, if the match is not found, then the packet is discarded, the value of the ACTION field is set to the descriptor based on the results of the search, and the descriptor is transferred to the session search block, which writes the ACTION value from the descriptor to the corresponding cell of the sessions RAM memory, then the switching block, based on the ACTION value, either removes the packet from the packet buffer, or passes the packet to the appropriate output interface.

Проведенный анализ уровня техники позволяет определить, что предложенное техническое решение является новым и имеет изобретательский уровень, а возможность его использования в промышленности определяет его как промышленно применимое.The analysis of the prior art makes it possible to determine that the proposed technical solution is new and has an inventive step, and the possibility of its use in industry determines it as industrially applicable.

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

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

Фиг. 1 – схема, иллюстрирующая функциональные блоки, реализующие предложенный способ отслеживания сессий в сетевом трафике.Fig. 1 is a diagram illustrating the functional blocks that implement the proposed method for tracking sessions in network traffic.

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

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

Фиг. 4 – схема, иллюстрирующая структуру записи о сессии в RAM-памяти.Fig. 4 is a diagram illustrating the structure of a session record in RAM memory.

Фиг. 5 – схема, иллюстрирующая структуру правило в RAM-памяти правил.Fig. 5 is a diagram illustrating the structure of a rule in the rule RAM.

Фиг.6 – схема, иллюстрирующая структуру хранения в RAM-памяти информации о сессиях.6 is a diagram illustrating the storage structure of session information in RAM memory.

Фиг. 7 – схема, иллюстрирующая алгоритм отслеживания сессий в сетевом трафике.Fig. 7 is a diagram illustrating the session tracking algorithm in network traffic.

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

Предложенный способ отслеживания сессий позволяет сохранять в памяти результат обработки пакетов и применять его для обработки последующих пакетов данной сессии. Сессия пакетов – набор пакетов, имеющих одинаковые адреса отправителя и получателя, порты отправителя и получателя и протокол (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.
The proposed method of tracking sessions allows you to save the result of packet processing in memory and apply it to process subsequent packets of this session. A packet session is a set of packets that have the same source and destination addresses, source and destination ports, and protocol (IP and TCP/UDP headers, protocol code L4). At the same time, the IP packet format is described in more detail in the RFC 791 "Internet Protocol DARPA Internet Program Protocol Specification", September 1981. The TCP protocol is described in the RFC 793 "Transmission Control Protocol" specification, September 1980, the UDP protocol is described in the specification
RFC 768 "User Datagram Protocol", August 1980.

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

Прием пакета через входной интерфейс (101), после приема пакета выполняется анализ и выделение заголовков пакета. Для этого пакет передается в блок анализа пакета (102), в котором выполняется выделение из пакета Ethernet, IP и TCP/UDP-заголовков, кода протокола L4 и формирование на их основе информационного блока – дескриптора.Receiving a packet through the input interface (101), after receiving the packet, analysis and extraction of packet headers is performed. To do this, the packet is transferred to the packet analysis block (102), in which the Ethernet, IP and TCP / UDP headers, the L4 protocol code are extracted from the packet and an information block - descriptor is formed on their basis.

Пакет сохраняется в пакетном буфере (103) до момента принятия решения о наборе действий, выполняемых над пакетом. На основе информации о пакете и его заголовков формируется дескриптор, показанный на фиг. 3, который сохраняется в отдельный буфер дескрипторов (104).The packet is stored in the packet buffer (103) until a decision is made on the set of actions to be performed on the packet. Based on the information about the packet and its headers, the descriptor shown in FIG. 3, which is stored in a separate descriptor buffer (104).

Возможна ситуация, что у разных пакетов с разными значениями полей заголовков: IP-адресов, кода протокола L4 и TCP/UDP портов может получиться одна и та же HASH-сумма и по отношению к пакету может быть принято ошибочное решение, чтобы этого не произошло в памяти по одному адресу, который является значением HASH-суммы сессии, хранится до 4-х дескрипторов, если рассчитанная HASH-сумма сессии у данных дескрипторов совпадает. It is possible that different packets with different values of the header fields: IP addresses, L4 protocol code and TCP / UDP ports can get the same HASH sum and an erroneous decision can be made with respect to the packet so that this does not happen in memory at one address, which is the value of the HASH sum of the session, is stored up to 4 descriptors, if the calculated HASH sum of the session for these descriptors is the same.

Установлено, что при хранении информации о 4-х сессиях вероятность коллизии ничтожно мала. В одной ячейке RAM-памяти сессий (105) содержатся записи с информацией о четырёх сессиях (HASH №1, HASH №2, HASH №3, HASH №4), где адрес ячейки равняется HASH-сумме сессии, как показано на фиг. 6. Информация об уже полученных ранее сессиях имеет структуру, показанную на фиг. 4. Таким образом, для разрешения коллизий, возникающих при отслеживании сессии, необходимы записи с информацией о четырех сессиях. В случае балансировки потоки могут разводиться на разные интерфейсы без риска быть в дальнейшем потерянными/отброшенными на других коммутаторах, а при агрегации пакеты из разных интерфейсов могут быть собраны в один, что в целом обеспечивает целостность потока в сетевом трафике.It has been established that when storing information about 4 sessions, the probability of a collision is negligible. One cell of the session RAM (105) contains records with information about four sessions (HASH #1, HASH #2, HASH #3, HASH #4), where the cell address equals the HASH sum of the session, as shown in FIG. 6. The information about previously received sessions has the structure shown in FIG. 4. Thus, to resolve collisions arising from session tracking, records with information about four sessions are needed. In the case of balancing, flows can be diluted to different interfaces without the risk of being lost / dropped on other switches in the future, and when aggregating, packets from different interfaces can be collected into one, which generally ensures the integrity of the flow in network traffic.

HASH-сумма сессии рассчитывается на основе данных дескриптора по IP-адресам получателя и отправителя, TCP/UDP-портам получателя и отправителя, коду протокола L4, например, по алгоритму счетчика с аутентификацией Галуа. Можно выполнять, например, побитовую логическую операцию «исключающее ИЛИ» (XOR) над соответствующими битами IP-адреса получателя (32 бит), IP-адреса отправителя (32 бит), кода протокола L4 (8 бит), порта получателя (16 бит), порта отправителя (16 бит) и отправлять результаты операции побитового «исключающее ИЛИ» (XOR) в рандомизатор и генерировать HASH-сумму, имеющую Y-биты, где Y является положительным целым числом, например, для указанного примера – 10 бит.The HASH sum of the session is calculated based on the descriptor data on the IP addresses of the recipient and source, the TCP / UDP ports of the recipient and sender, the L4 protocol code, for example, using the counter algorithm with Galois authentication. You can perform, for example, a bitwise logical XOR operation on the corresponding bits of the destination IP address (32 bits), source IP address (32 bits), L4 protocol code (8 bits), destination port (16 bits) , sender port (16 bits) and send the results of the bitwise exclusive OR (XOR) operation to the randomizer and generate a HASH sum having Y-bits, where Y is a positive integer, for example, for the specified example - 10 bits.

В алгоритме счетчика с аутентификацией Галуа (GCM) входные блоки вектора байт нумеруются последовательно, номер блока кодируется блочным алгоритмом. Выход функции шифрования используется в операции XOR («исключающее ИЛИ») с открытым текстом для получения HASH-суммы. Схема представляет собой потоковый шифр, поэтому использование уникального вектора байт гарантирует получение уникальной HASH-суммы. In the Galois Authenticated Counter (GCM) algorithm, the input blocks of a byte vector are numbered sequentially, the block number is encoded in a block algorithm. The output of the encryption function is used in an XOR ("exclusive OR") operation with plain text to obtain a HASH sum. The scheme is a stream cipher, so using a unique byte vector guarantees a unique HASH sum.

Блок поиска сессии (106) рассчитывает HASH-сумму сессии на основе полей дескриптора (IP-адресов получателя и отправителя, TCP/UDP-портам получателя и отправителя, коду протокола L4), например, по алгоритму счетчика с аутентификацией Галуа и ищет совпадения в RAM-памяти сессий (105), если информация о сессии не найдена, то дескриптор передается в блок обработки сессии (108), при этом n – номер записи для разрешения коллизий. Таким образом проверяется в ячейке RAM-памяти сессий (105), адрес которой равен HASH-сумме, наличие информации, состоящей из полей заголовков пакета, по которому выполнялся расчет HASH-суммы, об уже принятом пакете с такой же HASH-суммой, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора, если информация совпадает, но в пакете присутствует флаг SYN в TCP-заголовке, то выполняется присвоение нового идентификатора выполняемого действия ACTION и в ячейку RAM-памяти сессий заносится информация о текущем пакете, если информация совпадает и пакет не содержит флага SYN в TCP-заголовке, то считается, что пакет принадлежит к уже существующей сессии и к дескриптору пакета добавляется, хранящийся в этой ячейке RAM-памяти сессий, идентификатор ACTION, если информация не совпадает, то аналогичным образом проверяются остальные три записи, в случае отсутствия совпадений информации создается новая запись в ячейке RAM-памяти сессий. The session lookup block (106) calculates the session HASH sum based on the descriptor fields (destination and source IP addresses, destination and source TCP/UDP ports, L4 protocol code), for example, using a counter algorithm with Galois authentication and looks for matches in RAM -session memory (105), if information about the session is not found, then the descriptor is passed to the session processing block (108), while n is the record number for resolving collisions. Thus, in the cell of the session RAM memory (105), the address of which is equal to the HASH sum, the presence of information consisting of the header fields of the packet on which the HASH sum was calculated is checked about the already received packet with the same HASH sum, if in the cell already contains information, then it is compared with the data from the descriptor, if the information matches, but the packet contains the SYN flag in the TCP header, then a new identifier for the action being performed ACTION is assigned and information about the current packet is entered into the session RAM memory cell, if the information matches and the packet does not contain the SYN flag in the TCP header, then it is considered that the packet belongs to an already existing session and the ACTION identifier stored in this cell of the session RAM memory is added to the packet descriptor, if the information does not match, then in a similar way the remaining three records are checked, if there is no match, a new record is created in the session RAM cell.

В протоколе TCP предусмотрен флаг SYN начала сессии, как только флаг будет принят, то будет ясно, что сессия открыта и информацию о ней нужно записать в память. В протоколе UDP нет аналогичного флага, поэтому решение о том, можно ли закрывать сессию, принимается в случае, если в течение времени «LIMIT_T» никаких пакетов с одинаковыми контролируемыми полями из заголовка не приходило. Таким образом для UDP-сессий проверяется временной интервал между двумя пакетами сессии и если он превышает установленный Т порог (например, более 30 секунд), то считается, что пришедший пакет относится к новой сессии, а информация об устаревшей сессии удаляется.The TCP protocol provides the SYN flag for the beginning of the session, as soon as the flag is accepted, it will be clear that the session is open and information about it needs to be written to memory. There is no similar flag in the UDP protocol, so the decision on whether it is possible to close the session is made if no packets with the same controlled fields from the header arrived during the “LIMIT_T” time. Thus, for UDP sessions, the time interval between two session packets is checked, and if it exceeds the set T threshold (for example, more than 30 seconds), then it is considered that the incoming packet belongs to a new session, and information about the outdated session is deleted.

В RAM-памяти правил (107) сохранен набор правил, определяющий правила коммутации в определенный выходной интерфейс (110). Правило состоит из значения и маски, маска определяет какие поля значения учитываются при сравнении, например, IP_DST & RULE_IP_DST_MASK == RULE_IP_DST_VAL & RULE_IP_DST_MASK.The rules RAM (107) stores a set of rules that defines the rules for switching to a specific output interface (110). The rule consists of a value and a mask, the mask determines which value fields are taken into account when comparing, for example, IP_DST & RULE_IP_DST_MASK == RULE_IP_DST_VAL & RULE_IP_DST_MASK.

Таблица 1. Пример правила в RAM-памяти правилTable 1. Rule RAM example

Figure 00000001
Figure 00000001

Возможные типы правил: Possible types of rules:

0 – IP_DST0 - IP_DST

1 – IP_SRC1-IP_SRC

2 – PORT_DST2 - PORT_DST

3 – PORT_SRC3 - PORT_SRC

4 – PROTOCOL_CODE4 - PROTOCOL_CODE

Пример обработки:Processing example:

Принимается пакет со следующими параметрами IP_DST = 192.168.0.32, IP_SRC = 192.168.0.15, PORT_DST = 443, PORT_SRC = 32457, PROTOCOL_L4 = 6 (TCP).A packet is received with the following parameters IP_DST = 192.168.0.32, IP_SRC = 192.168.0.15, PORT_DST = 443, PORT_SRC = 32457, PROTOCOL_L4 = 6 (TCP).

При поиске правил выполняется последовательное сравнение параметров пакета со значениями в правиле.When searching for rules, the package parameters are sequentially compared with the values in the rule.

Для правила №0For rule #0

Рассчитывается значение параметра пакета после наложения маски: 192.168.0.32 & 0.0.0.255 = 0.0.0.32. Рассчитывается значение правила после наложения маски: 0.0.0.171 & 0.0.0.255 = 0.0.0.171. Выполняется сравнение с 0.0.0.32 = 0.0.0.171, значит пакет не подпадает под правило №0.The value of the packet parameter after masking is calculated: 192.168.0.32 & 0.0.0.255 = 0.0.0.32. The value of the rule after the mask is applied is calculated: 0.0.0.171 & 0.0.0.255 = 0.0.0.171. A comparison is made with 0.0.0.32 = 0.0.0.171, which means that the packet does not fall under rule #0.

Для правила №1For rule #1

Рассчитывается значение параметра пакета после наложения маски:
443 & 65535 = 443. Рассчитывается значение правила после наложения маски: 443 & 65535 = 443. Выполняется сравнение с 443 = 443, значит пакет подпадает под правило №1 и он будет направлен в порт 3.
The value of the package parameter is calculated after applying the mask:
443 & 65535 = 443. The value of the rule is calculated after the mask is applied: 443 & 65535 = 443. A comparison is made with 443 = 443, which means that the packet falls under rule No. 1 and it will be sent to port 3.

Блок обработки сессии (108) выполняет поиск правила, как показано выше, под которое попадает дескриптор. Поиск ведется до первого совпадения, если совпадения не найдено, то пакет отбрасывается. По результатам поиска устанавливается значение поля ACTION в дескриптор («255» – неизвестно, «0» – отбросить, «1: N» – передать в порт от 1 до N) и дескриптор передается в блок поиска сессии (106). На основе идентификатора ACTION принимается решение о действии, выполняемом над пакетом. The session processing block (108) searches for a rule, as shown above, under which the descriptor falls. The search is carried out until the first match, if no match is found, then the packet is discarded. Based on the results of the search, the value of the ACTION field is set to the descriptor ("255" - unknown, "0" - discard, "1: N" - send to port from 1 to N) and the descriptor is transferred to the session search block (106). Based on the ACTION identifier, a decision is made about the action to be performed on the package.

Блок поиска сессии (106) в соответствующую ячейку RAM-памяти сессий (105) записывает значение ACTION из дескриптора. Для разных дескрипторов работают разные правила: либо пакет отбросить, либо перенаправить на определённый порт. Таким образом, блок коммутации (109) на основе значения ACTION «0», «255» либо удаляет пакет из пакетного буфера, когда значение «0», либо «1:N» передает пакет в соответствующий выходной интерфейс (110).The session lookup block (106) writes the ACTION value from the descriptor to the corresponding cell in the session RAM (105). Different rules work for different descriptors: either drop the packet or redirect it to a specific port. Thus, the switching unit (109), based on the ACTION value "0", "255", either removes the packet from the packet buffer when the value "0" or "1:N" passes the packet to the corresponding egress interface (110).

Передача трафика одной TCP/UDP-сессии в один выходной порт или трафика одной пары IP-портов (IP-адресов, TCP/UDP-портов) в один выходной порт или трафика от одного пользователя в один выходной порт обеспечивает сохранение целостности сессий при передаче сетевого трафика в сети с множеством устройств обработки сетевого трафика и маршрутизаторов. Transferring traffic of one TCP/UDP session to one output port or traffic of one pair of IP ports (IP addresses, TCP/UDP ports) to one output port or traffic from one user to one output port ensures that the integrity of the sessions is maintained during network transmission. traffic on a network with many network traffic processors and routers.

В предпочтительном варианте осуществления изобретения вышеуказанные логические блоки: блок анализа пакета (102), блок поиска сессии (106), блок обработки сессии (108), блок коммутации (109), могут быть реализованы или выполнены на базе ПЛИС или СБИС. Блоки могут быть реализованы конечным автоматом и несколькими регистрами с соответствующей внутренней логикой и реализуется автоматически, например, из представленного XML-описания сетевого протокола, они управляются микрокодом, хранящимся во встроенной памяти. Специалисту очевидно, что вышеуказанные логические блоки, схемы/алгоритмы обработки могут быть выполнены с помощью элемента памяти, который записывает обрабатываемые данные из процессора обработки, в качестве которых могут применяться: процессор общего назначения, машиночитаемый носитель, конечный автомат или другое аппаратно-программируемое логическое устройство, дискретный логический элемент или транзисторная логика или любого их сочетания, чтобы выполнять описанные выше функции. In a preferred embodiment of the invention, the above logical blocks: packet analysis block (102), session search block (106), session processing block (108), switching block (109), can be implemented or implemented on the basis of an FPGA or VLSI. Blocks can be implemented by a state machine and several registers with appropriate internal logic and are implemented automatically, for example, from the provided XML description of the network protocol, they are controlled by microcode stored in on-chip memory. It is obvious to the specialist that the above logical blocks, processing schemes/algorithms can be executed using a memory element that records processed data from the processing processor, which can be used as a general purpose processor, computer-readable medium, state machine or other hardware-programmable logic device , discrete logic element or transistor logic, or any combination thereof, to perform the functions described above.

Предложенный способ отслеживания сессий в сетевом трафике ориентирован на применение в устройствах на базе ПЛИС или СБИС, например, в брокерах сетевых пакетов (NPB), которые работают на уровне пакетов, где правила распределения и агрегации трафика в брокерах сетевых пакетов полностью определяются настройками. В NPB нет стандартов построения таблиц пересылки (MAC-таблиц) и протоколов обмена с другими коммутаторами (типа STP), поэтому диапазон возможных пользовательских настроек и интерпретируемых полей в них гораздо шире. Брокер может равномерно распределить трафик из одного или нескольких входных портов на заданный диапазон выходных портов с функцией равномерной нагрузки по выходу. Также можно задать правила на копирование, фильтрацию, классификацию, дедупликацию и модификацию трафика к разным группам входных портов NPB, а также применять последовательно друг за другом в самом устройстве. ПЛИС или СБИС может быть запрограммирована для выполнения предложенного способа и размещена в любом месте компьютерной сети центра обработки данных или NPB.The proposed method for tracking sessions in network traffic is focused on use in devices based on FPGA or VLSI, for example, in network packet brokers (NPB), which operate at the packet level, where the rules for distribution and aggregation of traffic in network packet brokers are completely determined by the settings. In NPB, there are no standards for building forwarding tables (MAC tables) and exchange protocols with other switches (such as STP), so the range of possible user settings and interpreted fields in them is much wider. A broker can evenly distribute traffic from one or more input ports to a given range of output ports with an output load balancing feature. You can also set rules for copying, filtering, classifying, deduplicating and modifying traffic to different groups of NPB input ports, as well as applying them sequentially one after another in the device itself. An FPGA or VLSI can be programmed to perform the proposed method and placed anywhere on the computer network of the data center or NPB.

Предложенный по изобретению способ отслеживания сессий в сетевом трафике может выполняться посредством одной или нескольких компьютерных программ, содержащих код компьютерной программы или порции программного обеспечения, исполняющихся на компьютере или процессоре. Компьютерная программа содержит элементы кода компьютерной программы или порции программного кода, которые побуждают компьютер выполнять предложенный способ. The inventive method for tracking sessions in network traffic may be performed by one or more computer programs containing computer program code or pieces of software executing on a computer or processor. The computer program contains computer program code elements or portions of program code that cause the computer to perform the proposed method.

Варианты осуществления изобретения не являются исчерпывающими и приведены только с целью пояснения и подтверждения промышленной применимости, и специалисты в данной области техники способны создавать альтернативные варианты его осуществления без отрыва от объема формулы, но в пределах сущности изобретения, отраженной в описании.Embodiments of the invention are not exhaustive and are provided only for the purpose of explaining and confirming 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 essence of the invention reflected in the description.

Claims (1)

Способ отслеживания сессий в сетевом трафике, заключающийся в отслеживании сессий, где сетевой пакет после приема передается в блок анализа пакета, в котором выполняется выделение из пакета Ethernet, IP и TCP/UDP-заголовков, кода протокола L4 и формирование на их основе информационного блока – дескриптора, далее пакет сохраняется в пакетный буфер, а дескриптор – в буфер дескрипторов и затем в блок поиска сессии, в котором рассчитывается HASH-сумма сессии по отдельным полям: IP-адреса получателя и отправителя, TCP/UDP-портов получателя и отправителя, кодов протокола L4, при этом в одной ячейке RAM-памяти сессий содержатся записи с информацией, по меньшей мере, о четырех сессиях, затем блок поиска сессии проверяет в ячейке RAM-памяти сессий, адрес которой равен HASH-сумме сессии, наличие информации, состоящей из полей заголовков пакета, по которым выполнялся расчет HASH-суммы сессии, об уже принятом пакете с такой же HASH-суммой сессии, если в ячейке уже присутствует информация, то выполняется ее сравнение с данными из дескриптора, если информация о сессии не найдена, то дескриптор передается в блок обработки сессии, при этом в RAM-памяти правил сохраняется набор правил, определяющий правила коммутации, блок обработки сессии выполняет поиск правила, под которое попадает дескриптор, который ведется до первого совпадения, если совпадение не найдено, то пакет отбрасывается, по результатам поиска устанавливается значение поля ACTION в дескриптор и дескриптор передается в блок поиска сессии, который в соответствующую ячейку RAM-памяти сессий записывает значение ACTION из дескриптора, далее блок коммутации на основе значения ACTION либо удаляет пакет из пакетного буфера, либо передает пакет в соответствующий выходной интерфейс.A method of tracking sessions in network traffic, which consists in tracking sessions, where the network packet, after receiving, is transferred to the packet analysis block, in which the Ethernet, IP and TCP / UDP headers, the L4 protocol code are extracted from the packet and an information block is formed on their basis - descriptor, then the packet is stored in the packet buffer, and the descriptor is stored in the descriptor buffer and then in the session search block, in which the HASH sum of the session is calculated for individual fields: IP addresses of the recipient and sender, TCP / UDP ports of the recipient and sender, codes protocol L4, while one cell of the RAM-memory of sessions contains records with information about at least four sessions, then the session search block checks in the cell of the RAM-memory of sessions, the address of which is equal to the HASH sum of the session, the presence of information consisting of packet header fields, which were used to calculate the session HASH sum, about the already received packet with the same session HASH sum, if the cell already contains information, then execute it is compared with the data from the descriptor, if information about the session is not found, then the descriptor is transferred to the session processing unit, while the set of rules that defines the switching rules is stored in the RAM-memory of the rules, the session processing unit searches for the rule that the descriptor falls under, which is conducted until the first match, if a match is not found, then the packet is discarded, according to the results of the search, the value of the ACTION field is set to the descriptor and the descriptor is transferred to the session search block, which writes the ACTION value from the descriptor to the corresponding cell of the session RAM, then the switching block to Based on the ACTION value, either removes the packet from the packet buffer or passes the packet to the appropriate egress interface.
RU2022114857A 2022-06-01 Method for tracking sessions in network traffic RU2786178C1 (en)

Publications (1)

Publication Number Publication Date
RU2786178C1 true RU2786178C1 (en) 2022-12-19

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7088718B1 (en) * 2002-03-19 2006-08-08 Cisco Technology, Inc. Server load balancing using IP option field approach to identify route to selected server
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US20190238364A1 (en) * 2018-01-26 2019-08-01 Nicira, Inc. Specifying and utilizing paths through a network
RU2697698C2 (en) * 2017-12-27 2019-08-16 Общество с ограниченной ответственностью "АСП Лабс" Method of processing network traffic using firewall method
US20200274808A1 (en) * 2019-02-22 2020-08-27 Vmware, Inc. Service path selection in load balanced manner

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US7088718B1 (en) * 2002-03-19 2006-08-08 Cisco Technology, Inc. Server load balancing using IP option field approach to identify route to selected server
RU2697698C2 (en) * 2017-12-27 2019-08-16 Общество с ограниченной ответственностью "АСП Лабс" Method of processing network traffic using firewall method
US20190238364A1 (en) * 2018-01-26 2019-08-01 Nicira, Inc. Specifying and utilizing paths through a network
US20200274808A1 (en) * 2019-02-22 2020-08-27 Vmware, Inc. Service path selection in load balanced manner

Similar Documents

Publication Publication Date Title
US11032190B2 (en) Methods and systems for network security universal control point
US10742722B2 (en) Server load balancing
CN105491060B (en) Method, apparatus, client and the equipment of defending distributed denial of service attack
US9667442B2 (en) Tag-based interface between a switching device and servers for use in frame processing and forwarding
US9419889B2 (en) Method and system for discovering a path of network traffic
US8559429B2 (en) Sequential frame forwarding
US20120314605A1 (en) Communication system, path control apparatus, packet forwarding apparatus, and path control method
CN112673595B (en) Method and system for using a stream cache with data packets including dynamic headers
CN104348716A (en) Message processing method and equipment
US9596300B2 (en) Technologies for processing data packets in batches
TW201501556A (en) Apparatus and method for uniquely enumerating paths in a parse tree
US10757230B2 (en) Efficient parsing of extended packet headers
CN106411924B (en) A kind of method creating session forwarding-table item, the method and device that E-Packets
KR101500251B1 (en) Communication system, node, packet forwarding method and computer-readable recording medium recording a program
JP2015231131A (en) Network relay device, ddos protection method employing the device, and load distribution method
RU2786178C1 (en) Method for tracking sessions in network traffic
CN110431885B (en) Method and device for processing message
JP2007228217A (en) Traffic decision device, traffic decision method, and program therefor
RU2790635C1 (en) Method for filtering a part of packets in a network session
CN113556364B (en) DPDK-based DDoS real-time defense system
RU2778462C1 (en) A way to track fragments of packets in network traffic
CN116015889A (en) Data stream forwarding method, device, network equipment and storage medium
RU2807656C1 (en) Balancing method while maintaining integrity of data flows
CN111770049B (en) Global cache variable and message information storage method and device
RU2779135C1 (en) Method for dynamic filtering of network packets by sessions