Next Article in Journal
Data Rate Maximization in RIS-Assisted D2D Communication with Transceiver Hardware Impairments
Previous Article in Journal
Detecting Cybersecurity Attacks in Internet of Things Using Artificial Intelligence Methods: A Systematic Literature Review
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

SplitTrie: A Fast Update Packet Classification Algorithm with Trie Splitting

1
National Network New Media Engineering Research Center, Institute of Acoustics, Chinese Academy of Sciences, No. 21, Beijing 100190, China
2
School of Electronic, Electrical and Communication Engineering, University of Chinese Academy of Sciences, No. 19(A), Beijing 100049, China
*
Author to whom correspondence should be addressed.
Electronics 2022, 11(2), 199; https://doi.org/10.3390/electronics11020199
Submission received: 13 December 2021 / Revised: 7 January 2022 / Accepted: 7 January 2022 / Published: 10 January 2022
(This article belongs to the Section Networks)

Abstract

:
Software Defined Network (SDN) currently is widely used in the implementation of new network technologies owing to its distinctive advantages. In changeable SDN environments, the update performance of SDN switches has significant importance for the overall network performance because packet processing could be interrupted by ruleset updating in SDN switches. In order to guarantee high update performance, we propose a new classification algorithm, SplitTrie, based on trie structures and trie splitting. SplitTrie splits rulesets according to the field type vectors of rules. The splitting can improve the update performance because it reduces the trie structure sizes. Experimental results demonstrated that SplitTrie could achieve 20 times of update speed in the complex rulesets comparing the method without trie splitting.

1. Introduction

Compared with traditional network technology, Software Defined Network (SDN) separates the control plane and the data plane, which has considerable advantages, such as centralized control logic, network virtualization, and open network capabilities [1]. These advantages bring great convenience to many emerging network technologies, typically including Information Centric Networking (ICN) and Network Functions Virtualization (NFV) [2]. Therefore, SDN is widely used in the implementation of new network technologies.
In SDN implementation, the design of SDN switches is one of the most important components. The requirements faced by SDN switches are quite different from those of traditional switches. In the popular SDN implementation, OpenFlow [3], the network environment changes more frequently, and the control message processing affects forwarding performance greatly in OpenFlow switches [4]. Thus, the overall performance of SDN switches depends not only on lookup performance but also on update efficiency. Therefore, we should consider control message processing when we implement SDN switches. The packet processing problem in SDN switches is called packet classification problems. Specifically, the update time-sensitive problems are called online packet classification problems. Otherwise, the rest are regarded as offline packet classification problems.
In OpenFlow, the match rules could be divided into several types according to their contents, such as exact matching, ternary matching and longest prefix matching (LPM) [5]. Exact matching is quite simple, and hash-based algorithms are used to implement exact matching. Many OpenFlow implementations use linear table and some simple algorithms to implement ternary matching and LPM, such as Tuple Space Search (TSS) [6]. The lookup performances of the algorithms are poor, so large quantities of algorithms have been proposed to solve packet classification problems in recent decades [7,8,9,10,11,12,13,14,15,16,17,18]. However, the match rules will be more flexible in some SDN implementations. Match fields of the rules are not limited to the 5-tuples (src_IP, dst_IP, src_port, dst_port, and protocol) in traditional networks. Most of the algorithms only applied in 5-tuples, which will be their shortcomings in the SDN environment nowadays. Among the algorithms, trie-based ones are protocol oblivious and their performance will not deteriorate when the number of rules changes. If there are many additional match fields in SDN work scenes, trie-based algorithms should be a better choice. However, the updating performance of trie-based algorithms is a shortage in online packet classification problems. After analyzing the update process, we put forward a new optimization for the trie-based algorithms applied in online environments.
Our method is to optimize the update processes of online trie-based algorithms. We chose an online trie-based algorithm, ITOC [19] as the algorithm to improve, and designed an optimization for the algorithm. Finally, we proposed a packet classification algorithm, SplitTrie, for the SDN switches in the work scenes, where the match fields of rules are flexible and the rules are changing. The contributions of this paper are:
  • Field Type Vector: Based on the idea of field type, we introduced the parameter of rules called field type vector. Field types are also called Big Field and Small Field. The field type shows the match range size of the rule in a match field. Each bit in the field type vector represents the type of one field. Thus, we can know the match range sizes in all match fields by the field type vector.
  • Building Optimization: By analyzing the building and update processes, we found the relevance between the match range sizes of the rules and the size of the lookup structures. With field type vector, we designed an optimization for online trie-based packet classification algorithm by splitting the rulesets before building the tries.
  • SplitTrie: With the idea of splitting, we designed a new building process and a new update process for the online trie-based algorithm. We call the new online algorithm SplitTrie, which could provide better update performance.
