CN108337172B - Large-scale OpenFlow flow table accelerated searching method - Google Patents

Large-scale OpenFlow flow table accelerated searching method Download PDF

Info

Publication number
CN108337172B
CN108337172B CN201810087786.3A CN201810087786A CN108337172B CN 108337172 B CN108337172 B CN 108337172B CN 201810087786 A CN201810087786 A CN 201810087786A CN 108337172 B CN108337172 B CN 108337172B
Authority
CN
China
Prior art keywords
flow table
flow
entry
sram
tcam
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.)
Expired - Fee Related
Application number
CN201810087786.3A
Other languages
Chinese (zh)
Other versions
CN108337172A (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.)
Changsha University of Science and Technology
Original Assignee
Changsha University of Science and Technology
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 Changsha University of Science and Technology filed Critical Changsha University of Science and Technology
Priority to CN201810087786.3A priority Critical patent/CN108337172B/en
Publication of CN108337172A publication Critical patent/CN108337172A/en
Application granted granted Critical
Publication of CN108337172B publication Critical patent/CN108337172B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention provides a large-scale OpenFlow flow table hierarchical storage architecture and an accelerated search method, wherein the large-scale OpenFlow flow table hierarchical storage architecture comprises the following steps: the hierarchical storage architecture is a hierarchical acceleration flow table architecture and comprises a TCAM active flow surface layer, an SRAM silent flow surface layer and a DRAM flow table storage layer. The invention also provides an accelerated searching method based on the hierarchical storage architecture. According to the hierarchical acceleration flow table architecture provided by the invention, firstly, a flow table hierarchical storage system combining TCAM and SRAM is established according to the batch arrival characteristic of data packets in a network, so that the rapid flow table search of most of the data packets is realized; then based on the non-uniformity of the flow table entry corresponding to the network data packet flow and the mask corresponding to the flow table entry, applying an MA1 heuristic to adaptively adjust the mask sequence so as to accelerate the mask successful detection speed of the subsequent data packet; and predicting a mask failure detection result by means of a BF filter by using the characteristic that the mask is frequently failed in data packet detection, thereby avoiding the corresponding flow table search traversal process and improving the search efficiency.

Description

Large-scale OpenFlow flow table accelerated searching method
Technical Field
The invention relates to a flow table storage architecture and a lookup method, in particular to a large-scale OpenFlow flow table hierarchical storage architecture and an accelerated lookup method based on the hierarchical storage architecture.
Background
Software Defined Networking (SDN) is a novel network architecture, and the improvement of network flexibility is realized by decoupling data and a control plane, and an SDN controller uniformly formulates and issues a flow rule through a southbound protocol interface, and the flow rule is delivered to an SDN switch of the data plane to be stored in a flow table form, so as to guide the processing of network packets.
The OpenFlow protocol is one of southbound interface protocols which are most widely applied at present, a network protocol stack is flattened, important fields of headers of network protocols of all layers are used as matching fields of flow table items, wildcards are supported to realize combination of any fields, and fine-grained flexible management of network flows is realized. The OpenFlow flow table is a key technology for helping to flexibly manage fine-grained network flow, and is one of core components of an OpenFlow switching device, and storage and search of the OpenFlow flow table have a critical influence on data switching performance.
To realize fast forwarding of network packets, OpenFlow hardware switches often use a Ternary Content Addressable Memory (TCAM) to store a flow table. Because the TCAM supports the tri-state data query with wildcards, the TCAM has the capability of searching the whole data set in parallel and can output the search result in one time period. However, TCAM has high single-bit cost, large energy consumption, low integration level, and limited capacity, and cannot satisfy the OpenFlow flow table storage at the present stage under the premise of certain cost and energy consumption limitation.
The following problems also easily occur in the storage and search of the existing OpenFlow flow table:
1. OpenFlow flow table storage aspect
When an OpenFlow network is deployed in a large-scale network such as a wide area network, a data center, or the like, the OpenFlow flow table faces a storage problem. The OpenFlow flow table storage problem can be summarized as: how to choose the storage medium and how to guarantee the scalability of the architecture.
(1) How to select the storage medium, namely how to select a cost-effective storage device to store the OpenFlow flow table. The Memory devices commonly used for storing the OpenFlow stream table include Ternary Content Addressable Memory (TCAM), Static Random Access Memory (SRAM), and Dynamic Random Access Memory (DRAM). The TCAM can support multi-state search of linear rate, but has limited storage capacity, large energy consumption, high cost and low integration, thereby limiting the use scale of the TCAM. The SRAM lookup is slower than the TCAM, only supports accurate lookup, but has lower cost and is suitable for storing flow tables with larger scale. DRAM lookup rates are slower but storage capacity is more abundant.
(2) How to guarantee scalability of the architecture: i.e. the memory architecture should support flexible flow table operations. Common flow table operations are to add a flow table entry, delete a flow table entry, and replace a flow table entry. The operation of adding a flow entry newly requires that the overhead of issuing a flow rule from the OpenFlow controller to the OpenFlow switch to store the flow entry is small, the speed is high, and classification processing is performed when necessary, so that the flow entry is classified and stored in different storage media. The operation of deleting the flow table entry requires that when the lifetime of a certain flow table entry is invalid, the storage framework needs to delete in time, so that the validity and capacity of the flow table storage are guaranteed to be remained. The flow table entry replacement operation is to replace part of the unsuitable flow table entries with new flow table entries or efficient flow table entries when the storage capacity of a certain storage medium is insufficient or the storage efficiency needs to be improved, so as to ensure the storage of the efficient flow table entries.
2. OpenFlow flow table lookup aspects
OpenFlow introduces generic lookup for efficient management of network flows. Wildcard lookup is different from precision lookup, and precision lookup can directly perform multiple hash lookups by a hash function, and for a flow table supporting wildcard lookup, as a large amount of wildcard information is carried in the flow table, matching cannot be performed directly by adopting a hash lookup mode, and matching needs to be performed by using a memory with polymorphic lookup capability, such as a TCAM, or designing an additional lookup structure for a memory without the capability, such as an SRAM.
At present, the mainstream storage scheme of the OpenFlow flow table is to combine a TCAM and an SRAM to store the flow table, the TCAM stores a flow table entry with a wildcard, fuzzy matching search of any field of the flow table is supported, the SRAM stores an accurate flow table entry, and a hash function is used to realize accurate matching search of all fields.
As shown in fig. 1, a scheme i provides a mainstream storage searching scheme, and the searching process is as follows: when a certain data packet pi reaches the OpenFlow switch, analyzing and extracting an important field in the packet header of the certain data packet pi, calculating a flow identifier fid corresponding to the important field, simultaneously searching in the TCAM and the SRAM in parallel, if the flow entries in the TCAM and the SRAM are matched successfully at the same time, submitting the flow entries to an arbiter for arbitration of a search result, and executing an action set in the corresponding flow entry according to the arbitration result; otherwise, the switch encapsulates the packet information into a flow installation request message to the SDN controller. And after learning to generate a new flow rule, the SDN controller issues the new flow rule to the OpenFlow switch and adds the new flow rule to the flow table. Meanwhile, the controller can also actively issue the flow rule and update the flow table entry in the switch.
The searching scheme indicates that the TCAM is used for storing the flow distribution, the SRAM is used for storing the accurate flow table, the storage pressure of the flow table can be relieved to a certain degree, and meanwhile, the flow table searching efficiency is guaranteed to a certain degree. However, in the face of frequent data transmission of a large-scale network, the controller will issue more wildcard flow tables to replace multiple accurate flow tables, so that the number of the wildcard flow tables is increased dramatically, and the TCAM stores the flow tables supporting wildcard again faces the storage problem.
Fig. 2 shows another storage lookup scheme combining a TCAM and an SRAM storage flow table, in which an SRAM is divided into a plurality of hash buckets, and a plurality of lookup units are designed in each hash bucket, and each lookup unit stores a flow identification fingerprint uniquely identifying a certain flow. Meanwhile, because the fingerprint information has a conflict problem, the flow rule with the fingerprint conflict is stored in another SRAM or TCAM, so that the fingerprint matching conflict is avoided. The search process is similar as follows: when a certain data packet pi reaches the OpenFlow switch, an important field in the packet header of the certain data packet pi is analyzed and extracted, a corresponding flow identifier fid is calculated, then, a hash function is used for carrying out hash processing on the fid, the position of the data packet in a main table is obtained, and another hash function is used for processing the flow identifier fingerprint obtained by the fid to carry out flow mark matching. Thereby obtaining and executing a corresponding set of flow table entry actions. And if the primary table fails to search, searching the auxiliary table, if the auxiliary table fails to search, searching the TCAM, and if the TCAM fails to search, requesting the switch to send the flow rule.
The lookup scheme of scheme two indicates that a plurality of SRAMs are used as main flow table storage places, and the TCAM is only used as a storage place for storing the SRAM flow table after fingerprint conflict occurs, so that the flow table storage pressure can be cached to a certain extent, and the flow table storage cost is saved. However, the method only optimizes the storage and search of the accurate flow table, and cannot solve the flow table scene supporting wildcards, and the TCAM is used as the second-stage and third-stage flow table search structure, so that the search advantages of the TCAM cannot be fully utilized, and the search rate can be further improved.
At present, there are also many reports on optimizing storage and search of an Openflow flow table at home and abroad:
comparison document 1: CN105591914A discloses a table lookup method for Openflow flow tables, on a control plane, each level of Openflow flow tables is divided into an accurate matching flow table and at least one classification matching flow table according to a keyword domain, according to the keyword domain of flow table configuration information, the flow table configuration information is issued as a table entry to the accurate matching flow table or the classification matching flow table, on a forwarding plane, table lookup is performed on the accurate matching flow table by using all keywords of a message, and when a matched table entry is found, message processing is performed according to the function of the table entry; and when the matched table entry is not found, extracting keywords of different keyword fields of the message to perform parallel table lookup on the at least one classified matching flow table, dynamically establishing the table entry of the accurate matching flow table according to the table lookup result, and performing message processing according to the function of the table entry.
Comparison document 2: CN103368851B discloses an Openflow flow table storage optimization method based on resource reuse, which relates to an Openflow table in a software defined network, and includes the steps of: s1, adding a mask identification field and a range identification field in a table entry of an Openflow flow table, wherein only indexes capable of retrieving a counter and an operation/instruction are stored in the table entry of the flow table from a mask identification index to a mask table and from a range identification index to a range table; s2, after receiving the command of adding the table entry, the forwarding equipment traverses the existing table entries in the current flow table, analyzes the correlation between the table entry to be added and each existing table entry, merges the existing table entry and the table entry with the maximum correlation degree to be added, writes the merged table entry into the flow table, and deletes the existing table entry; and if the association degree is 0, the table entry to be added is established in the flow table as a new table entry.
Disclosure of Invention
The invention aims to provide a large-scale OpenFlow flow table hierarchical storage architecture and a method for accelerating searching.
In order to solve the technical problems, the invention adopts the following technical scheme:
the invention analyzes the storage characteristics of the common flow table storage medium of the OpenFlow switch[1]And traffic distribution characteristics in OpenFlow networks[2]And (6) obtaining.
First, the present invention provides a large-scale OpenFlow Flow table Hierarchical storage architecture, where the Hierarchical storage architecture is a Hierarchical Accelerated Flow table architecture (hereinafter referred to as "hand"), and the Hierarchical Accelerated Flow table architecture includes three layers: an active flow surface layer, a silent flow surface layer and a flow table storage layer;
the active flow surface layer adopts TCAM as a storage medium for storing active flow table items[3]The flow identification field of (1), the flow identification field being mainly matching domain information;
the silence flow table layer adopts SRAM as a storage medium and is used for storing silence flow table items[4]The stream identification field and the index pointer of the corresponding table entry; because the SRAM does not support wildcard search, the silent flow table entries stored by the SRAM need to be classified and stored according to masks; the SRAM also stores a BF Filter (Bloom Filter), and the BF Filter can reduce the searching overhead of the SRAM flow table;
the flow table storage layer adopts DRAM as a storage medium and is used for respectively storing the content fields of the active flow table and the silent flow table; the size of a storage space of a content field of an active flow table is fixed, and the number of entries is equal to that of TCAMs (ternary content addressable memory) so as to support direct mapping between TCAM identification fields and DRAM content fields; the silent flow entry content field is stored in a chain structure to support the dynamic adjustment of the flow entry.
Further, the air conditioner is provided with a fan,
the content field of the flow table in the DRAM includes: counters, action tables, and Cookies values, etc.
Further, the air conditioner is provided with a fan,
the BF filter includes: CBF filter[5](Counting Bloom Filter, technical Bloom Filter), DCF Filter (Dynamic Count Filter), SBF Filter (Spectral Bloom Filter ).
Further, the air conditioner is provided with a fan,
the BF filter is replaced with a different family of entropy filters.
For ease of understanding and description herein, reference will now be made to the following terms:
1. storage characteristics of the storage medium: common flow table storage media of the OpenFlow switch include: TCAM, SRAM, DRAM, and the like. The memory lookup characteristics of these several media are as follows: (1) the TCAM supports a generic lookup manner, has the capability of concurrently looking up the whole data set, and can output a lookup result in one clock cycle, so that the TCAM is commonly used for storing and looking up an OpenFlow flow table. However, TCAM search is energy-consuming, expensive, and low in integration level, resulting in limited storage capacity. (2) The SRAM has high access speed, and an address addressing mode is adopted to support quick and accurate content search. (3) DRAM also uses address addressing, which results in a relatively slow search rate due to the need to continually refresh the circuit to maintain the data content. However, the DRAM is inexpensive and sufficient in capacity to store the content information of the stream table.
2. Traffic distribution characteristics in the network: the SDN is a novel network architecture, and network user behaviors and network application characteristics are not changed, so that the network traffic distribution characteristics are not influenced. With respect to network flows, there are multiple manifestations of network traffic locality, including: (a) from the perspective of traffic distribution laws, most of the traffic tends to be distributed in a few flows. Therefore, the network flow can be divided into a long flow and a short flow, the long flow occupies a small amount of data but occupies a large amount of data, and the short flow occupies a large amount of data but occupies a small amount of data; (b) in the time dimension, many data packets in the same stream are not uniformly distributed, but show the characteristic of batch-concentrated arrival; (c) from a short time horizon, there are typically fewer active flows, while silent flows tend to be more numerous, and long flows may toggle repeatedly between active and silent states.
3. Active flow table entry: in a short period, the data packet is dense, and the corresponding flow table entry enters an active state, namely called an active flow table entry.
4. Silent flow table entry: in a short period, the data packet reaches sparseness, and the corresponding flow table entry enters a silent state, namely called a silent flow table entry.
5. A CBF filter: CBF Filter (Counting Bloom Filter), a variant of BF Filter (Bloom Filter), is commonly used to solve the membership problem. In the invention, the CBF filter is used for judging whether the arrived data packet can hit the silent flow table entry in the SRAM or not, thereby playing the role of pre-searching.
Secondly, the invention also provides a large-scale OpenFlow flow table accelerated search method based on the large-scale OpenFlow flow table hierarchical storage architecture, which specifically comprises the following steps:
s1, establishing the hierarchical acceleration flow table architecture (HAFT) and storing the flow table, wherein the hierarchical acceleration flow table architecture comprises three layers: an active flow surface layer, a silent flow surface layer and a flow table storage layer;
the active flow surface layer adopts TCAM as a storage medium and is used for storing a flow identification field of an active flow table item, and the flow identification field is mainly matching domain information;
the silent flow table layer adopts SRAM as a storage medium and is used for storing a flow identification field and a corresponding table index pointer of a silent flow table entry; because the SRAM does not support wildcard search, the silent flow table entries stored by the SRAM need to be classified and stored according to masks; the SRAM also stores a BF filter which can reduce the searching expense of the SRAM flow table;
the flow table storage layer adopts DRAM as a storage medium and is used for respectively storing the content fields of the active flow table and the silent flow table; the size of a storage space of a content field of an active flow table is fixed, and the number of entries is equal to that of TCAMs (ternary content addressable memory) so as to support direct mapping between TCAM identification fields and DRAM content fields; the silent flow entry content field is stored in a chain structure to support the dynamic adjustment of the flow entry.
Further, the air conditioner is provided with a fan,
the content field of the flow table in the DRAM includes: counters, action tables, and Cookies values, etc.
The storage architecture of the flow table is a prerequisite requirement for flow table storage, and the flow table searching process can be determined only if the flow table storage architecture is determined.
S2, when the OpenFlow switch receives a certain network data packet p, firstly, performing header domain analysis on the network data packet p, analyzing and extracting a header important field of the network data packet p, further calculating a flow identifier fid of the network data packet, and then searching a TCAM flow table by using the flow identifier fid;
if the lookup is successful, indexing the corresponding table entry content in the DRAM flow table according to the TCAM address, performing table entry updating processing, and executing a corresponding flow table entry action set to forward the data packet; if the search fails, the SRAM prediction search stage is entered.
In the above step S2:
the header important fields of the network data packet comprise: source/destination MAC addresses, source/destination IP addresses, source/destination ports, IP protocol types, etc.;
the entry recording information of the corresponding flow entry in the DRAM includes: number of packets, most recent packet arrival time.
S3, SRAM prediction lookup
In the SRAM prediction search stage, mask masks are read from the SRAM one by onei
If the reading is successful, the flow identifier fid and the mask are usediPerforming AND operation to calculate stream keyiThen use the stream keyiInquiring a BF filter for prediction and search;
if the BF filter successfully judges that no corresponding flow table entry exists in the sub-flow table, directly reading the next mask, repeating the prediction searching process until the masks are completely read, wherein the mask reading will fail at the moment, which means that the flow tables are mismatched, and the OpenFlow switch sends a flow installation request to the SDN controller;
on the contrary, if the prediction of the BF filter fails, the SRAM flow table lookup stage is entered for further lookup of the flow table entry.
S4, SRAM flow table lookup
When the prediction of the BF filter fails,stream keyiWhen the current sub-flow table possibly exists in the SRAM sub-flow table, the sub-flow table is continuously searched; if the sub-stream table search still fails, the next mask needs to be detected continuously; otherwise, the searched DRAM pointer is used for reading the table item content, the table item is updated, and the corresponding flow table item action set is executed to forward the data packet.
At this time, whether the flow table entry enters an active state is judged, and the judgment of the active flow table entry can be realized according to the arrival condition of the data packets of the current batch, wherein the judgment mode specifically comprises the following steps:
and for each flow table entry, when a new data packet is hit, judging whether the newly arrived data packet belongs to the current batch or not according to the arrival time interval of the new data packet and the previous data packet, and updating the data of the current batch. If the newly arrived data packets belong to the current batch, further judging whether the arrival number and the average arrival rate of the data packets in the current batch meet the judgment threshold of the active flow table entry, if so, considering that the flow table entry enters an active state, and replacing the flow table entry into a TCAM flow table by adopting a replacement algorithm; otherwise, the mask is set by adopting MA1 heuristiciMove 1 position forward, and mask beforei-1Interchanging positions; and if all the masks are detected, but the corresponding flow table entry is not found, the data packet p is considered to belong to a new flow, and then the data packet information is packaged into a flow installation request message and sent to the SDN controller.
Further, the air conditioner is provided with a fan,
the method further includes step S5, inserting a flow entry, specifically as follows:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with an ADD command, a new flow table item f is created by using information carried by the message m.
If the TCAM is not full, the idle entry is directly used for storing the matching domain and the mask of the new flow entry f, and other content fields are stored into the corresponding address of the DRAM according to the TCAM address of the new flow entry f.
And if the TCAM is full, storing a new flow table entry f into the SRAM. Firstly, the content field of f is used as a node to be added into an entry content linked list of the DRAM, then the matching field of the new flow entry f and a DRAM pointer are added into a sub-flow table corresponding to the mask of the new flow entry f, and finally the BF filter corresponding to the mask of the new flow entry f is updated according to the flow keyword of the new flow entry f.
Further, the air conditioner is provided with a fan,
the method further comprises a step S6 of manually deleting the flow table entry, which specifically comprises the following steps:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with a DELETE command, the TCAM flow table needs to be searched according to a flow identifier fid of the m.
If the TCAM is successfully searched, the corresponding TCAM table item and the corresponding DRAM content need to be reset; otherwise, the key is calculated according to the flow identifier fid and the mask of the m, and the sub-flow table corresponding to the mask in the SRAM is searched according to the flow key.
If the SRAM is successfully searched, the searched SRAM flow table entry and the DRAM message content node corresponding to the pointer of the SRAM flow table entry need to be deleted, and BF filter information corresponding to the mask needs to be updated according to the flow keyword key.
Further, the air conditioner is provided with a fan,
the method further includes step S7, performing timeout scanning on the flow table, specifically as follows:
for each flow entry f, if the idle _ time or the installation _ time of the flow that has no data packet arrived recently expires:
if the flow table entry f is stored in the TCAM, directly resetting the content of the corresponding TCAM flow table entry and DRAM table entry;
if the flow table entry f is stored in the SRAM, the corresponding BF filter information is updated according to the flow key of the flow table entry f, and then the contents of the SRAM flow table entry and the DRAM table entry corresponding to the flow table entry f are deleted.
Further, the air conditioner is provided with a fan,
the BF filter includes: CBF filter, DCF filter, SBF filter.
Further, the air conditioner is provided with a fan,
the BF filter is replaced with a different family of entropy filters.
Further, the air conditioner is provided with a fan,
the MA1 heuristic in step S4 is replaced with a family MTF algorithm.
Further, the air conditioner is provided with a fan,
the replacement algorithm in step S4 is a modified LRU (least recently used) algorithm.
Further, the air conditioner is provided with a fan,
the improved LRU algorithm specifically comprises the steps of:
(a) for each flow entry, the average inter-batch interval △ t at which packets arrive is recordedavgInitial value is △ tavg=0;
(b) When a newly arrived packet does not belong to the current batch, the average inter-batch interval △ t is updatedavgIs △ tavg=α△t+(1-α)△tavgWherein α is a weight coefficient;
(c) calculating the current idle time t of the flow table entryidle=tAt present-tlob
(d) According to idle time tidleAnd average inter-batch interval △ tavgCalculating the failure rate P of the flow table entry as tidle-△tavgThe larger the value of P, the longer the current waiting time of the flow table entry or the shorter the average batch interval time, the higher the possibility of failure of the flow table entry, and therefore, when a new flow table entry is replaced into the TCAM flow table, the flow table entry with the largest value of P is replaced.
The invention has the beneficial effects that:
1. hierarchical acceleration flow table architecture
The invention adopts a layered acceleration flow table framework, and the framework firstly establishes a flow table hierarchical storage system combining TCAM and SRAM according to the batch arrival characteristic of data packets in a network, thereby realizing the quick flow table search of most data packets; then based on the non-uniformity of the mask corresponding to the flow table entry and the flow table entry corresponding to the network data packet flow, applying an MA1(Move-Ahead-One) heuristic method to adaptively adjust the mask sequence so as to accelerate the mask successful detection speed of the subsequent data packet; and then, by using the characteristic that the mask detection of the data packet is always failed, a mask failure detection result is predicted with a great probability by means of a counting type BF filter, so that the corresponding flow table search traversal process can be avoided, and the search efficiency is improved.
The hierarchical acceleration flow table architecture provided by the invention firstly establishes a flow table hierarchical storage system based on the characteristics of a flow table storage medium. Then, based on the network traffic locality and the data packet arrival model, classification and identification of the active flow and the silent flow are proposed. Therefore, a large-scale OpenFlow flow table hierarchical storage system is constructed, storage of active flows and silent flows, and identification fields and content fields of flow table items are distinguished, and effective guarantee is provided for realizing efficient searching of a large-scale flow table.
2. Flow table storage aspect:
in the existing flow table storage scheme: the general flow table is stored by using a TCAM memory, and the accurate flow table entry is stored by using an SRAM.
In the scheme of the invention: the flow table entry is not distinguished into a wildcard flow entry and a precise flow entry by the nature of the flow table, but is dynamically divided into an active flow entry and a silent flow entry according to the frequency of the access of the flow table entry. The active flow table entries are preferentially stored by adopting TCAM uniformly, the silent flow table entries are stored by using SRAM, a plurality of memory tuples, namely sub-flow tables, are divided in the SRAM, and the silent flow tables corresponding to different masks are stored. Meanwhile, because the partition is dynamic, when the silent flow table in the SRAM is in an active state, the silent flow table is replaced into the TCAM, and when the active flow table entry in the TCAM loses the active characteristic, the silent flow table entry is replaced into the SRAM by using a replacement algorithm, wherein the replacement algorithm is a modified LRU (least recently used) algorithm.
3. Flow table lookup aspects
In the existing flow table lookup scheme: the general flow table is searched by adopting a TCAM, and the accurate flow table is hashed by adopting two hash functions.
In the scheme of the invention: wildcard flow tables and exact flow tables are not distinguished, so the silent flow tables in SRAM additionally design lookup structures to assist SRAM in flow table lookup. According to the scheme, the silent flow tables are classified according to the longest prefix matching length combination, the silent flow tables are divided into a plurality of sub-flow tables, and different sub-flow tables have different masks. The matching field of the data packet can be successfully matched only if the corresponding mask and the correct flow table entry are matched. Meanwhile, the scheme adopts a parallel counting type bloom filter to carry out prediction search, namely, pre-search, so that the search overhead in the process can be reduced.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic flow chart of a mainstream storage and lookup scheme of an OpenFlow flow table in the prior art according to the present invention;
fig. 2 is a schematic flow chart of a flow table lookup scheme of an OpenFlow switch of a multi-element hash table according to the prior art;
FIG. 3 is a diagram illustrating a hierarchical acceleration flow table architecture according to an embodiment of the present invention;
FIG. 4 is a flow table lookup flow diagram under the hierarchical acceleration flow table architecture according to an embodiment of the present invention;
FIG. 5 is a flow chart diagram illustrating a flow chart insertion process in a hierarchical acceleration flow chart architecture according to an embodiment of the present invention;
FIG. 6 is a flow chart illustrating a flow chart manual deletion process under a hierarchical acceleration flow chart architecture according to an embodiment of the present invention;
fig. 7 is a schematic diagram of a flow table timeout deletion process under the hierarchical acceleration flow table architecture according to an embodiment of the present invention.
Detailed Description
The present invention will be further described with reference to the following examples and drawings, but the scope of the present invention is not limited thereto.
Example 1
As shown in fig. 3, the present embodiment provides a large-scale OpenFlow flow table hierarchical storage architecture, where the hierarchical storage architecture is a hierarchical accelerated flow table architecture (hapt), and the hierarchical accelerated flow table architecture includes three layers: an active flow surface layer, a silent flow surface layer and a flow table storage layer;
the active flow surface layer adopts TCAM as a storage medium and is used for storing a flow identification field of an active flow table item, and the flow identification field is mainly matching domain information;
the silent flow table layer adopts SRAM as a storage medium and is used for storing a flow identification field and a corresponding table index pointer of a silent flow table entry; because the SRAM does not support wildcard search, the silent flow table entries stored by the SRAM need to be classified and stored according to masks; the SRAM also stores a BF filter which can reduce the searching expense of the SRAM flow table;
the flow table storage layer adopts DRAM as a storage medium and is used for respectively storing the content fields of the active flow table and the silent flow table. The size of a storage space of a content field of an active flow table is fixed, and the number of entries is equal to that of TCAMs (ternary content addressable memory) so as to support direct mapping between TCAM identification fields and DRAM content fields; the silent flow entry content field is stored in a chain structure to support the dynamic adjustment of the flow entry. The content field includes: counters, action tables, and Cookies values, etc.
The BF filter in this embodiment is a CBF filter, and as other preferred embodiments, the CBF filter in this embodiment may also adopt a DCF filter, an SBF filter, or adopt entropy filters of different families.
Example 2
As shown in fig. 4 to 7, this embodiment provides an accelerated lookup method for a large-scale OpenFlow flow table hierarchical storage architecture according to embodiment 1, where the method specifically includes the following steps:
s1, establishing a hierarchical acceleration flow table architecture (HAFT) as described in embodiment 1 and storing the flow table,
the storage architecture of the flow table is a prerequisite requirement for flow table storage, and the flow table searching process can be determined only if the flow table storage architecture is determined.
S2, when the OpenFlow switch receives a certain network data packet p, firstly, performing header domain analysis on the network data packet p, analyzing and extracting a header important field of the network data packet p, further calculating a flow identifier fid of the network data packet, and then searching a TCAM flow table by using the flow identifier fid;
if the lookup is successful, indexing the corresponding table entry content in the DRAM flow table according to the TCAM address, performing table entry updating processing, and executing a corresponding flow table entry action set to forward the data packet; if the search fails, the SRAM prediction search stage is entered.
The header important fields of the network data packet comprise: source/destination MAC addresses, source/destination IP addresses, source/destination ports, IP protocol type, etc.
S3, SRAM lookup prediction
In the SRAM prediction search stage, mask masks are read from the SRAM one by onei. If the reading is successful, the flow identifier fid and the mask are usediPerforming AND operation to calculate stream keyiThen use the stream keyiAnd querying the BF filter for prediction search. If the BF filter successfully judges that no corresponding flow table entry exists in the sub-flow table, the next mask can be directly read, and the prediction searching process is repeated until the mask is completely read. At this time, the mask read will fail, meaning that the flow tables are mismatched, and the OpenFlow switch will send a flow installation request to the SDN controller. On the contrary, if the prediction of the BF filter fails, the SRAM flow table lookup stage is required to be entered for further lookup of the flow table entry.
S4, SRAM flow table lookup
When the BF filter judges failure, the stream keyiWhen the current sub-flow table possibly exists in the SRAM sub-flow table, the sub-flow table is continuously searched; if the sub-stream table search still fails, the next mask needs to be detected continuously; otherwise, the searched DRAM pointer is used for reading the table item content, the table item is updated, and the corresponding flow table item action set is executed to forward the data packet.
At this time, it is necessary to determine whether the flow entry enters an active state. The determination of the active flow table entry can be realized according to the arrival condition of the data packets of the current batch, and the determination mode is as follows: and for each flow table entry, when a new data packet is hit, judging whether the newly arrived data packet belongs to the current batch or not according to the arrival time interval of the new data packet and the previous data packet, and updating the data of the current batch. If the newly arrived data packet belongs to the current batch, further judging whether the arrival number and the average arrival rate of the data packets in the current batch meet the judgment threshold of the active flow table entry, if so, considering that the flow table entry enters the active state, and adopting the changeThe incoming LRU algorithm is exchanged into a TCAM flow table; otherwise, the mask is set by adopting MA1 heuristiciMove 1 position forward, and mask beforei+1Interchanging positions; and if all the masks are detected, but the corresponding flow table entry is not found, the data packet p is considered to belong to a new flow, and then the data packet information is packaged into a flow installation request message and sent to the SDN controller.
The improved LRU algorithm in step S4 specifically includes the following steps:
(a) for each flow entry, the average inter-batch interval △ t at which packets arrive is recordedavgInitial value is △ tavg=0;
(b) When a newly arrived packet does not belong to the current batch, the average inter-batch interval △ t is updatedavgIs △ tavg=α△t+(1-α)△tavgWherein α is a weight coefficient;
(c) calculating the current idle time t of the flow table entryidle=tAt present-tlob
(d) According to idle time tidleAnd average inter-batch interval △ tavgCalculating the failure rate P of the flow table entry as tidle-△tavgThe larger the value of P, the longer the current waiting time of the flow table entry or the shorter the average batch interval time, the higher the possibility of failure of the flow table entry, and therefore, when a new flow table entry is replaced into the TCAM flow table, the flow table entry with the largest value of P is replaced.
S5, inserting flow table entries, specifically as follows:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with an ADD command, a new flow entry f needs to be created by using information carried by the message m.
If the TCAM is not full, the idle entry is directly used for storing the matching domain and the mask of the new flow entry f, and other content fields are stored into the corresponding address of the DRAM according to the TCAM address of the new flow entry f.
If the TCAM is full, a new flow entry f needs to be stored in the SRAM. Firstly, the content field of the new flow table entry f is used as a node to be added into an entry content linked list of the DRAM, then the matching domain of the new flow table entry f and a DRAM pointer are added into a sub-flow table corresponding to the mask of the new flow table entry f, and finally the CBF filter corresponding to the mask of the new flow table entry f is updated according to the flow key word of the new flow table entry f.
S6, deleting the flow entry manually, specifically as follows:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with a DELETE command, the TCAM flow table needs to be searched according to a flow identifier fid of the m.
If the TCAM is successfully searched, the corresponding TCAM table item and the corresponding DRAM content need to be reset; otherwise, a flow key is calculated according to the flow identifier fid and the mask of the m, and a sub-flow table corresponding to the mask in the SRAM is searched according to the flow key.
If the SRAM is successfully searched, the searched SRAM flow list item and the DRAM message content node corresponding to the pointer of the SRAM flow list item need to be deleted, and the CBF filter information corresponding to the mask needs to be updated according to the flow keyword key.
S7, table timeout scanning, which is specifically as follows:
for each flow entry f, if the idle _ time or the installation _ time of the flow that has no data packet arrived recently expires:
if the flow table entry f is stored in the TCAM, directly resetting the corresponding TCAM flow table entry and DRAM table entry content;
if the flow entry f is stored in the SRAM, the corresponding CBF filter information is updated according to the flow key of the flow entry f, and then the SRAM flow entry and the DRAM entry content corresponding to the flow entry f are deleted.
As another preferred embodiment, the MA1 heuristic in step S4 may be replaced with a family MTF algorithm.
The invention adopts a layered acceleration flow table framework, and the framework firstly establishes a flow table hierarchical storage system combining TCAM and SRAM according to the batch arrival characteristic of data packets in a network, thereby realizing the quick flow table search of most data packets; then based on the non-uniformity of the flow table entry corresponding to the network data packet flow and the mask corresponding to the flow table entry, applying an MA1 heuristic to adaptively adjust the mask sequence so as to accelerate the mask successful detection speed of the subsequent data packet; and then, by using the characteristic that the mask detection of the data packet is always failed, and with the help of a counting CBF filter, a mask failure detection result is predicted with a great probability, so that the corresponding flow table search traversal process can be avoided, and the search efficiency is improved.
The hierarchical acceleration flow table architecture provided by the invention firstly establishes a flow table hierarchical storage system based on the characteristics of a flow table storage medium. Then, based on the network traffic locality and the data packet arrival model, classification and identification of the active flow and the silent flow are proposed. Therefore, a large-scale OpenFlow flow table hierarchical storage system is constructed, storage of active flows and silent flows, and identification fields and content fields of flow table items are distinguished, and effective guarantee is provided for realizing efficient searching of a large-scale flow table.
The flow table in the invention is stored without distinguishing the flow table items into wildcard flow table items and accurate flow table items according to the self properties of the flow table, but dynamically divides the flow table items into active flow table items and silent flow table items according to the frequency of the flow table items being accessed. The active flow table entries are preferentially stored by adopting TCAM uniformly, the silent flow table entries are stored by using SRAM, a plurality of memory tuples, namely sub-flow tables, are divided in the SRAM, and the silent flow tables corresponding to different masks are stored. Meanwhile, because the division is dynamic, when a silent flow table in the SRAM is in an active state, the silent flow table is replaced into the TCAM, and when an active flow table entry in the TCAM loses the active characteristic, a replacement algorithm is used for replacing the silent flow table into the SRAM, wherein the replacement algorithm is an improved LRU algorithm.
The flow table lookup in the invention does not distinguish the wildcard flow table from the precise flow table, so the silent flow table in the SRAM additionally designs a lookup structure to assist the SRAM to perform the flow table lookup. According to the scheme, the silent flow tables are classified according to the longest prefix matching length combination, the silent flow tables are divided into a plurality of sub-flow tables, and different sub-flow tables have different masks. The matching field of the data packet can be successfully matched only if the corresponding mask and the correct flow table entry are matched. Meanwhile, the scheme adopts a parallel counting type bloom filter to carry out prediction search, namely, pre-search, so that the search overhead in the process can be reduced.
The foregoing shows and describes the general principles, essential features, and advantages of the invention. It will be understood by those skilled in the art that the present invention is not limited to the embodiments described above, which are given by way of illustration of the principles of the present invention, and that various changes and modifications may be made without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is defined by the appended claims and equivalents thereof.

Claims (8)

1. A large-scale OpenFlow flow table acceleration search method is characterized in that,
the method specifically comprises the following steps:
s1, establishing a layered acceleration flow table structure and storing the flow table, wherein the layered acceleration flow table structure comprises three layers: an active flow surface layer, a silent flow surface layer and a flow table storage layer;
the active flow surface layer adopts TCAM as a storage medium and is used for storing a flow identification field of an active flow table item, and the flow identification field is mainly matching domain information;
the silent flow table layer adopts SRAM as a storage medium and is used for storing a flow identification field and a corresponding table index pointer of a silent flow table entry; because the SRAM does not support wildcard search, the silent flow table entries stored by the SRAM need to be classified and stored according to masks; the SRAM also stores a BF filter which can reduce the searching expense of the SRAM flow table;
the flow table storage layer adopts DRAM as a storage medium and is used for respectively storing the content fields of the active flow table and the silent flow table; the size of a storage space of a content field of an active flow table is fixed, and the number of entries is equal to that of TCAMs (ternary content addressable memory) so as to support direct mapping between TCAM identification fields and DRAM content fields; the silent flow table entry content field is stored by adopting a chain structure so as to support the dynamic adjustment of the flow table entry;
s2, when the OpenFlow switch receives a certain network data packet p, firstly, performing header domain analysis on the network data packet p, analyzing and extracting a header important field of the network data packet p, further calculating a flow identifier fid of the network data packet, and then searching a TCAM flow table by using the flow identifier fid;
if the lookup is successful, indexing the corresponding table entry content in the DRAM flow table according to the TCAM address, performing table entry updating processing, and executing a corresponding flow table entry action set to forward the data packet; if the search fails, entering an SRAM prediction search stage;
s3, SRAM prediction lookup
In the SRAM prediction search stage, mask masks are read from the SRAM one by onei
If the reading is successful, the flow identifier fid and the mask are usediPerforming AND operation to calculate stream keyiThen use the stream keyiInquiring a BF filter for prediction and search; if the BF filter successfully judges that no corresponding flow table entry exists in the sub-flow table, directly reading the next mask, repeating the prediction searching process until the masks are completely read, wherein the mask reading will fail at the moment, which means that the flow tables are mismatched, and the OpenFlow switch sends a flow installation request to the SDN controller;
on the contrary, if the prediction of the BF filter fails, entering an SRAM flow table searching stage to further search the flow table entry;
s4, SRAM flow table lookup
When the BF filter prediction fails, the stream keyiWhen the current sub-flow table possibly exists in the SRAM sub-flow table, the sub-flow table is continuously searched; if the sub-flow table is still failed to look up, the next mask is continuously detected; otherwise, reading the table item content by using the searched DRAM pointer, performing table item updating processing, and executing a corresponding flow table item action set to forward the data packet;
at this time, it is determined whether the flow entry enters an active state: for each flow table entry, when a new data packet is hit, judging whether the newly arrived data packet belongs to the current batch or not according to the arrival time interval of the new data packet and the previous data packet, and updating the data of the current batch; if the newly arrived data packets belong to the current batch, further judging whether the arrival number and the average arrival rate of the data packets in the current batch meet the judgment threshold of the active flow table entry, if so, considering that the flow table entry enters an active state, and replacing the flow table entry into a TCAM flow table by adopting a replacement algorithm; otherwise, the mask is set by adopting MA1 heuristiciMove forward by 1 position to cover the previous positionCode maski-1Interchanging positions; and if all the masks are detected, but the corresponding flow table entry is not found, the data packet p is considered to belong to a new flow, and then the data packet information is packaged into a flow installation request message and sent to the SDN controller.
2. The large scale OpenFlow flow table accelerated lookup method of claim 1,
the method further includes step S5, inserting a flow entry, specifically as follows:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with an ADD command, a new flow table item f needs to be created by using information carried by the message m;
if the TCAM is not full, directly using the idle entry to store the matching domain and the mask of the new flow entry f, and simultaneously storing other content fields into corresponding addresses of the DRAM according to the TCAM address of the new flow entry f;
if the TCAM is full, storing the new flow entry f into the SRAM, specifically: firstly, the content field of the new flow table entry f is added into the table entry content linked list of the DRAM as a node, then the matching field of the new flow table entry f and the DRAM pointer are added into the sub-flow table corresponding to the mask of the new flow table entry f, and finally the BF filter corresponding to the mask of the new flow table entry f is updated according to the flow keyword of the new flow table entry f.
3. The large scale OpenFlow flow table accelerated lookup method of claim 2,
the method further comprises a step S6 of manually deleting the flow table entry, which specifically comprises the following steps:
when the OpenFlow switch receives a message m issued by the SDN controller, if the m is a flow _ mod message with a DELETE command, searching a TCAM flow table according to a flow identifier fid of the m;
if the TCAM is successfully searched, resetting the corresponding TCAM table item and the corresponding DRAM content; otherwise, calculating a flow key according to the flow identifier fid and the mask of the m, and searching a sub-flow table corresponding to the mask in the SRAM according to the flow key;
and if the SRAM is successfully searched, deleting the searched SRAM flow table entry and the DRAM message content node corresponding to the pointer of the SRAM flow table entry, and updating BF filter information corresponding to the mask according to the key.
4. The large scale OpenFlow flow table accelerated lookup method of claim 3,
the method further includes step S7, performing timeout scanning on the flow table, specifically as follows:
for each flow entry f, if the flow has no idle time interval idle _ time or installation time interval hard _ time of the arrival of the data packet recently;
if the flow table entry f is stored in the TCAM, directly resetting the corresponding TCAM flow table entry and DRAM table entry content;
if the flow entry f is stored in the SRAM, the corresponding BF filter information is updated according to the flow key of the flow entry f, and then the contents of the SRAM flow entry and the DRAM entry corresponding to the flow entry f are deleted.
5. The large scale OpenFlow flow table accelerated lookup method according to any of claims 1-4,
the BF filter is a CBF filter or a DCF filter or an SBF filter.
6. The large scale OpenFlow flow table accelerated lookup method according to any of claims 1-4,
the MA1 heuristic in step S4 is replaced with a family MTF algorithm.
7. The large scale OpenFlow flow table accelerated lookup method according to any of claims 1-4,
the replacement algorithm in step S4 is a modified LRU algorithm.
8. The large scale OpenFlow flow table accelerated lookup method of claim 7,
the improved LRU algorithm specifically comprises the steps of:
a. for each flow entry, the average inter-batch interval △ t at which packets arrive is recordedavgInitial value is △ tavg=0;
b. When a newly arrived packet does not belong to the current batch, the average inter-batch interval △ t is updatedavgIs △ tavg=α△t+(1-α)△tavgWherein α is a weight coefficient;
c. calculating the current idle time t of the flow table entryidle=tAt present-tlob
d. According to idle time tidleAnd average inter-batch interval △ tavgCalculating the failure rate P of the flow table entry as tidle-△tavgThe larger the value of P, the longer the current waiting time of the flow table entry or the shorter the average batch interval time, the higher the possibility of failure of the flow table entry, and therefore, when a new flow table entry is replaced into the TCAM flow table, the flow table entry with the largest value of P is replaced.
CN201810087786.3A 2018-01-30 2018-01-30 Large-scale OpenFlow flow table accelerated searching method Expired - Fee Related CN108337172B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810087786.3A CN108337172B (en) 2018-01-30 2018-01-30 Large-scale OpenFlow flow table accelerated searching method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810087786.3A CN108337172B (en) 2018-01-30 2018-01-30 Large-scale OpenFlow flow table accelerated searching method

Publications (2)

Publication Number Publication Date
CN108337172A CN108337172A (en) 2018-07-27
CN108337172B true CN108337172B (en) 2020-09-29

Family

ID=62926732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810087786.3A Expired - Fee Related CN108337172B (en) 2018-01-30 2018-01-30 Large-scale OpenFlow flow table accelerated searching method

Country Status (1)

Country Link
CN (1) CN108337172B (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111162927B (en) * 2018-11-08 2021-12-03 华为技术有限公司 Communication method, device and equipment of Ethernet
CN109921996B (en) * 2018-12-29 2021-11-09 长沙理工大学 High-performance OpenFlow virtual flow table searching method
CN111666484B (en) * 2019-03-07 2023-10-13 腾讯科技(深圳)有限公司 Content pushing method, pushing device and computer readable storage medium
US11169932B2 (en) 2019-05-17 2021-11-09 Google Llc Flow table aging optimized for dram access
EP3970328A1 (en) * 2019-05-17 2022-03-23 Google LLC Flow table aging optimized for dram access
CN110808910B (en) * 2019-10-29 2021-09-21 长沙理工大学 OpenFlow flow table energy-saving storage framework supporting QoS and method thereof
CN111131084B (en) * 2019-12-06 2022-06-07 长沙师范学院 QoS-aware OpenFlow flow table searching method
CN113055287B (en) * 2019-12-27 2022-09-30 中国电信股份有限公司 Data packet processing method and device and computer readable storage medium
CN111541617B (en) * 2020-04-17 2021-11-02 网络通信与安全紫金山实验室 Data flow table processing method and device for high-speed large-scale concurrent data flow
CN113709044B (en) * 2020-05-20 2023-05-23 阿里巴巴集团控股有限公司 Data forwarding method, device, electronic equipment and storage medium
CN111865804B (en) * 2020-06-15 2022-03-11 烽火通信科技股份有限公司 Method and system for improving route issuing efficiency through hardware packet issuing mechanism
CN111917738B (en) * 2020-07-14 2022-03-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) Processing method and system capable of supporting network high-level protocol
CN111966284B (en) * 2020-07-16 2022-06-03 长沙理工大学 OpenFlow large-scale flow table elastic energy-saving and efficient searching system and method
CN112118186B (en) * 2020-08-28 2022-11-01 深圳市风云实业有限公司 Exchange chip routing table entry storage method, forwarding method and configuration method
CN114221849B (en) * 2020-09-18 2024-03-19 芯启源(南京)半导体科技有限公司 Method for realizing intelligent network card by combining FPGA with TCAM
CN112463652B (en) * 2020-11-20 2022-09-27 海光信息技术股份有限公司 Data processing method and device based on cache consistency, processing chip and server
CN115208810A (en) * 2021-04-12 2022-10-18 益思芯科技(上海)有限公司 Forwarding flow table accelerating method and device, electronic equipment and storage medium
CN113111796B (en) * 2021-04-19 2022-06-24 山东仕达思生物产业有限公司 Detection and identification method for automatically refining and marking categories of geminizing spores
CN115733795A (en) * 2021-08-24 2023-03-03 苏州盛科通信股份有限公司 Message forwarding method, network forwarding equipment and computer storage medium
CN115878863B (en) * 2022-12-01 2023-12-19 杭州菲数科技有限公司 Data searching method and data searching device
CN116156026B (en) * 2023-04-20 2023-07-04 中国人民解放军国防科技大学 RMT-supporting parser, reverse parser, parsing method and switch

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843298A (en) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 Method and system for achieving priority of Openflow switchboard chip flow tables
CN102843299A (en) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 Method and system for realizing Openflow multi-stage flow tables on basis of ternary content addressable memory (TCAM)
CN103248573A (en) * 2013-04-08 2013-08-14 北京天地互连信息技术有限公司 Centralization management switch for OpenFlow and data processing method of centralization management switch
CN103368851A (en) * 2013-07-22 2013-10-23 武汉烽火网络有限责任公司 Openflow flow table storage and optimization method based on resource reuse
CN103560963A (en) * 2013-11-18 2014-02-05 中国科学院计算机网络信息中心 OpenFlow flow table memory space compression method
CN103905311A (en) * 2012-12-28 2014-07-02 华为技术有限公司 Flow table matching method and device and switch
CN104821890A (en) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 Realization method for OpenFlow multi-level flow tables based on ordinary switch chip
CN105224692A (en) * 2015-11-03 2016-01-06 武汉烽火网络有限责任公司 Support the system and method for the SDN multilevel flow table parallel search of polycaryon processor
CN105721627A (en) * 2016-02-25 2016-06-29 中国科学院信息工程研究所 Method for online anonymization of IP network streaming data
CN106550059A (en) * 2016-10-27 2017-03-29 曙光信息产业(北京)有限公司 A kind of response method and device of ARP request

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102087226B1 (en) * 2013-02-14 2020-03-10 삼성전자주식회사 Method for sharing network based on software defined network to support multiple operator

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843298A (en) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 Method and system for achieving priority of Openflow switchboard chip flow tables
CN102843299A (en) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 Method and system for realizing Openflow multi-stage flow tables on basis of ternary content addressable memory (TCAM)
CN103905311A (en) * 2012-12-28 2014-07-02 华为技术有限公司 Flow table matching method and device and switch
CN103248573A (en) * 2013-04-08 2013-08-14 北京天地互连信息技术有限公司 Centralization management switch for OpenFlow and data processing method of centralization management switch
CN103368851A (en) * 2013-07-22 2013-10-23 武汉烽火网络有限责任公司 Openflow flow table storage and optimization method based on resource reuse
CN103560963A (en) * 2013-11-18 2014-02-05 中国科学院计算机网络信息中心 OpenFlow flow table memory space compression method
CN104821890A (en) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 Realization method for OpenFlow multi-level flow tables based on ordinary switch chip
CN105224692A (en) * 2015-11-03 2016-01-06 武汉烽火网络有限责任公司 Support the system and method for the SDN multilevel flow table parallel search of polycaryon processor
CN105721627A (en) * 2016-02-25 2016-06-29 中国科学院信息工程研究所 Method for online anonymization of IP network streaming data
CN106550059A (en) * 2016-10-27 2017-03-29 曙光信息产业(北京)有限公司 A kind of response method and device of ARP request

Also Published As

Publication number Publication date
CN108337172A (en) 2018-07-27

Similar Documents

Publication Publication Date Title
CN108337172B (en) Large-scale OpenFlow flow table accelerated searching method
CN109921996B (en) High-performance OpenFlow virtual flow table searching method
US11811660B2 (en) Flow classification apparatus, methods, and systems
US9871728B2 (en) Exact match hash lookup databases in network switch devices
Gupta et al. Packet classification using hierarchical intelligent cuttings
Gupta et al. Classifying packets with hierarchical intelligent cuttings
US6434144B1 (en) Multi-level table lookup
US7592935B2 (en) Information retrieval architecture for packet classification
CN110808910B (en) OpenFlow flow table energy-saving storage framework supporting QoS and method thereof
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
Quan et al. TB2F: Tree-bitmap and bloom-filter for a scalable and efficient name lookup in content-centric networking
US7653670B2 (en) Storage-efficient and collision-free hash-based packet processing architecture and method
JP4482259B2 (en) Method and apparatus for a 4-way hash table
Hasan et al. Chisel: A storage-efficient, collision-free hash-based network processing architecture
WO1998027662A2 (en) High speed variable length best match look-up in a switching device
CN111131029B (en) High-energy-efficiency OpenFlow flow table searching method supporting rule dependence
US11652744B1 (en) Multi-stage prefix matching enhancements
US10901897B2 (en) Method and apparatus for search engine cache
US20190294549A1 (en) Hash Table-Based Mask Length Computation for Longest Prefix Match Caching
US11782895B2 (en) Cuckoo hashing including accessing hash tables using affinity table
US20050114393A1 (en) Dynamic forwarding method using binary search
CN111200542B (en) Network flow management method and system based on deterministic replacement strategy
CN113810298B (en) OpenFlow virtual flow table elastic acceleration searching method supporting network flow jitter
Ahmadi et al. A memory-optimized Bloom filter using an additional hashing function
Sun et al. A highly deterministic hashing scheme using bitmap filter for high speed networking

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200929

Termination date: 20210130