RU2786178C1 - Method for tracking sessions in network traffic - Google Patents
Method for tracking sessions in network traffic Download PDFInfo
- 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
Links
- 235000010384 tocopherol Nutrition 0.000 claims abstract description 24
- 235000019731 tricalcium phosphate Nutrition 0.000 claims abstract description 24
- XCCTYIAWTASOJW-XVFCMESISA-N Uridine-5'-Diphosphate Chemical compound O[C@@H]1[C@H](O)[C@@H](COP(O)(=O)OP(O)(O)=O)O[C@H]1N1C(=O)NC(=O)C=C1 XCCTYIAWTASOJW-XVFCMESISA-N 0.000 claims abstract description 21
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000000875 corresponding Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 abstract description 5
- 239000000126 substance Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 241000408659 Darpa Species 0.000 description 1
- 230000004931 aggregating Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 230000000873 masking Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 235000019832 sodium triphosphate Nutrition 0.000 description 1
Images
Abstract
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
Возможные типы правил: 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
Рассчитывается значение параметра пакета после наложения маски: 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
Для правила №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)
Publications (1)
Publication Number | Publication Date |
---|---|
RU2786178C1 true RU2786178C1 (en) | 2022-12-19 |
Family
ID=
Citations (5)
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)
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 |