The rest of this paper is organized as follows. In Section 2, we provide a review of the previous and related work. In Section 3, we present our optimization method in detail. Section 4 shows the experimental results and gives out the analysis. Finally, we conclude our work in Section 5.

2. Related Work

2.1. Pre-Process Optimizations of Packet Classification Algorithm

Pre-processing is a popular way to improve the packet classification algorithm. In some packet classification algorithms, pre-processing is necessary. For instance, the results of pre-processing will determine their performance in the decision tree algorithms. A typical kind of pre-processing used in packet classification algorithms is dividing, which includes ruleset splitting and search space cutting. The ruleset will split into subsets, and the search space will be cut into subspaces. How to divide the ruleset is the key to these pre-processing methods.
Methods of dividing rules proposed during the last decades can be summarized into the following categories:
  • Dividing by match value, such as ruleset splitting and search space cutting in tree-based algorithms [7,8,9,11,13,18];
  • Dividing by mask value, such as TSS, TupleMerge [14], CutTSS [17], and CNP3 [16];
  • Dividing by other parameters, such as dimensions [10].
Different methods have their advantages and disadvantages. For the ruleset splitting methods, the main shortcoming is that the pre-processing time is too long. Some methods split the ruleset into several subsets which contain the same number of rules, and these methods will suffer from ruleset changing. Some splitting-based algorithms proposed to shorten the pre-processing time. In the search space cutting methods, the main shortcoming is the rule replication, which results in the waste of memory. The main target of the algorithms is to avoid replication. Although having a good update performance, Tuple Space Search has a poor lookup performance due to the number of tuples in some cases. All the TSS-based algorithms are aimed to limit the number of tuples.

2.2. What We Need in Target Work Scenes

As we mentioned in the introduction Section, our motivation is to design a packet classification algorithm for a special kind of SDN environment. In the environment, the definitions of rule match fields are more flexible. Furthermore, rules in switches will change continuously. The problems are called protocol-oblivious problems and online problems.
In online packet classification problems, many pre-processing methods become ineffective when the working condition changes. In online problems, we could not obtain all the contents of flow tables in the pre-processing stage. We prefer to choose one implementation that can be applied with limited information. The implementation should have these features:
  • The divide functions can work with limited ruleset information;
  • The divide functions should be simple enough;
  • The divide functions should have little influence on lookup performance.
TSS is a method that does not need the information of all the rules. TSS divides the rulesets according to the exact match length. Thus, the dividing pre-processing of TSS only needs the content of the individual rule. As mentioned above, the lookup performance of TSS is poor because the number of subsets could be too big. An optimization for TSS is given by TupleMerge [14]. TupleMerge can reduce the number of tuples by merging similar but not identical tuples. Another idea is used in EffiCuts [9], HybridCuts [11], CutSplit [13] and CutTSS [17]. The idea introduces two definitions, Big Field and Small Field. The methods divide the rules according to the match range sizes in some fields. The idea has been combined with decision tree and TSS, we will use the idea in our optimization for the trie-based algorithms.

3. The Proposed Algorithm

3.1. Definition of Big Field, Small Field, and Field Type Vector

Our algorithm provides a pre-processing optimization for the trie structures based on the match range sizes. We explain what are the match range sizes based on an N-dimensional rule R = ( F 1 , … F i , … F N ) with a threshold set T = ( T 1 , … T i , … T N ) for each field, where i ∈ {1, 2, … N}. We define the big field and the small field as follows:
  • F i in rule R is a big field when the match range length of F i /field range length L i > threshold value T i .
  • F i in rule R is a small field when the match range length of F i /field range length L i ≤ threshold value T i .
Based on Big field and Small field, we define a type of rules called big rule.
  • R is a big rule when all fields in R are big fields.
Moreover, to describe other types of rules, we define a vector called field type vector. The definition of the vector is:
  • V f s is a N bits long vector, where N is the number of fields of the rule; the i-th bit of V f s is 1 if F i is a big field; the i-th bit of V f s is 0 if F i is a small field.
As shown in the definition, field type vectors are rough descriptions of match range sizes of rules in each field. In our algorithm, rules in the flow tables will be divided according to their field type vectors.

3.2. Why the Optimization Benefits in Trie Methods

Before proposing our optimization, we explain how the trie-based packet classification algorithms can benefit from the ruleset splitting according to the match range sizes.
In trie-based algorithms, the complexity of rulesets has an impact on the performance of algorithms. The number of rule overlaps is a typical instance. Generally, when overlapping occurs in two rules in a ruleset, some extra nodes will be generated in the trie of the ruleset. Thus, the number of rule overlaps matters in the trie-based algorithms.
We can infer that the overlaps will be less with the ruleset splitting according to the field type vectors. After analyzing the relationship of rule overlaps and field type vectors, we can classify the overlaps into three types: Two-small, One-big, and Complementary.
We define Two-small overlap as following: an overlap between Rule A and B is a Two-small overlap when neither A nor B are big rules and V f s A , V f s B have only few 1 bits.
An example of Two-small overlaps is shown in Figure 1. Each bar stands for a field, and the colored zone stands for the match range of a rule. As shown in Figure 1, Rule 0 and Rule 1 are not big rules. Their match ranges overlap in every field even though they only have small fields in the fields. It could happen because the distribution of rules in a ruleset is usually uneven.
An overlap between Rule A and B is a One-big overlap when A or B is a big rule.
An example of One-big overlaps is shown in Figure 2. In the example, Rule 1 is a big rule. Generally, a big rule has a large match range. Thus, the rule is more likely to overlap with other rules. When we find an One-big overlap, we could find more One-big overlaps. As the distribution of rule matching ranges is uneven, there could be more other rules covered by the match range of the big rule in some cases.
The last is Complementary overlap. An overlap between Rule A and B is a Complementary overlap when V f s A V f s B = ( 1111 11 ) .
Complementary means the big fields of the two rules include all fields of the ruleset, as shown in Figure 3. The field type vector of Rule 0 is ( 01010 ) and the field type vector of Rule 1 is ( 10101 ) . As a big field is easier to overlap with others at the field, when two rules have at least one big field at each field, the two rules could overlap with a high probability.
Consequently, by dividing the rules according to their field type vectors, we can prevent most of One-big overlaps, and all Complementary overlaps. As most of One-big overlaps are between Big rules and other rules, and all Complementary overlaps are between the rules with different field type vectors.
We analyzed some rulesets which are given by the widely used test bench project, ClassBench [20,21]. We found that most overlaps in the rulesets are One-big overlaps and Complementary overlaps. The analysis is as follows.
Firstly, we calculated the field type vectors of the rules in 3 rulesets. The rulesets are different types, and each ruleset contains 10,000 rules. All rules have 5 fields, SRC IP, DST IP, SRC port, DST port, and protocol. For simplicity, we used only SRC IP and DST IP fields to calculate the field type vectors. When we set the threshold as 80%, the distribution of the field type vectors in the rulesets are as shown in Figure 4.
In ACL rulesets, over 96% rules are with the field type vector (small, small). FW rulesets are the most complex rulesets. Around 90% rules have at least one big field. In the IPC rulesets, 20% rules have at least one big field, which means IPC rulesets are also complex ones.
Then we counted and classified the overlaps. The results are shown in Table 1, and the major types of overlaps in each ruleset are marked in red. In the ACL ruleset, most overlaps are One-big overlaps. In the FW ruleset and the IPC ruleset, most overlaps are Complementary overlaps. As mentioned above, our optimization could prevent most of One-big overlaps and all Complementary overlaps. Thus, we make the conclusion that the trie-based algorithms will benefit from the ruleset splitting according to the field types of rules.

3.3. Optimization Using Big Field and Small Field

Our optimization splits rulesets according to the field type vectors of rules and then builds tries for each subset. If all fields are taken into consideration in the rule partition, the trie number will be huge. The huge trie number has a negative impact on the lookup performance. Therefore, in practice, we generally choose several typical fields to calculate the field type vectors.
Now, we apply the optimization on ITOC and put forward our new algorithm, SplitTrie. Our pre-processing optimization will influence both the building processing and the update processing.
In the building process, we first decide the used field number N for calculating field type vectors. We set the number according to the ruleset size. Then we choose the fields according to their length because generally, longer fields are more distinguished and have a greater impact on the tries. After choosing the fields, we build 2 N tries for the ruleset. Each trie will have a field type vector. For example, if we build a 5-tuple table that contains 10,000 rules, we could choose two fields to calculate field type vectors, and the chosen fields will be SRC IP and DST IP. As the used field number is 2, we will build four tries, and their field type vectors are 00, 01, 10, and 11.
As the deletion process is simple in trie-based algorithms, we mainly focus on the insertion process. When a new rule is added to the table, we will calculate its field type vector at first. At the same time, we also transform the rule into a single trie. With the field type vector, we could merge the single trie into a proper trie. After the trie merging, the algorithm will generate a new lookup array and finish the update processing, as shown in Figure 5.
The update processing without pre-processing optimization is shown in Figure 6a, and the update processing with our pre-processing optimization is shown in Figure 6b. The main differences are marked in red.
The pseudocodes of the new building process and insertion update process are shown in Algorithms 1 and 2.
In SplitTrie, the time cost of the building process and the update process will be less than that in the original algorithm, which will be shown in the experiments.
Algorithm 1: Building process with ruleset splitting
Input: the maximum size M of ruleset S , fields { F 1 , F 2 , F 3 F n }
Output: ruleset S
1  Calculate the number of chosen fields N according to the maximum size M;
2  Choose the top N longest fields among { F 1 , F 2 , F 3 F n };
3  Generate 2 N different field type vectors { V 1 , V 2 , V 3 V n }
4  for V i in the field type vectors do
5  ∣ Build a trie T i with field type vector V i ;
6  end
Algorithm 2: Insertion process with ruleset splitting
Electronics 11 00199 i001

4. Experimental Results

4.1. Simulation Setup

In order to show the improvement of our optimization, we first design a simulation. The experimental simulation runs on a Linux platform with Intel Xeon Silver 4208 CPU @ 2.10 GHz. The operating system is CentOS release 7 September 2009. The implementation is based on DPDK.
The experiments are designed to evaluate the lookup performance and the updating performance of the algorithms. The rulesets we used in the experiments are generated by the widely used test bench project ClassBench. With the rulesets, we compared the performance of the algorithms with and without ruleset splitting. In the experiments, the threshold between big fields and small fields is 80% in all fields.

4.2. Results and Analysis

Our experiments consist of two parts. In the first part, we compared the performance of SplitTrie with the original trie-based algorithm to show the effectiveness of the pre-processing optimization. The second part is the comparisons between SplitTrie and other state-of-the-art solutions.
In the first part, we compared the memory footprints, the lookup performance, and the update performance of SplitTrie and ITOC. SplitTrie is with our splitting optimization, while ITOC is without splitting. We built rule tables and added all rules of the rulesets into the tables. Then we counted the numbers of nodes and tries of each table to compare memory footprint. The comparison is shown in Figure 7.
With our optimization, the numbers of tries in FW rulesets and IPC rulesets are smaller. However, the situation becomes the opposite in ACL rulesets. The reason is that the rules in ACL are too simple. Most rules in ACL rulesets are the type of (Small, Small) as shown in Figure 2. Without our optimization, the number of tries is not big at all in ACL rulesets. However, SplitTrie will build at least 4 tries. Although our optimization could reduce overlaps and the total node numbers, the number of tries built by SplitTrie is still bigger in the ACL rulesets, which would be the main limitation of our optimization. In the simple rulesets, the number of tries our algorithm will build is too big, so the performance will be poor. Since SplitTrie is not suitable enough for ACL rulesets, we will focus on FW rulesets and IPC rulesets in subsequent experiments.
Then we calculated the lookup time cost and update latency. We generated data entries so that all rules could be hit in the lookup experiment and input them into the lookup interface. We calculated the average time cost of the interface. Figure 8 shows the results of the lookup time cost comparison.
The results show the advantages of our optimization. As shown in Figure 8, SplitTrie had a better lookup speed in FW rulesets and IPC rulesets. In the best case, the lookup speed of SplitTrie is 2.75 times that of the algorithm without the optimization. Although SplitTrie is not aimed to provide a better lookup speed, this performance also shows that SplitTrie performs better in the complex rulesets because the splitting avoids the rule range overlaps.
Then we designed the update experiment. We first picked out 100 rules from the rulesets and added the rest into the tables. The rest rules were called base rules. Then we added the picked out rules into the tables, which contained base rules. We calculate the average latency of these update processes. Figure 9 shows the results of the update latency comparison.
The update performance comparison of SplitTrie also proves this conclusion. As shown in Figure 7, the number of nodes in tries are much smaller in SplitTrie, and the fewer nodes can make SplitTrie update faster in the complex rulesets. As shown in Figure 9, the optimization resulted in a shorter update latency. In the best case, the update latency of SplitTrie is only 5% of the time of the original algorithm. In other words, SplitTrie could achieve 20 times of update speed of the original algorithm when we have a complex ruleset.
In the second part, we compared the performance of SplitTrie with state-of-the-art solutions. We tested the lookup performances of SplitTrie, DPDK ACL, TupleMerge, PartitionSort, and CutTSS. DPDK ACL [22] is an offline trie-based packet classification algorithm provided by the popular packet processing platform, DPDK. TupleMerge PartitionSort, and CutTSS are state-of-the-art online solutions. TupleMerge, as mentioned before, is an optimized algorithm based on TSS. PartitionSort is a special algorithm in which we divide the ruleset into some sortable parts and then build a tree according to the partition. Furthermore, CutTSS is the algorithm which combined Big field and Small field idea with TSS algorithms. Figure 10 shows the results of the lookup time cost comparison.
The results show that SplitTrie reaches the level of the state-of-the-art solutions in lookup speed. Our optimization for update latency has no negative impact on lookup performance in the complex rulesets. Considering the parallel processing ability of SplitTrie, the applicability for any type of field and the quick update speed, SplitTrie can be a better choice in some specific work scenes, such as the changeable SDN environments.

5. Conclusions

The work of this paper is about packet classification problems in SDN environments. We provided an optimized algorithm, which is called SplitTrie. It is applied in the pre-processing stage of trie-based packet classification algorithms. The optimization is based on the idea of Big Field and Small Field. With the optimization, SplitTrie divides the rules by their field type vectors and inserts similar rules into the same tries. SplitTrie tries to avoid the overlaps of rule match ranges in the rulesets and is helpful to simplify the insertion progress. The experimental results show that, with the optimization, SplitTrie reduced the number of nodes and tries in the packet classification algorithms. The improvement in memory usage helps SplitTrie achieve better performance than the original algorithm in the complex rulesets. The result reveals that SplitTrie is a better choice in the SDN work scenes where flow table rules are complex and changeable. The main limitation of our algorithm is that the algorithm could not achieve better performance in simple rulesets. We will further work on this algorithm to improve it. As the problem is that SplitTrie splits the rulesets unnecessarily when the rulesets are too simple, our idea is to design a method to detect and merge unnecessary splitting before the lookup structures are generated.

Author Contributions

Conceptualization, Y.L., J.W. (Jinlin Wang), X.C. and J.W. (Jinghong Wu); methodology, Y.L., J.W. (Jinlin Wang), X.C. and J.W. (Jinghong Wu); software, Y.L.; validation, Y.L., J.W. (Jinlin Wang), X.C. and J.W. (Jinghong Wu); writing—original draft preparation, Y.L., writing—review and editing, J.W. (Jinlin Wang), X.C. and J.W. (Jinghong Wu); visualization, Y.L.; supervision, J.W. (Jinlin Wang), X.C. and J.W. (Jinghong Wu); project administration, J.W. (Jinghong Wu); funding acquisition, J.W. (Jinlin Wang). All authors have read and agreed to the published version of the manuscript.

Funding

This work was funded by Strategic Leadership Project of Chinese Academy of Sciences: SEANET Technology Standardization Research System Development (Project No. XDC02070100).

Acknowledgments

We would like to express our gratitude to the reviewers for their helpful comments.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Cerović, D.; Del Piccolo, V.; Amamou, A.; Haddadou, K.; Pujolle, G. Fast packet processing: A survey. IEEE Commun. Surv. Tutor. 2018, 20, 3645–3676. [Google Scholar] [CrossRef]
  2. Wang, J.; Cheng, G.; You, J.; Sun, P. SEANet: Architecture and Technologies of an On-site, Elastic, Autonomous Network. J. Netw. New Media 2020, 6, 1–8. [Google Scholar]
  3. McKeown, N.; Anderson, T.; Balakrishnan, H.; Parulkar, G.; Peterson, L.; Rexford, J.; Shenker, S.; Turner, J. OpenFlow: Enabling innovation in campus networks. ACM SIGCOMM Comput. Commun. Rev. 2008, 38, 69–74. [Google Scholar] [CrossRef]
  4. Kuźniar, M.; Perešíni, P.; Kostić, D. What you need to know about SDN flow tables. In Proceedings of the International Conference on Passive and Active Network Measurement, New York, NY, USA, 19–20 March 2015; pp. 347–359. [Google Scholar]
  5. Kaljic, E.; Maric, A.; Njemcevic, P.; Hadzialic, M. A survey on data plane flexibility and programmability in software-defined networking. IEEE Access 2019, 7, 47804–47840. [Google Scholar] [CrossRef]
  6. Srinivasan, V.; Suri, S.; Varghese, G. Packet classification using tuple space search. In Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication, Cambridge, MA, USA, 30 August–3 September 1999; pp. 135–146. [Google Scholar]
  7. Gupta, P.; McKeown, N. Classifying packets with hierarchical intelligent cuttings. IEEE Micro 2000, 20, 34–41. [Google Scholar] [CrossRef]
  8. Singh, S.; Baboescu, F.; Varghese, G.; Wang, J. Packet classification using multidimensional cutting. In Proceedings of the 2003 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, Karlsruhe, Germany, 25–29 August 2003; pp. 213–224. [Google Scholar]
  9. Vamanan, B.; Voskuilen, G.; Vijaykumar, T. EffiCuts: Optimizing packet classification for memory and throughput. ACM SIGCOMM Comput. Commun. Rev. 2010, 40, 207–218. [Google Scholar] [CrossRef]
  10. Ahmed, O.; Areibi, S.; Fayek, D. PCIU: An efficient packet classification algorithm with an incremental update capability. In Proceedings of the 2010 International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS’10), Ottawa, ON, Canada, 11–14 July 2010; pp. 81–88. [Google Scholar]
  11. Li, W.; Li, X. HybridCuts: A scheme combining decomposition and cutting for packet classification. In Proceedings of the 2013 IEEE 21st Annual Symposium on High-Performance Interconnects, San Jose, CA, USA, 21–23 August 2013; pp. 41–48. [Google Scholar]
  12. Yingchareonthawornchai, S.; Daly, J.; Liu, A.X.; Torng, E. A sorted partitioning approach to high-speed and fast-update OpenFlow classification. In Proceedings of the 2016 IEEE 24th International Conference on Network Protocols (ICNP), Singapore, 8–11 November 2016; pp. 1–10. [Google Scholar]
  13. Li, W.; Li, X.; Li, H.; Xie, G. CutSplit: A decision-tree combining cutting and splitting for scalable packet classification. In Proceedings of the IEEE INFOCOM 2018-IEEE Conference on Computer Communications, Honolulu, HI, USA, 16–19 April 2018; pp. 2645–2653. [Google Scholar]
  14. Daly, J.; Bruschi, V.; Linguaglossa, L.; Pontarelli, S.; Rossi, D.; Tollet, J.; Torng, E.; Yourtchenko, A. Tuplemerge: Fast software packet processing for online packet classification. IEEE/ACM Trans. Netw. 2019, 27, 1417–1431. [Google Scholar] [CrossRef]
  15. Zhang, X.; Salamalian, K.; Xie, G. Baking the ruleset: A heat propagation relaxation to packet classification. In Proceedings of the 2020 IFIP Networking Conference (Networking), Paris, France, 22–25 June 2020; pp. 485–493. [Google Scholar]
  16. Alimohammadi, H.; Ahmadi, M. Common non-wildcard portion-based partitioning approach to SDN many-field packet classification. Comput. Netw. 2020, 181, 107534. [Google Scholar] [CrossRef]
  17. Li, W.; Yang, T.; Rottenstreich, O.; Li, X.; Xie, G.; Li, H.; Vamanan, B.; Li, D.; Lin, H. Tuple space assisted packet classification with high performance on both search and update. IEEE J. Sel. Areas Commun. 2020, 38, 1555–1569. [Google Scholar] [CrossRef]
  18. Chen, S.; Zhong, J.; Huang, T.; Wei, Z.; Zhao, S. CMT: An Efficient Algorithm for Scalable Packet Classification. Comput. J. 2021, 64, 941–959. [Google Scholar] [CrossRef]
  19. Li, Y.; Wang, J.; Chen, X.; Wu, J. ITOC: An Improved Trie-Based Algorithm for Online Packet Classification. Appl. Sci. 2021, 11, 8693. [Google Scholar] [CrossRef]
  20. Taylor, D.E.; Turner, J.S. Classbench: A packet classification benchmark. IEEE/ACM Trans. Netw. 2007, 15, 499–511. [Google Scholar] [CrossRef] [Green Version]
  21. Matoušek, J.; Antichi, G.; Lučanskỳ, A.; Moore, A.W.; Kořenek, J. Classbench-ng: Recasting classbench after a decade of network evolution. In Proceedings of the 2017 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), Beijing, China, 18–19 May 2017; pp. 204–216. [Google Scholar]
  22. DPDK. Available online: http://www.dpdk.org/ (accessed on 10 December 2021).
Figure 1. An example of Two-small overlaps.
Figure 1. An example of Two-small overlaps.
Electronics 11 00199 g001
Figure 2. An example of One-big overlaps.
Figure 2. An example of One-big overlaps.
Electronics 11 00199 g002
Figure 3. An example of Complementary overlaps.
Figure 3. An example of Complementary overlaps.
Electronics 11 00199 g003
Figure 4. The distributions of the field type vectors in different rulesets.
Figure 4. The distributions of the field type vectors in different rulesets.
Electronics 11 00199 g004
Figure 5. Insertion process with ruleset splitting.
Figure 5. Insertion process with ruleset splitting.
Electronics 11 00199 g005
Figure 6. The update process comparison.
Figure 6. The update process comparison.
Electronics 11 00199 g006
Figure 7. The memory footprint comparison between SplitTrie and ITOC.
Figure 7. The memory footprint comparison between SplitTrie and ITOC.
Electronics 11 00199 g007
Figure 8. The lookup time cost comparison between SplitTrie and ITOC.
Figure 8. The lookup time cost comparison between SplitTrie and ITOC.
Electronics 11 00199 g008
Figure 9. The update latency comparison between SplitTrie and ITOC.
Figure 9. The update latency comparison between SplitTrie and ITOC.
Electronics 11 00199 g009
Figure 10. The lookup time cost comparison with state-of-the-arts.
Figure 10. The lookup time cost comparison with state-of-the-arts.
Electronics 11 00199 g010
Table 1. Average overlap number of different types of rules.
Table 1. Average overlap number of different types of rules.
Two-SmallOne-BigComplementary
NumberProportionNumberProportionNumberProportion
ACL488810.46%40,04185.71%17893.83%
FW10.00%336,93911.62%2,562,47288.38%
IPC10,4942.22%125,50626.59%336,04671.19%
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Li, Y.; Wang, J.; Chen, X.; Wu, J. SplitTrie: A Fast Update Packet Classification Algorithm with Trie Splitting. Electronics 2022, 11, 199. https://doi.org/10.3390/electronics11020199

AMA Style

Li Y, Wang J, Chen X, Wu J. SplitTrie: A Fast Update Packet Classification Algorithm with Trie Splitting. Electronics. 2022; 11(2):199. https://doi.org/10.3390/electronics11020199

Chicago/Turabian Style

Li, Yifei, Jinlin Wang, Xiao Chen, and Jinghong Wu. 2022. "SplitTrie: A Fast Update Packet Classification Algorithm with Trie Splitting" Electronics 11, no. 2: 199. https://doi.org/10.3390/electronics11020199

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop