CN117520607A - Stream table compression method, computer equipment and medium - Google Patents

Stream table compression method, computer equipment and medium Download PDF

Info

Publication number
CN117520607A
CN117520607A CN202410014653.9A CN202410014653A CN117520607A CN 117520607 A CN117520607 A CN 117520607A CN 202410014653 A CN202410014653 A CN 202410014653A CN 117520607 A CN117520607 A CN 117520607A
Authority
CN
China
Prior art keywords
compressed
entries
flow table
flow
key value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410014653.9A
Other languages
Chinese (zh)
Other versions
CN117520607B (en
Inventor
黄雪峰
朱贤基
李森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xingyun Zhilian Technology Co ltd
Original Assignee
Shenzhen Xingyun Zhilian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Xingyun Zhilian Technology Co ltd filed Critical Shenzhen Xingyun Zhilian Technology Co ltd
Priority to CN202410014653.9A priority Critical patent/CN117520607B/en
Publication of CN117520607A publication Critical patent/CN117520607A/en
Application granted granted Critical
Publication of CN117520607B publication Critical patent/CN117520607B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The application relates to the technical field of computers and provides a flow table compression method, computer equipment and a medium. The method comprises the following steps: determining a first flow table to be compressed, which comprises a plurality of flow table items to be compressed; for each flow table item to be compressed, determining a first key value segment and a second key value segment of a key value part of the flow table item to be compressed based on a first segmentation strategy; aiming at each flow table item to be compressed, based on a first compression algorithm, compressing the first key value segment to obtain a third key value segment, and then replacing the first key value segment with the third key value segment to obtain a corresponding compressed flow table item, thereby obtaining a plurality of compressed flow table items; based on the plurality of compressed stream table entries, a first register table is generated, and the first register table is used for replacing the first stream table to perform stream table matching and stream table actions. Thus, the resources and the cost occupied by the flow table are reduced, and the processing delay and the power consumption of the data frames are also reduced.

Description

Stream table compression method, computer equipment and medium
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a method for compressing a flow table, a computer device, and a medium.
Background
In applications such as data centers and network communications, various data frames are transmitted between different computers, and thus a large amount of processing related to the data frames is required, for example, generation of the data frames, analysis of the data frames, extraction of feature information, flow table inquiry, flow table feature value matching, and flow table action acquisition and execution. With the development of various business applications, the number of data streams required to be supported by a flow table can be from hundreds to thousands to millions, and the feature information required to be stored by the flow table can be from tens to hundreds of bits or more, so that the scale of a single flow table can reach megabit or more, thereby causing the resources and cost occupied by the flow table to rise rapidly, and increasing the delay and power consumption of data frame processing.
For this reason, the present application provides a method, a computer device, and a medium for compressing a flow table, which are used to solve the technical problems in the prior art.
Disclosure of Invention
In a first aspect, the present application provides a method of stream table compression. The flow table compression method comprises the following steps: determining a first flow table to be compressed, wherein the first flow table comprises a plurality of flow table items to be compressed, each flow table item to be compressed in the plurality of flow table items to be compressed comprises a key value part and an action part, the key value part is used for matching the flow table item associated with the flow table item to be compressed, the action part is used for acting the flow table associated with the flow table item to be compressed, and the key value part of each flow table item to be compressed in the plurality of flow table items to be compressed is of a first length; for each of the plurality of to-be-compressed flow entries, determining a first key segment and a second key segment of a key portion of the to-be-compressed flow entry based on a first segmentation strategy, the second key segment being a remaining key portion of the key portion other than the first key segment, the first key segments of the key portions of each of the plurality of to-be-compressed flow entries being a second length; for each of the plurality of to-be-compressed flow entries, compressing a first key value segment of a key value part of the to-be-compressed flow entry based on a first compression algorithm to obtain a third key value segment, and then replacing the first key value segment of the key value part of the to-be-compressed flow entry with the third key value segment to obtain a compressed flow entry corresponding to the to-be-compressed flow entry, thereby obtaining a plurality of compressed flow entries corresponding to the plurality of to-be-compressed flow entries one by one, wherein the third key value segment of the key value part of each of the plurality of compressed flow entries is of a third length, and the third length is smaller than the second length; generating a first register table based on the plurality of compressed stream entries, wherein the first register table comprises one or more register entries, the number of the one or more register entries is not less than the number of compressed stream entries with non-repeated third key value segments in the plurality of compressed stream entries, and the first register table is used for replacing the first stream table to perform stream table matching and stream table actions associated with the first stream table.
According to the first aspect of the application, compression is only carried out on the first key value segment of the key value part of each to-be-compressed flow table item in the plurality of to-be-compressed flow table items, and a first segmentation strategy can be combined to select a domain segment with the longest length or a domain segment with the largest bit width as the first key value segment, so that the representation capability of the original to-be-compressed flow table item to the characteristic information is reserved as much as possible while the flow table compression is realized, thereby being beneficial to reducing the flow table collision probability in the subsequent flow and being beneficial to improving the overall efficiency; besides, the first register table is generated on the hardware level besides the compression on the software level to save the storage space, so that the bit width of the reduced stream table entry is further utilized, the storage space of the original stream table is saved, and meanwhile, the high efficiency and the correctness of stream table matching are realized.
In a possible implementation manner of the first aspect of the present application, the matching of the flow table based on the first register table includes: and performing first re-matching based on third key value fragments stored in each of the one or more register table entries to obtain a first re-matching result, and performing second re-matching based on second key value fragments stored in each of register table entries associated with the first re-matching result in the one or more register table entries to obtain a flow table matching result.
In a possible implementation manner of the first aspect of the present application, the matching of the flow table based on the first register table includes: and matching based on the key value parts stored in the one or more register table entries respectively to obtain a flow table matching result.
In a possible implementation manner of the first aspect of the present application, the number of the one or more register entries is equal to the number of compressed stream entries having non-repeated third key value segments among the plurality of compressed stream entries, and the plurality of compressed stream entries are stored in the one or more register entries according to respective third key value segments.
In a possible implementation manner of the first aspect of the present application, the number of the one or more register entries is equal to the number of the plurality of compressed stream entries, and the plurality of compressed stream entries are stored in the one or more register entries in a one-to-one correspondence.
In a possible implementation manner of the first aspect of the present application, the number of the one or more register entries is equal to a power of 2 as a base and of the bit width of the third length, and the plurality of compressed post-flow entries are stored in the one or more register entries, respectively.
In a possible implementation manner of the first aspect of the present application, the order of magnitude of the depth of the first flow table is at least two orders of magnitude higher than the order of magnitude of the width of the first flow table, the depth of the first flow table is the number of the plurality of flow entries to be compressed, and the width of the first flow table is the length of each of the plurality of flow entries to be compressed.
In a possible implementation manner of the first aspect of the present application, the proportion of the second length compared to the first length is between twenty percent and fifty percent.
In a possible implementation manner of the first aspect of the present application, the first segmentation policy includes: and determining that the key value segment of a specific bit number continuously distributed from a specific position in the key value part of the to-be-compressed flow table item is the first key value segment, or determining that the specific domain segment in a plurality of domain segments in the key value part of the to-be-compressed flow table item is the first key value segment.
In a possible implementation manner of the first aspect of the present application, the plurality of field segments in the key portion of the to-be-compressed flow table entry correspond to five-tuple information, and the specific field segment is a field segment, a source address field segment, or a destination address field segment with the largest bit width in the five-tuple information.
In a possible implementation manner of the first aspect of the present application, the first compression algorithm is based on content addressable elements, hash computation, register name mapping or register address mapping.
In a possible implementation manner of the first aspect of the present application, the first register table is disposed in a ternary content addressable memory.
In a second aspect, embodiments of the present application further provide a computer device, where the computer device includes a memory, a processor, and a computer program stored on the memory and executable on the processor, where the processor implements a method according to any implementation manner of any one of the foregoing aspects when the computer program is executed.
In a third aspect, embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
In a fourth aspect, embodiments of the present application also provide a computer program product comprising instructions stored on a computer-readable storage medium, which when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present application, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic flow chart of a method for compressing a flow chart according to an embodiment of the present application;
fig. 2 is a schematic diagram of a data frame processing flow provided in an embodiment of the present application;
fig. 3 is a schematic structural diagram of a computing device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
It should be understood that in the description of this application, "at least one" means one or more than one, and "a plurality" means two or more than two. In addition, the words "first," "second," and the like, unless otherwise indicated, are used solely for the purposes of description and are not to be construed as indicating or implying a relative importance or order.
Fig. 1 is a schematic flow chart of a method for compressing a flow table according to an embodiment of the present application. As shown in fig. 1, the flow table compression method includes the following steps.
Step S110: determining a first flow table to be compressed, wherein the first flow table comprises a plurality of flow table items to be compressed, each flow table item to be compressed in the plurality of flow table items to be compressed comprises a key value part and an action part, the key value part is used for matching the flow table item associated with the flow table item to be compressed, the action part is used for acting the flow table associated with the flow table item to be compressed, and the key value part of each flow table item to be compressed in the plurality of flow table items to be compressed is of a first length.
Step S120: for each of the plurality of to-be-compressed flow entries, determining a first key segment and a second key segment of a key portion of the to-be-compressed flow entry based on a first segmentation strategy, wherein the second key segment is a remaining key portion of the key portion except the first key segment, and the first key segments of the key portions of the plurality of to-be-compressed flow entries are all of a second length.
Step S130: and for each to-be-compressed flow table item in the plurality of to-be-compressed flow table items, compressing a first key value segment of a key value part of the to-be-compressed flow table item based on a first compression algorithm to obtain a third key value segment, and replacing the first key value segment of the key value part of the to-be-compressed flow table item with the third key value segment to obtain a compressed flow table item corresponding to the to-be-compressed flow table item, thereby obtaining a plurality of compressed flow table items corresponding to the plurality of to-be-compressed flow table items one by one, wherein the third key value segment of the key value part of each of the plurality of compressed flow table items is of a third length, and the third length is smaller than the second length.
Step S140: generating a first register table based on the plurality of compressed stream entries, wherein the first register table comprises one or more register entries, the number of the one or more register entries is not less than the number of compressed stream entries with non-repeated third key value segments in the plurality of compressed stream entries, and the first register table is used for replacing the first stream table to perform stream table matching and stream table actions associated with the first stream table.
Referring to fig. 1, the first flow table to be compressed may be applied to any suitable application scenario involving data frame processing, for example, in applications such as data centers, network communications, etc. where it is required to transmit various data frames for communication between different computers. The first flow table to be compressed contains a plurality of flow entries to be compressed, where the flow entries to be compressed mean flow entries before the compression operation is performed on the first flow table to be compressed according to the flow table compression method shown in fig. 1, that is, original flow entries in the first flow table to be compressed. The use of the first flow table to be compressed for flow table matching means that the characteristic information of the data flow is matched with the key value part in the flow table item to be compressed contained in the first flow table to be compressed, and if the matching is successful, the action part in the matched flow table item to be compressed can be executed. Through the first flow table to be compressed, flow table inquiry, flow table characteristic value matching, flow table action acquisition and execution and the like can be realized. With the development of high-speed digital transmission technology and various business applications, such as online game interaction, online conference, traffic monitoring, industrial automation, etc., the number of data streams to be supported can be from hundreds to thousands or even millions, which means that the first flow table to be compressed may contain a larger number of flow entries to be compressed for matching the flow table. In addition, with the development of various communication protocols and device interconnection protocols, feature information required to be stored through a single flow table entry may also be from tens of bits to hundreds of bits or more, and considering that a first flow table to be compressed may contain a large number of flow table entries to be compressed, the size of the single flow table may be up to tens of megabits or more, so that the first flow table to be compressed may occupy a large storage space and cause high cost. Thus, performing the flow table matching and flow table actions associated with the first flow table based on the first flow table to be compressed requires coping with challenges due to the higher order of magnitude and more characteristic information of the data flow.
With continued reference to fig. 1, in step S110, a first flow table to be compressed is determined. Then, in step S120, for each of the plurality of flow entries to be compressed, a first key segment and a second key segment of the key portion of the flow entry to be compressed are determined based on the first segmentation policy. Here, the second key segment is a remaining key portion of the key portion other than the first key segment, and the first key segments of the key portions of the plurality of to-be-compressed stream entries are each a second length. The key portion represents characteristic information of the to-be-compressed flow table, such as a characteristic field, a flow number, etc., for matching the flow table associated with the to-be-compressed flow table. The use of the first flow table to be compressed for flow table matching means that the characteristic information of the data flow is matched with the key value part in the flow table item to be compressed contained in the first flow table to be compressed, and if the matching is successful, the action part in the matched flow table item to be compressed can be executed. Any suitable matching algorithm and procedure may be employed, and is not specifically limited herein. For example, the characteristic information of the data stream may be stream table-matched with each of the plurality of stream entries to be compressed included in the first stream table to be compressed in a polling manner or in a specific order. The key value parts of the plurality of to-be-compressed flow table entries are all of a first length, and the first length can be any suitable value and can adapt to the requirements of specific application scenarios, such as the composition and the length of five-tuple information of the data flow characteristic values specified by a communication protocol. The five-tuple information contains a source realm segment (or called source network protocol realm segment, length 32 bits or 128 bits), a destination realm segment (or called destination network protocol realm segment, length 32 bits or 128 bits), a protocol realm segment (8 bits), a source port realm segment (16 bits), and a destination port realm segment (16 bits). Depending on the specific communication protocol, such as IPv6 protocol, the total length of the quintuple information of the data packet may be 296 bits (128 bits plus 8 bits plus 16 bits), i.e. the bit width to occupy 296 bits, then the first length of the key portion of the corresponding stream entry to be compressed for matching the characteristic information of the data stream is also 296 bits. In step S120, a first key segment and a second key segment of each flow entry to be compressed are determined based on the first segmentation strategy. In other words, each flow entry to be compressed is uniformly divided into a first key segment and a second key segment using a first segmentation strategy. The first segmentation strategy represents a specific partitioning approach. For example, the first segmentation policy may be a composition of reference five-tuple information, with a particular domain segment, such as the longest domain segment, being segmented as a first key and other domain segments being segmented as second keys. For example, a source address field segment or a destination address field segment may be segmented as the first key value. It should be understood that the second key segment is the remaining key portion of the key portion other than the first key segment, and thus, each of the plurality of flow entries to be compressed is composed of the first key segment and the second key segment after being divided based on the first segmentation policy. In addition, the first key segments of the key parts of the plurality of to-be-compressed flow table entries are all of a second length, for example, when the source address field segment is used as the first key segment, the second length is the length of the source address field segment, and when the communication protocol is an IPv6 protocol, the second length is 128 bits. The second length must be less than the first length.
With continued reference to fig. 1, in step S130, for each of the plurality of to-be-compressed flow entries, based on a first compression algorithm, a third key segment is obtained by compressing a first key segment of a key portion of the to-be-compressed flow entry, and then the third key segment is replaced with the first key segment of the key portion of the to-be-compressed flow entry to obtain a compressed flow entry corresponding to the to-be-compressed flow entry, thereby obtaining a plurality of compressed flow entries corresponding to the plurality of to-be-compressed flow entries one by one. Here, the first compression algorithm may represent any suitable algorithm, model, map, etc. that has the effect of shortening the original data length. For example, the first compression algorithm may be a hash algorithm, and hash calculation is performed on the original data, that is, the first key segment of the key portion of the to-be-compressed flow table, so as to obtain a hash value as the third key segment. It should be understood that the compression is performed in step S130 only for the first key segment of the key portion of each of the plurality of flow entries to be compressed. As mentioned above, the key portion of each to-be-compressed flow table entry represents the characteristic information of the to-be-compressed flow table entry, and is used for matching the flow table entry associated with the to-be-compressed flow table entry. Thus, the key portion of each flow entry to be compressed represents the complete characteristic information for flow entry matching, while the first key segment of the key portion of each flow entry to be compressed represents a portion of such complete characteristic information (the other portion being the second key segment). Compressing the first key segment of the key value part of the to-be-compressed flow table item to obtain a third key segment, and then replacing the first key segment of the key value part of the to-be-compressed flow table item with the third key segment to obtain a compressed flow table item corresponding to the to-be-compressed flow table item, wherein the key value part of the compressed flow table item comprises the third key segment and the second key segment. This means that the characteristic information represented by the key value part of each of the plurality of compressed stream entries is constituted by a third key value segment obtained by compression and a second key value segment which is not compressed, and thus differs from the corresponding one of the plurality of stream entries to be compressed only by the first key value segment. In other words, the difference between the characteristic information represented by the key value portion of each of the plurality of compressed flow entries and the characteristic information represented by the key value portion of the corresponding one of the plurality of to-be-compressed flow entries is essentially the difference between the third key value segment and the first key value segment. From an informatics perspective, data with a bit width identified in binary is analyzed, the range of values of which is determined by its bit width. For example, 8 bits of data may have a power of 8 value of 2, i.e., there is a maximum of 2 power of 8 possible cases. Thus, the maximum number of possible cases of the feature information that can be represented by the first key segment (the second length) is also determined by the second length, for example, the source address field segment is taken as the first key segment, and if the source address field segment is 128 bits, the maximum number of possible cases of the feature information that can be represented by the first key segment is 128 times 2. However, in practical applications, the first key segments of the key parts of each of the plurality of to-be-compressed flow entries included in the to-be-compressed first flow table may be far less than the maximum number of possible cases of the feature information represented by the first key segments. This is because, although the first flow table to be compressed may contain millions of orders of magnitude of flow entries to be compressed, the first key segments of the respective key portions of these flow entries to be compressed may not vary much. For example, the five-tuple information is used as the characteristic information of the key part, the source address field in the five-tuple information is used as the first key segment, and the source address field is used for matching the source of the data stream, that is, the network protocol address of the party sending the data stream. Thus, there may be a certain number of first key segments of the key portion of the flow table entry to be compressed in the first flow table to be compressed that correspond to the same network protocol address, e.g. from the same computer or computing node. Thus, the domain segment with the longest length or the domain segment with the greatest bit width can be used as the first key segment, and the maximum capability of the first key segment for characterizing the feature information is generally not fully utilized, so that a larger compression space exists. The domain segment with the longest length or the domain segment with the largest bit width is used as the first key value segment, and the first key value segment is compressed to obtain the third key value segment, and the third length of the third key value segment is smaller than the second length of the first key value segment, so that the maximum capability of the third key value segment for representing the characteristic information can be more fully utilized. For example, the source address field segment is taken as the first key value segment, the source address field segment is set to be 128 bits, and the third key value segment obtained by compressing the source address field segment is set to be 10 bits, so that the maximum capability of the third key value segment for representing the characteristic information is 10 times of 2, and the third key value segment with the length of 10 bits is enough to cover the requirements of a plurality of to-be-compressed stream table items contained in the to-be-compressed first stream table for representing the characteristic information in general. That is, from an informatics perspective, the compressed stream entries obtained by performing the compression operation in step S130 may have little or no loss in the characterization capability of the feature information compared to the corresponding stream entries to be compressed, but may be reduced from the second length 128 bits of the first key value segment to the third length 10 bits of the third key value segment, i.e. each compressed stream entry has a bit width of 118 bits compared to the corresponding stream entry to be compressed, thus appearing to save a considerable amount of memory space in the millions of stream tables as a whole. It should be appreciated that if the entirety of the key portion of each of the plurality of flow entries to be compressed is compressed, more storage space may be saved, but this may result in a loss of characterization capability of the feature information, thereby increasing the probability of flow table collisions, e.g., hashing the entirety of the key portion (i.e., including the first key segment and the second key segment) may cause two otherwise different flow entries to be mapped to the same location in the hash space. The method for compressing the flow table shown in fig. 1 only compresses the first key value segment of the key value part of each flow table item to be compressed in the plurality of flow table items to be compressed, and can select, for example, the domain segment with the longest length or the domain segment with the largest bit width as the first key value segment in combination with the first segmentation strategy, so that the original characterization capability of the flow table item to be compressed to the characteristic information is maintained as much as possible while the compression of the flow table is realized, thereby being beneficial to reducing the collision probability of the flow table in the subsequent flow and being beneficial to improving the overall efficiency.
With continued reference to fig. 1, in step S140, a first register table is generated based on the plurality of compressed stream entries. The first register table comprises one or more register table entries, the number of the one or more register table entries is not less than the number of compressed stream table entries with non-repeated third key value segments in the plurality of compressed stream table entries, and the first register table is used for replacing the first stream table to perform stream table matching and stream table actions associated with the first stream table. Therefore, the compression and the improvement of the efficiency of the flow table are realized by combining software and hardware. And on the software level, compressing the first key value segment of the key value part of each flow table item to be compressed to obtain a third key value segment, and replacing the first key value segment of the key value part of the flow table item to be compressed with the third key value segment to obtain a compressed flow table item corresponding to the flow table item to be compressed. The plurality of compressed stream entries thus obtained may be used as a new stream table for replacing the first stream table to be compressed, and the saved stream table storage space is equal to the stream table depth multiplied by the reduced bit width of each stream entry. The flow table depth is the number of flow table entries and the flow table width is the total bit width of the key portion of each flow table entry. Further, at the hardware level, new flow tables can be stored in a register manner, because the data bit width has been greatly reduced at the software level. For example, the first register table may be generated using a content addressable register, and the number of the one or more register entries included in the first register table is not less than the number of compressed streamlet entries of the plurality of compressed streamlet entries having non-repeating third key value segments, thus ensuring that all possible values of the compressed third key value segments correspond to independent register entries, respectively. Thus, the number of compressed stream entries having non-repeating third key value segments in the plurality of compressed stream entries may be statistically derived, e.g., there are 500 compressed stream entries having non-repeating third key value segments, and then 500 register entries are provided. The first register table thus obtained may be stored using a content addressable register and may in turn be used to perform flow table matching and flow table actions associated with the first flow table instead of the first flow table. Therefore, the first register table can be searched to match the register table items in the first register table so as to determine the action of the flow table to be executed, and the high efficiency and the correctness of the matching of the flow table are realized while the storage space of the original flow table is saved.
In summary, in the method for compressing a flow table shown in fig. 1, only the first key segment of the key value part of each to-be-compressed flow table in the plurality of to-be-compressed flow table entries is compressed, and a domain segment with the longest length or a domain segment with the largest bit width, for example, can be selected as the first key segment in combination with the first segmentation strategy, so that the original characterization capability of the to-be-compressed flow table entry to the feature information is maintained as much as possible while the flow table compression is realized, thereby being beneficial to reducing the collision probability of the flow table in the subsequent flow and being beneficial to improving the overall efficiency; besides, the first register table is generated on the hardware level besides the compression on the software level to save the storage space, so that the bit width of the reduced stream table entry is further utilized, the storage space of the original stream table is saved, and meanwhile, the high efficiency and the correctness of stream table matching are realized.
Fig. 2 is a schematic diagram of a data frame processing flow according to an embodiment of the present application. As shown in fig. 2, the data frame processing flow sequentially performs the following steps.
Step S210: and acquiring and analyzing the data frame.
Step S220: the key value is extracted.
Step S230: compressing the key elements and recombining to obtain new key values.
Step S240: hash calculation and hash table lookup.
Step S250: and acquiring a stream table entry index.
Step S260: the flow table is read and matched for comparison.
Step S270: performing the relevant flow table actions and completing the data frame processing.
In the data frame processing flow shown in fig. 2, reference may be made to the flow table compression method shown in fig. 1 at step S220 and step S230. In the method for compressing a flow table shown in fig. 1, for each to-be-compressed flow table in the plurality of to-be-compressed flow table entries, determining, based on a first segmentation policy, a first key segment and a second key segment of a key portion of the to-be-compressed flow table entry; and compressing the first key value segment of the key value part of the to-be-compressed flow table item to obtain a third key value segment based on a first compression algorithm aiming at each to-be-compressed flow table item in the plurality of to-be-compressed flow table items, and replacing the first key value segment of the key value part of the to-be-compressed flow table item with the third key value segment to obtain a compressed flow table item corresponding to the to-be-compressed flow table item, so as to obtain a plurality of compressed flow table items corresponding to the to-be-compressed flow table items one by one. Thus, by using the flow table compression method shown in fig. 1, the data frame processing flow shown in fig. 2 compresses only the first key segment of the key value part of each to-be-compressed flow table item in the plurality of to-be-compressed flow table items, and the domain segment with the longest length or the domain segment with the largest bit width can be selected as the first key segment in combination with the first segmentation strategy, so that the flow table compression is realized while the original characterization capability of the to-be-compressed flow table item to the characteristic information is maintained as much as possible, thereby being beneficial to reducing the flow table collision probability in the subsequent flow and being beneficial to improving the overall efficiency; besides, the first register table is generated on the hardware level besides the compression on the software level to save the storage space, so that the bit width of the reduced stream table entry is further utilized, the storage space of the original stream table is saved, and meanwhile, the high efficiency and the correctness of stream table matching are realized. Thus, the data frame processing flow shown in fig. 2 reduces the resources and cost occupied by the flow table, and reduces the delay and power consumption of data frame processing.
Referring to fig. 1 and 2, in one possible implementation, the matching of the flow table based on the first register table includes: and performing first re-matching based on third key value fragments stored in each of the one or more register table entries to obtain a first re-matching result, and performing second re-matching based on second key value fragments stored in each of register table entries associated with the first re-matching result in the one or more register table entries to obtain a flow table matching result. As mentioned above, the number of the one or more register entries is not less than the number of compressed stream entries of the plurality of compressed stream entries having non-repeating third key value segments. In this way, it is ensured that all possible values of the third key value segment obtained by compression correspond to independent register entries, respectively. Further, a first re-match is performed based on the third key value segments stored by each of the one or more register entries, which means that if only one register entry is hit, which means that the register entry of the one or more register entries associated with the first re-match result is a single register entry, the result of the second re-match must be that register entry. If more than one register entry is hit, which means that the register entry associated with the first re-match result in the one or more register entries is more than one register entry, then a second re-match is performed to obtain a stream table match result. Therefore, through the first re-matching and the second re-matching, the advantage of high reading speed of the first register table on the hardware level is utilized, and the high efficiency and the correctness of the matching of the flow table are realized while the storage space of the original flow table is saved.
In one possible implementation, the flow table matching based on the first register table includes: and matching based on the key value parts stored in the one or more register table entries respectively to obtain a flow table matching result. Therefore, the key value part is utilized for matching, so that the storage space of the original flow table is saved, and the high efficiency and the correctness of the flow table matching are realized.
In one possible implementation, the number of the one or more register entries is equal to the number of compressed stream entries having non-repeating third key value segments among the plurality of compressed stream entries, the plurality of compressed stream entries being stored in the one or more register entries, respectively, in accordance with the respective third key value segments. As mentioned above, the number of the one or more register entries is not less than the number of compressed stream entries of the plurality of compressed stream entries having non-repeating third key value segments. In this way, it is ensured that all possible values of the third key value segment obtained by compression correspond to independent register entries, respectively. Here, the number of the one or more register entries is equal to the number of compressed stream entries having non-repeating third key value segments among the plurality of compressed stream entries, and the plurality of compressed stream entries are stored in the one or more register entries, respectively, in accordance with the respective third key value segments. Thus, the utilization rate of the storage resources is improved.
In one possible implementation, the number of the one or more register entries is equal to the number of the plurality of compressed stream entries, which are stored in one-to-one correspondence to the one or more register entries. As mentioned above, the number of the one or more register entries is not less than the number of compressed stream entries of the plurality of compressed stream entries having non-repeating third key value segments. In this way, it is ensured that all possible values of the third key value segment obtained by compression correspond to independent register entries, respectively. Further, considering that a flow table update, a new flow table issue may change the number of compressed flow entries having non-repeating third key value segments in the plurality of compressed flow entries, for example, resulting in an increase in the number of compressed flow entries having non-repeating third key value segments, which in turn results in the need for more register entries. To this end, the number of the one or more register entries may be made equal to the number of the plurality of compressed stream entries, so that the requirements of stream table updates may be better adapted.
In one possible implementation, the number of the one or more register entries is equal to a power of 2 and an exponent of the bit width of the third length, and the plurality of compressed post-flow entries are stored in the one or more register entries, respectively. As mentioned above, the number of the one or more register entries is not less than the number of compressed stream entries of the plurality of compressed stream entries having non-repeating third key value segments. In this way, it is ensured that all possible values of the third key value segment obtained by compression correspond to independent register entries, respectively. Further, data with a certain bit width, identified in binary, is analyzed from an informatics perspective, and the numerical range of the data is determined by the bit width. For example, 8 bits of data may have a power of 8 value of 2, i.e., there is a maximum of 2 power of 8 possible cases. The maximum capability of the third key value segmentation for characterizing feature information may be embodied as a exponent of 2 and a exponent of the bit width of the third length. The number of said one or more register entries may thus be set equal to a power of 2 as a base and of an exponent as a bit width of said third length, such that said number of one or more register entries is sufficient to fully exploit the maximum capability of the third key value segmentation for characterizing feature information,
The subsequent flow table updating does not cause the need of adding new register table entries, so that the original characterization capability of the flow table entries to be compressed on the characteristic information is reserved as much as possible while the flow table compression is realized, thereby being beneficial to reducing the flow table conflict probability in the subsequent flow and being beneficial to improving the overall efficiency.
In one possible embodiment, the first flow table has a depth that is an amount of the plurality of flow entries to be compressed that is at least two orders of magnitude higher than an order of magnitude of a width of the first flow table, the width of the first flow table being a length of each of the plurality of flow entries to be compressed. As described above, the difference between the characteristic information represented by the key value portion of each of the plurality of compressed flow entries and the characteristic information represented by the key value portion of the corresponding to-be-compressed flow entry of the plurality of to-be-compressed flow entries is substantially the difference between the third key value segment and the first key value segment. The saved flow table storage space is equal to the flow table depth times the reduced bit width of each flow table entry. The flow table depth is the number of flow table entries and the flow table width is the total bit width of the key portion of each flow table entry. The benefit of saving the storage resources is significant when the order of depth of the first flow table is at least two orders of magnitude higher than the order of width of said first flow table, and the performance improvement by saving the storage resources is more pronounced as the difference between the orders of depth of the first flow table and the order of width of said first flow table is greater.
In one possible embodiment, the proportion of the second length relative to the first length is between twenty percent and fifty percent. The key portion of the compressed entry includes a third key segment and a second key segment. This means that the characteristic information represented by the key value part of each of the plurality of compressed stream entries is constituted by a third key value segment obtained by compression and a second key value segment which is not compressed, and thus differs from the corresponding one of the plurality of stream entries to be compressed only by the first key value segment. In general, the third key value segmentation is sufficient to cover the need for characterizing feature information for a plurality of flow entries to be compressed contained in the first flow table to be compressed. That is, from an informatics perspective, the compressed flow entries may lose little or no characterization capability of the feature information than the corresponding flow entries to be compressed, but may decrease from the second length of the first key value segment to the third length of the third key value segment, i.e., each compressed flow entry saves a certain bit width than the corresponding flow entry to be compressed, thus appearing to save a considerable amount of memory space in the millions of flow tables as a whole. The ratio of the second length, i.e. the length of the first key segment, to the first length, i.e. the length of the key portion of the stream entry to be compressed, if this ratio is too low, it means that the ratio of the second length to the first length is too high, which makes it difficult to embody the beneficial effect of saving storage space by compressing the first key segment, but if this ratio is too high, it means that the ratio of the second length to the first length is too high, which may result in too great a loss in the characterizing capacity of the feature information due to compression and thus in an increased stream table collision probability. For this reason, a balance between saving storage space and avoiding loss of characterization capability of the characteristic information needs to be considered. The ratio of the second length to the first length may be set to be between twenty and fifty percent, so that, on the one hand, memory space is saved by compressing the first key-value segment and, on the other hand, a loss of characterizing capability of the feature information due to compression is avoided.
In one possible implementation, the first segmentation strategy includes: and determining that the key value segment of a specific bit number continuously distributed from a specific position in the key value part of the to-be-compressed flow table item is the first key value segment, or determining that the specific domain segment in a plurality of domain segments in the key value part of the to-be-compressed flow table item is the first key value segment. In some embodiments, the plurality of field segments in the key portion of the to-be-compressed flow table entry corresponds to five-tuple information, and the specific field segment is a field segment, a source address field segment, or a destination address field segment with the largest bit width in the five-tuple information. And uniformly dividing each flow table item to be compressed into a first key value segment and a second key value segment by using a first segmentation strategy. The first segmentation strategy represents a specific partitioning approach. The key segments of a specific number of bits continuously distributed from a specific position in the key portion of the stream entry to be compressed are the first key segments, for example, 128-bit key segments continuously distributed from the head or from the tail are the first key segments. The first segmentation policy may be a composition of reference five-tuple information, with certain domain segments, such as the longest domain segment, being segmented as a first key and other domain segments being segmented as a second key. For example, a source address field segment or a destination address field segment may be segmented as the first key value. It should be understood that the second key segment is the remaining key portion of the key portion other than the first key segment, and thus, each of the plurality of flow entries to be compressed is composed of the first key segment and the second key segment after being divided based on the first segmentation policy. Although the first flow table to be compressed may contain millions of orders of magnitude of flow entries to be compressed, the first key segments of the respective key portions of these flow entries to be compressed may not vary much. For example, the five-tuple information is used as the characteristic information of the key part, the source address field in the five-tuple information is used as the first key segment, and the source address field is used for matching the source of the data stream, that is, the network protocol address of the party sending the data stream. Thus, there may be a certain number of first key segments of the key portion of the flow table entry to be compressed in the first flow table to be compressed that correspond to the same network protocol address, e.g. from the same computer or computing node. Thus, the domain segment with the longest length or the domain segment with the greatest bit width can be used as the first key segment, and the maximum capability of the first key segment for characterizing the feature information is generally not fully utilized, so that a larger compression space exists. The domain segment with the longest length or the domain segment with the largest bit width is used as the first key value segment, and the first key value segment is compressed to obtain the third key value segment, and the third length of the third key value segment is smaller than the second length of the first key value segment, so that the maximum capability of the third key value segment for representing the characteristic information can be more fully utilized.
In one possible implementation, the first compression algorithm is based on content addressable elements, hash computations, register name mappings or register address mappings. The first compression algorithm may represent any suitable algorithm, model, map, etc. that has the effect of shortening the original data length.
In one possible implementation, the first register table is disposed in a ternary content addressable memory. In this way, efficiency can be improved with tri-state content addressable memories.
Fig. 3 is a schematic structural diagram of a computing device provided in an embodiment of the present application, where the computing device 300 includes: one or more processors 310, a communication interface 320, and a memory 330. The processor 310, the communication interface 320 and the memory 330 are interconnected by a bus 340. Optionally, the computing device 300 may further include an input/output interface 350, where the input/output interface 350 is connected to an input/output device for receiving parameters set by a user, etc. The computing device 300 can be used to implement some or all of the functionality of the device embodiments or system embodiments described above in the embodiments of the present application; the processor 310 can also be used to implement some or all of the operational steps of the method embodiments described above in the embodiments of the present application. For example, specific implementations of the computing device 300 performing various operations may refer to specific details in the above-described embodiments, such as the processor 310 being configured to perform some or all of the steps of the above-described method embodiments or some or all of the operations of the above-described method embodiments. For another example, in the embodiment of the present application, the computing device 300 may be used to implement some or all of the functions of one or more components in the apparatus embodiments described above, and the communication interface 320 may be used in particular for communication functions and the like necessary for implementing the functions of these apparatuses, components, and the processor 310 may be used in particular for processing functions and the like necessary for implementing the functions of these apparatuses, components.
It should be appreciated that the computing device 300 of fig. 3 may include one or more processors 310, and that the plurality of processors 310 may cooperatively provide processing power in a parallelized connection, a serialized connection, a serial-parallel connection, or any connection, or the plurality of processors 310 may constitute a processor sequence or processor array, or the plurality of processors 310 may be separated into primary and secondary processors, or the plurality of processors 310 may have different architectures such as employing heterogeneous computing architectures. In addition, the computing device 300 shown in FIG. 3, the associated structural and functional descriptions are exemplary and not limiting. In some example embodiments, computing device 300 may include more or fewer components than shown in fig. 3, or combine certain components, or split certain components, or have a different arrangement of components.
Processor 310 may take many specific forms, for example, processor 310 may include one or more combinations of a central processing unit (central processing unit, CPU), a graphics processor (graphic processing unit, GPU), a neural network processor (neural-network processing unit, NPU), a tensor processor (tensor processing unit, TPU), or a data processor (data processing unit, DPU), and embodiments of the present application are not limited in detail. Processor 310 may also be a single-core processor or a multi-core processor. The processor 310 may be formed by a combination of a CPU and a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), general-purpose array logic (generic array logic, GAL), or any combination thereof. The processor 310 may also be implemented solely with logic devices incorporating processing logic, such as an FPGA or digital signal processor (digital signal processor, DSP) or the like. The communication interface 320 may be a wired interface, which may be an ethernet interface, a local area network (local interconnect network, LIN), etc., or a wireless interface, which may be a cellular network interface, or use a wireless local area network interface, etc., for communicating with other modules or devices.
The memory 330 may be a nonvolatile memory such as a read-only memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an electrically Erasable EPROM (EEPROM), or a flash memory. Memory 330 may also be volatile memory, which may be random access memory (random access memory, RAM) used as external cache. By way of example, and not limitation, many forms of RAM are available, such as Static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous DRAM (SLDRAM), and direct memory bus RAM (DR RAM). Memory 330 may also be used to store program code and data such that processor 310 invokes the program code stored in memory 330 to perform some or all of the operational steps of the method embodiments described above, or to perform corresponding functions in the apparatus embodiments described above. Moreover, computing device 300 may contain more or fewer components than shown in FIG. 3, or may have a different configuration of components.
Bus 340 may be a peripheral component interconnect express (peripheral component interconnect express, PCIe) bus, or an extended industry standard architecture (extended industry standard architecture, EISA) bus, a unified bus (Ubus or UB), a computer quick link (compute express link, CXL), a cache coherent interconnect protocol (cache coherent interconnect for accelerators, CCIX), or the like. The bus 340 may be divided into an address bus, a data bus, a control bus, and the like. The bus 340 may include a power bus, a control bus, a status signal bus, and the like in addition to a data bus. But is shown with only one bold line in fig. 3 for clarity of illustration, but does not represent only one bus or one type of bus.
The method and the device provided in the embodiments of the present application are based on the same inventive concept, and because the principles of solving the problems by the method and the device are similar, the embodiments, implementations, examples or implementation of the method and the device may refer to each other, and the repetition is not repeated. Embodiments of the present application also provide a system that includes a plurality of computing devices, each of which may be structured as described above. The functions or operations that may be implemented by the system may refer to specific implementation steps in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein.
Embodiments of the present application also provide a computer-readable storage medium having stored therein computer instructions which, when executed on a computer device (e.g., one or more processors), may implement the method steps in the above-described method embodiments. The specific implementation of the processor of the computer readable storage medium in executing the above method steps may refer to specific operations described in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein again.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. The present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The present application may take the form of a computer program product embodied on one or more computer-usable storage media having computer-usable program code embodied therein. The computer program product includes one or more computer instructions. When loaded or executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line), or wireless (e.g., infrared, wireless, microwave, etc.). Computer readable storage media can be any available media that can be accessed by a computer or data storage devices, such as servers, data centers, etc. that contain one or more collections of available media. Usable media may be magnetic media (e.g., floppy disks, hard disks, tape), optical media, or semiconductor media. The semiconductor medium may be a solid state disk, or may be a random access memory, flash memory, read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, register, or any other form of suitable storage medium.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. Each flow and/or block of the flowchart and/or block diagrams, and combinations of flows and/or blocks in the flowchart and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments. It will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. The steps in the method of the embodiment of the application can be sequentially adjusted, combined or deleted according to actual needs; the modules in the system of the embodiment of the application can be divided, combined or deleted according to actual needs. Such modifications and variations of the embodiments of the present application are intended to be included herein, if they fall within the scope of the claims and their equivalents.

Claims (14)

1. A method of flow table compression, the method comprising:
determining a first flow table to be compressed, wherein the first flow table comprises a plurality of flow table items to be compressed, each flow table item to be compressed in the plurality of flow table items to be compressed comprises a key value part and an action part, the key value part is used for matching the flow table item associated with the flow table item to be compressed, the action part is used for acting the flow table associated with the flow table item to be compressed, and the key value part of each flow table item to be compressed in the plurality of flow table items to be compressed is of a first length;
For each of the plurality of to-be-compressed flow entries, determining a first key segment and a second key segment of a key portion of the to-be-compressed flow entry based on a first segmentation strategy, the second key segment being a remaining key portion of the key portion other than the first key segment, the first key segments of the key portions of each of the plurality of to-be-compressed flow entries being a second length;
for each of the plurality of to-be-compressed flow entries, compressing a first key value segment of a key value part of the to-be-compressed flow entry based on a first compression algorithm to obtain a third key value segment, and then replacing the first key value segment of the key value part of the to-be-compressed flow entry with the third key value segment to obtain a compressed flow entry corresponding to the to-be-compressed flow entry, thereby obtaining a plurality of compressed flow entries corresponding to the plurality of to-be-compressed flow entries one by one, wherein the third key value segment of the key value part of each of the plurality of compressed flow entries is of a third length, and the third length is smaller than the second length;
generating a first register table based on the plurality of compressed stream entries, wherein the first register table comprises one or more register entries, the number of the one or more register entries is not less than the number of compressed stream entries with non-repeated third key value segments in the plurality of compressed stream entries, and the first register table is used for replacing the first stream table to perform stream table matching and stream table actions associated with the first stream table.
2. The method of flow table compression of claim 1, wherein the flow table matching based on the first register table comprises: and performing first re-matching based on third key value fragments stored in each of the one or more register table entries to obtain a first re-matching result, and performing second re-matching based on second key value fragments stored in each of register table entries associated with the first re-matching result in the one or more register table entries to obtain a flow table matching result.
3. The method of flow table compression of claim 1, wherein the flow table matching based on the first register table comprises: and matching based on the key value parts stored in the one or more register table entries respectively to obtain a flow table matching result.
4. The method of stream table compression according to claim 1, wherein the number of the one or more register entries is equal to the number of compressed stream entries having non-repeating third key value segments among the plurality of compressed stream entries, the plurality of compressed stream entries being stored in the one or more register entries, respectively, in accordance with the respective third key value segments.
5. The method of flow table compression of claim 1, wherein the number of the one or more register entries is equal to the number of the plurality of compressed flow entries, the plurality of compressed flow entries being stored in one-to-one correspondence to the one or more register entries.
6. The method of stream table compression according to claim 1, wherein the number of the one or more register entries is equal to a power of 2 and an exponent of the bit width of the third length, the plurality of compressed stream entries being stored in the one or more register entries, respectively.
7. The method of flow table compression of claim 1, wherein the first flow table has a depth that is an amount of the plurality of flow table entries to be compressed that is at least two orders of magnitude higher than an order of magnitude of a width of the first flow table that is a length of each of the plurality of flow table entries to be compressed.
8. The method of flow gauge compression of claim 1, wherein the proportion of the second length to the first length is between twenty percent and fifty percent.
9. The method of flow table compression of claim 1, wherein the first segmentation strategy comprises: and determining that the key value segment of a specific bit number continuously distributed from a specific position in the key value part of the to-be-compressed flow table item is the first key value segment, or determining that the specific domain segment in a plurality of domain segments in the key value part of the to-be-compressed flow table item is the first key value segment.
10. The method according to claim 9, wherein the plurality of field segments in the key portion of the flow entry to be compressed correspond to five-tuple information, and the specific field segment is a field segment, a source address field segment, or a destination address field segment having the largest bit width in the five-tuple information.
11. The method of claim 1, wherein the first compression algorithm is based on content addressable elements, hash computations, register name maps, or register address maps.
12. The method of stream table compression according to claim 1, wherein the first register table is disposed in a ternary content addressable memory.
13. A computer device, characterized in that it comprises a memory, a processor and a computer program stored on the memory and executable on the processor, which processor implements the method according to any of claims 1 to 12 when executing the computer program.
14. A computer readable storage medium storing computer instructions which, when run on a computer device, cause the computer device to perform the method of any one of claims 1 to 12.
CN202410014653.9A 2024-01-05 2024-01-05 Stream table compression method, computer equipment and medium Active CN117520607B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410014653.9A CN117520607B (en) 2024-01-05 2024-01-05 Stream table compression method, computer equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410014653.9A CN117520607B (en) 2024-01-05 2024-01-05 Stream table compression method, computer equipment and medium

Publications (2)

Publication Number Publication Date
CN117520607A true CN117520607A (en) 2024-02-06
CN117520607B CN117520607B (en) 2024-04-19

Family

ID=89764935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410014653.9A Active CN117520607B (en) 2024-01-05 2024-01-05 Stream table compression method, computer equipment and medium

Country Status (1)

Country Link
CN (1) CN117520607B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888165A (en) * 2015-12-15 2017-06-23 中国科学院沈阳自动化研究所 A kind of industrial SDN data transmission method and system for supporting Header compression
WO2023279964A1 (en) * 2021-07-08 2023-01-12 华为技术有限公司 Data compression method and apparatus, and computing device and storage medium
CN115941598A (en) * 2023-03-09 2023-04-07 珠海星云智联科技有限公司 Flow table semi-uninstalling method, device and medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888165A (en) * 2015-12-15 2017-06-23 中国科学院沈阳自动化研究所 A kind of industrial SDN data transmission method and system for supporting Header compression
WO2023279964A1 (en) * 2021-07-08 2023-01-12 华为技术有限公司 Data compression method and apparatus, and computing device and storage medium
CN115941598A (en) * 2023-03-09 2023-04-07 珠海星云智联科技有限公司 Flow table semi-uninstalling method, device and medium

Also Published As

Publication number Publication date
CN117520607B (en) 2024-04-19

Similar Documents

Publication Publication Date Title
US20190266193A1 (en) Data processing method for bloom filter, and bloom filter
CN106326475B (en) Efficient static hash table implementation method and system
EP4350527A1 (en) Data compression method and apparatus, and computing device and storage medium
WO2024007844A1 (en) Packet forwarding method and apparatus, computing device, and offload card
CN115941598B (en) Flow table semi-unloading method, equipment and medium
CN111209341B (en) Data storage method, device, equipment and medium of block chain
CN111949681A (en) Data aggregation processing device and method and storage medium
CN112667636B (en) Index establishing method, device and storage medium
CN117520607B (en) Stream table compression method, computer equipment and medium
CN114742035B (en) Text processing method and network model training method based on attention mechanism optimization
CN115484233A (en) Method, device, equipment and medium for forwarding link aggregation message in digital communication chip
CN115098040A (en) Data processing method, device and equipment based on FPGA and storage medium
CN113934767A (en) Data processing method and device, computer equipment and storage medium
CN117555903B (en) Data processing method, computer equipment and medium
CN112612925B (en) Data storage method, data reading method and electronic equipment
CN116721684B (en) Ternary content addressing memory, addressing method and chip thereof
CN113076178B (en) Message storage method, device and equipment
US20240088913A1 (en) Graph data compression method and apparatus
CN116340246B (en) Data pre-reading method and medium for direct memory access read operation
CN113726342B (en) Segmented difference compression and inert decompression method for large-scale graph iterative computation
CN117857447A (en) Rule processing and rule searching method, device, equipment and readable storage medium
CN117527731B (en) Packet editing method, computer equipment and medium for hardware unloading
CN113342275B (en) Method, apparatus and computer readable storage medium for accessing data at block link points
US20220113969A1 (en) Techniques for use of a large scale multi-literal matching algorithm
CN109165220B (en) Data matching calculation method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant