Packet Classification using Rule Caching

Similar documents
Rule Caching for Packet Classification Support

Tree-Based Minimization of TCAM Entries for Packet Classification

Packet Classification Using Dynamically Generated Decision Trees

Fast Packet Classification Algorithms

Design of a High Speed FPGA-Based Classifier for Efficient Packet Classification

Routing Lookup Algorithm for IPv6 using Hash Tables

Three Different Designs for Packet Classification

Implementation of Boundary Cutting Algorithm Using Packet Classification

Towards Effective Packet Classification. J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005

DESIGN AND IMPLEMENTATION OF OPTIMIZED PACKET CLASSIFIER

Grid of Segment Trees for Packet Classification

AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION

All-Match Based Complete Redundancy Removal for Packet Classifiers in TCAMs

Performance Improvement of Hardware-Based Packet Classification Algorithm

Efficient Packet Classification on FPGAs also Targeting at Manageable Memory Consumption

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.

PC-DUOS: Fast TCAM Lookup and Update for Packet Classifiers

Selective Boundary Cutting For Packet Classification SOUMYA. K 1, CHANDRA SEKHAR. M 2

Efficient Packet Classification using Splay Tree Models

TOWARDS EFFECTIVE PACKET CLASSIFICATION

A Scalable Approach for Packet Classification Using Rule-Base Partition

Multi-Field Range Encoding for Packet Classification in TCAM

HybridCuts: A Scheme Combining Decomposition and Cutting for Packet Classification

Scalable Packet Classification for IPv6 by Using Limited TCAMs

Parallel-Search Trie-based Scheme for Fast IP Lookup

Efficient TCAM Encoding Schemes for Packet Classification using Gray Code

Packet Classification Using Standard Access Control List

Survey and Taxonomy of Packet Classification Techniques

15-744: Computer Networking. Routers

A Multi Gigabit FPGA-based 5-tuple classification system

Multi-Field Range Encoding for Packet Classification in TCAM

Computer Networks 56 (2012) Contents lists available at SciVerse ScienceDirect. Computer Networks

Frugal IP Lookup Based on a Parallel Search

Efficient Multi-Match Packet Classification with TCAM

Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011

EVERY Internet router today can forward entering Internet

Forwarding and Routers : Computer Networking. Original IP Route Lookup. Outline

Master Course Computer Networks IN2097

SINCE the ever increasing dependency on the Internet, there

Disjoint Superposition for Reduction of Conjoined Prefixes in IP Lookup for Actual IPv6 Forwarding Tables

Memory-Efficient 5D Packet Classification At 40 Gbps

MULTI-MATCH PACKET CLASSIFICATION BASED ON DISTRIBUTED HASHTABLE

AN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING. 1. Introduction. 2. Associative Cache Scheme

Master Course Computer Networks IN2097

Real Time Packet Classification and Analysis based on Bloom Filter for Longest Prefix Matching

NETWORK SECURITY PROVISION BY MEANS OF ACCESS CONTROL LIST

An Efficient TCAM Update Scheme for Packet Classification

Priority Area-based Quad-Tree Packet Classification Algorithm and Its Mathematical Framework

Homework 1 Solutions:

Router Architectures

Fast IP Routing Lookup with Configurable Processor and Compressed Routing Table

Bitmap Intersection Lookup (BIL) : A Packet Classification s Algorithm with Rules Updating

TUPLE PRUNING USING BLOOM FILTERS FOR PACKET CLASSIFICATION

Scalable Packet Classification on FPGA

Binary Search Schemes for Fast IP Lookups

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

Toward Predictable Performance in Decision Tree based Packet Classification Algorithms

CS419: Computer Networks. Lecture 6: March 7, 2005 Fast Address Lookup:

Design of a Multi-Dimensional Packet Classifier for Network Processors

PACKET classification is an enabling function for a variety

Packet Classification: From Theory to Practice

Packet Classification. George Varghese

IP Address Lookup in Hardware for High-Speed Routing

Data Structures for Packet Classification

Fast Packet Classification Using Bloom filters

Introduction. Router Architectures. Introduction. Introduction. Recent advances in routing architecture including

A Configurable Packet Classification Architecture for Software- Defined Networking

Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification

Length Indexed Bloom Filter Based Forwarding In Content Centeric Networking

Rule Caching in Software- Define Networkings. Supervisor: Prof Weifa Liang Student: Zhenge Jia, u Date of presentation: 24 th May 2016

Fast and Scalable IP Address Lookup with Time Complexity of Log m Log m (n)

Efficient Packet Classification for Network Intrusion Detection using FPGA

FPGA Implementation of Lookup Algorithms

Shared-Memory Combined Input-Crosspoint Buffered Packet Switch for Differentiated Services

EECS 122: Introduction to Computer Networks Switch and Router Architectures. Today s Lecture

Introduction. Introduction. Router Architectures. Introduction. Recent advances in routing architecture including

Recursive Flow Classification: An Algorithm for Packet Classification on Multiple Fields

A STUDY & COMPARATIVE EVALUATION OF PACKET CLASSIFICATION ALGORITHMS

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Generic Architecture. EECS 122: Introduction to Computer Networks Switch and Router Architectures. Shared Memory (1 st Generation) Today s Lecture

LONGEST prefix matching (LPM) techniques have received

ITTC High-Performance Networking The University of Kansas EECS 881 Packet Switch I/O Processing

Algorithms for Packet Classification

FPX Architecture for a Dynamically Extensible Router

DBS: A Bit-level Heuristic Packet Classification Algorithm for High Speed Network

Scalable Packet Classification using Distributed Crossproducting of Field Labels

Fast Firewall Implementations for Software and Hardware-based Routers

Packet Classification Algorithm Based on Geometric Tree by using Recursive Dimensional Cutting (DimCut)

ANALYSIS AND EVALUATION OF DISTRIBUTED DENIAL OF SERVICE ATTACKS IDENTIFICATION METHODS

Survey on Multi Field Packet Classification Techniques

PERSONAL communications service (PCS) provides

HNPC: Hardware Network Packet Classifier for High Speed Intrusion Detection Systems

Packet Classification Algorithms: A Survey

QoS Provisioning Using IPv6 Flow Label In the Internet

Hashing Round-down Prefixes for Rapid Packet Classification

CAB: A Reactive Wildcard Rule Caching System for Software-Defined Networks

SSA: A Power and Memory Efficient Scheme to Multi-Match Packet Classification. Fang Yu, T.V. Lakshman, Martin Austin Motoyama, Randy H.

IPv4 ACLs, identified by ACL numbers, fall into four categories, as shown in Table 1. Table 1 IPv4 ACL categories

Multi-dimensional Packet Classification on FPGA: 100 Gbps and Beyond

Transcription:

Packet Classification using Rule Caching Nitesh B. Guinde, Roberto Rojas-Cessa and Sotirios G. Ziavras Electrical and Computer Engineering Department New Jersey Institute Technology Newark, NJ 72, USA Email: {nbg2, rojas, ziavras}@njit.edu Abstract Data rates on Internet links keep increasing the deployment optical technology. Packets coming into highspeed networks need to be classified quickly. Different packet classification schemes have been developed but they require a as classification is complex and is slow. We follow the approach providing support fast, as, in computer systems, to support packet classification schemes. Here, we propose a scheme based on to support packet classification. The scheme not only makes use faster and smaller memories but also reduces the to perform packet classification. It can make the performance the adopted classification scheme independent the connection flows. We present various packet-classification caching schemes for performing classification and provide the hit ratio results for various traffic models generated Classbench. Index Terms Packet classification, caching. I. INTRODUCTION Packet classification is an important and complex problem to solve []. It is used most commonly in firewalls, edge routers, network translators, and networks that provide quality service (QoS) guarantees. It is applied to the forwarding functions required for resource reservations, QOS routing, unicast routing and multicast routing provided by Internet routers. The forwarding database in the routers typically consists a large rules arranged in a priority order so that the best matching rule is placed first. A rule is a combination d header fields. The matching the fields requires three different matching mechanisms. Exact match: In this matching scheme, the header the packet should match exactly the field in the rule. It is usually applied to match protocol s. Prefix match: In this case, the prefix mask and the value are provided in the rule field, and the header the packet should match the prefix the field. It is used for matching network addresses. Range match: A range is given in the field and, the port the header a packet should be in a (rule) given range. Each rule has an action associated it, which corresponds to the operation that needs to be performed on the incoming and matched packet. This action could be either accepting or dropping packet (in the case a firewall) or forwarding the packet to a particular port (in the case a router), providing differentiated service to it, or some other action. The function the classification engine is to find the best matching rule that suits the incoming packet based on the header fields. There is a plethora algorithms developed to speed up the process packet classification [3, 4, 5, 6, 7, 8, 9]. Still, as the line rates are increasing, the ability to perform classification at high speeds could be overwhelming for high-speed networks. Research work has also been carried out in the router architecture design area to improve the speed this classification [, 2, 3, 4]. TCAMs are the a popular choice in terms architecture-based solutions since they fer high performance in terms speed and provide fast lookups independent the characteristics the rule sets. However, they are not well suited for large classifiers because low density, high power consumption, and relatively high cost. Some approaches use caching to exploit the temporal locality traffic. We can classify them as two types carrying out caching, namely flow caching and rule caching. Caching has also been examined from the accuracy perspective the design space using Bloom filters. However, misclassifications (i.e., false positives) are possible when involving such an approach. Most the solutions delve into flow-based caching since packets belonging to a flow are seen to follow a temporal locality pattern. Thus, it helps to the flow identification fields to a certain extent since all the packets belonging to the d flow could be worked upon in a faster manner. However, the active flows at any given instance could be large, in the millions, while most flows are active for a small duration. Also, as the link rates increase, the flows at classification nodes is also expected to increase, thus requiring the to scale up to support the rising speeds but at the same time, to ensure high hit rates. As an alternative, rule caching seems to be a potential solution for scaling up classification speeds since the rules would be generally much smaller than the concurrent active flows at the node. A technique was proposed to improve the search performance using characteristics inherent to Internet traffic []. A similar approach was used in [2] by employing a smart for evolving rules; it preserves classification semantics and uses

additional logic to match incoming packets to these rules. Our method studies the various effects traffic changes and size changes on the hit ratios. II. OUR METHOD We use the concept caching rules using the leastrecently used (LRU) policy to replace information in the. Our purpose is to study the effects different kinds traffic, including randomly generated traffic patterns, on the hit ratio our proposed scheme. For example, let us consider the classifier Table I shows. We first map the rules using a simple one-bit trie. Since, our method, the packet classification scheme is only relevant in retrieving the rule from the main, irrespective how many it takes to access the rule in the, any packet classification scheme would suffice. We create two tries, one for the source IP and the other one for the destination IP, as shown in Figures and 2, respectively. Rule numb er Sourc e IP Destination IP TABLE I: Example rules Source Desti- Port nation Port Proto col Flag s R * * :5 6:2 TCP SY N R2 * * :65535 6:2 TCP SY N R3 * * 2:2 3:3 TCP AC K R4 * * :65535 5:5 TCP * R5 * * :6 :65535 TCP * R6 * * * * * * S S9 S3 S S6 S4 S2 S7 For our caching scheme, we would like to move the whole rule into the. Along it, we also need to move some additional data structures that will help us in S Fig. Source IP trie S S8 S5 performing the decision making process on packet matching; i.e., to determine whether the rule needs to be classified using the packet classification scheme or whether the packet could be classified using the rules in the. Thus, we first allot priorities to the rules according to their precedence. If a rule has its priority bit set to, it means that there is no rule higher priority in the classifier that could be matched, if a rule match is observed at the. D D7 D D3 D5 D2 Thus, if a rule is in the its priority bit set to and an incoming packet matches the rule, then we can be rest assured that there is no better rule in the main ; hence, we can make a decision going to the main. The priority bit for a rule r is set to using any the following conventions: () there does not exist any rule which could be matched if r is matched; or (2) there exists no rule higher precedence which could be matched if rule r is matched. For example, if we look at Table I, we can see that R is much more precise compared to R2; at the same time, it is given a higher priority than R2. Therefore, the priority bit for rule R is set to and that for rule R2 it is set to. However, rules R3 and R5 will have their priority bit set to because both are mutually exclusive rules. The priority bit gives us some information regarding the rule in the and, to some extent, helps in making a decision if a rule match occurs. However, in the case a rule match in the the respective priority bit set to, additional rules need to be retrieved from main (and slower). We can decrease the steps in trie traversing by directly checking the rules that could be matched and those that have a priority higher than the rules in the. To achieve this, we need to store two address pointers, the source IP trie address pointer and the destination IP trie address pointer, only for the rules the priority bit set to. The rule data structure contains the following members: {source IP, destination IP; source port range (high, low); D4 D6 Fig.2 Destination IP trie 2

destination port range (high, low); protocol; flags; priority bit; source IP trie address pointer; destination IP trie address pointer}. Let us look at an example where we assume that rule R2 is in the and a TCP ack packet arrives source IP address., destination IP address.., source port 6, and destination port 7. A match is found in the but the matching rule holds the priority bit set to ; hence, retrieval more rules from the main, using the source address trie pointer and the destination IP trie address pointer, is needed. These pointers will take us directly to nodes S and D6, which contain rule R. Since a match will not be obtained, we move to the next rule, which is rule R2. Table II shows the priority bits and the address pointers the respective rules. TABLE II: Priority bits and address pointers Rule Priority Bit Address Pointer R S, D6 R2 S, D6 R3 S9, D7 R4 S, D2 R5 S, D R6 S, D In the Classbench filters [7], we notice that some sets filters (especially fw,, fw5) have a lot rules all wildcard characters or predominantly wildcard characters in either the source IP field or the destination IP field. This causes some problems in differentiating the rules, a lot rules having a priority bit set to and thereby increasing the misclassification ratio. For example, consider the following set rules from a sample fw5 file sorted in a best matching order; Table III shows some similar rules. TABLE III: Example rules R.../ 8.7.248.8/32 75 : 3 : * * 75 3 R2.../ 8.255.9.64/32 23 : 5 : 5 * * 23 R3.../ 76.4.76.255/32 53 : 53 53 : 53 * * R4.../ 235.52.38.85/32 67 : 67 22 : 22 * * R5.../ 63.22.84.33/32 23 : 37 : 37 * * 23 R6 69.63.37.234/32.../ : : * * 65535 65535 R7 66..7.247/32.../ 23 : 22 : 22 * * 23 R8 65.69.4.96/32.../ 53 : 53 53 :53 * * R9 6.66.94.42/32.../ 67: 67 : * * 65535 R2 83.56.32.227/32.../ 75 : 75 53 : 53 * * In the rules Table III, if a packet a source IP: 69.63.37.234, destination IP: 8.7.248.8/32, source port: 75, destination port: 3 arrives, then R is the best matching rule for the packet although other rules would also match. However, this is just one case while for many other packets which have the same source IP as the above but different destination IPs, the best matched rule will be R6. The probability that a packet a source IP: 69.63.37.234 will match rule R is one out 2 64 chances; in all the remaining cases, it will match R6. For such cases, the addition a priority bit alone does not help and results in a higher rate misclassifications. This is because even if we move rule R6 to the and all the incoming subsequent packets match R6, using the above method we still have to go to the main to find more information about the matching. This will make the classification scheme very inefficient as a miss would make the classification process incur into a large (time) penalty by accessing main. To avoid such a scenario, we provide an additional data structure, More specifically, we create a data structure that is 256 bits long and has information about the dependent rules. Let us choose the same rule R6; the dependent rules higher priority are R, R2, and R3. We keep a 256-bit vector for every in the field. The vectors contain all zeroes. We change the position the bit pointed to by the value in the to. Finally, we keep the bit vector that contains the smallest s along the marker signifying the the bit vector. The rest other bit vectors are deleted. For instance, in the above example the first bit vector will have two s, one in position 8 and the other one in position 76, as shown in Fig. 2. Similarly, the second bit vector will have three s in bit positions 4, 7, and 255. The third bit vector will have three s in positions 76, 9, and 248, whereas the fourth bit vector will have three s in positions 64, 8, and 255. Thus, the first will be chosen since the probability hitting a in the case the first is the lowest and, hence, will result in the lowest probability having a misclassification. st 2 nd 3 rd 4 th 76 8 255 76 9 64 8 4 77 255 Fig. 2: 256-bit vectors 248 255 255 We tested the use the data structures on the files which had a high misclassification ratio. We observed high drops in the misclassification ratio and a corresponding rises in the hit ratio. 3

Using the above data structures, we implemented the following caching policies and compared the results. File Corr traffic packets TABLE IV: Results Old Method Mishit Classific. ratio hit ratio CASE II Mis- Classific. fw4. M.468.44.73.7 fw5.5 M.22.63.7.5 fw5.5 2M.42.78.75.72 fw5. 2M.3.64.73.22 Method I : This method uses a simple LRU scheme where the rule is moved to the head the when there is a hit while it is moved downwards towards the tail every new addition a rule in the. Thus, when the is full the rule, which is at the bottom is moved out the and a new rule is inserted at the top. Also, we only use a priority bit the 256-bit vector. Method II : This method is the same as method I the difference that we use the 256-bit vector along the priority bit. Method III : We use the frequency-based replacement method for packet caching. It is very similar to the one used in [5] for managing s disk blocks in a file system. The method yields very good results in terms the hit ratio, the and, finally, the. According to Method III, the is divided into three sections: namely the NEW, MID and OLD sections. As soon as a rule is hit in the main, it is moved into the head the NEW section in the and its count is set to. As new rules get added into the, the old rules move downwards into the MID section. If there are no further hits, then the rule moves into the OLD section from where it moves eventually out the. While in the, if the rule is hit then it is moved to the head the NEW section irrespective its position in the. Every rule in the has a reference count associated it. The reference count the rule is not incremented in the NEW and OLD sections. However, if the rule hit is in the MID section, then its count is incremented and the rule is moved to the head the NEW section. If the is full, then we remove from the OLD section the rule that has the least count. We use the LRU policy in the case multiple counts are equal; i.e.; the rule at a lower location in the OLD section is removed. Method IV : Under this method, we study the effect delaying the caching rules as soon as there is hit. In other words, we maintain a separate count for the rule in the main and. If a rule is hit in the main, we increment the counter pertaining to the rule. We do not the rule until the count for the rule crosses a threshold. We maintain a sampling window T time slots (i.e., incoming packet counts). At every t=n*t, for n=, 2, 3,, we transfer into the the rules that have counts bigger than the chosen threshold. For the rest the time slots, no transfer takes place; only the count values the rules hit in the main and the are incremented. Once a rule is moved into the, the count this rule is preset to. We then increment the count the rule in the if it is a hit. When the is full, then we replace all the rules in the that have count values smaller than the chosen threshold the ones from the main which have accumulated counts greater than the threshold. In case there are no rules count values greater than this threshold in the main, then no transfer takes place. Also, in the case where there are no rules in the count values less than the threshold, then we compare the counts the rules in the against the counts the rules in the main (we focus on the rules that have counts greater than the chosen threshold); we replace a rule in the if the count a rule in the main exceeds the count the rule in the. In case where there are two such rules in the and only one rule in the main, then we use the LRU scheme according to which we replace the rule in the lower location the. The count values all the rules in the are preset to at time slots t= n*t. We show results for n= and a threshold value 3 in Table V. Method V : This method is very similar to the last method except that we remove the MID section in the. We also increment counts in the OLD section. Here, the OLD section is very wide containing 768 locations. The results in Tables V through VII are for the traffic model from file ACL and high, medium and low traffic locality, respectively. We notice that Method IV yields the best results in terms the hit ratio for all the Classbench files. Fig. 4 shows a graph the Y-axis representing the hit ratio for various files shown on the X-axis. TABLE V: Results for the traffic model from file ACL Traffic Type (Locality) High Method Misclassifica tion.828.6 88.32 8.47 6.55 I.8.8 86.7 9.27 72.9 II.83.3 88.32 8.39 6.55.82.4 86.7 9.9 72.9 III.83.3 88.32 8.39 6.55.82.4 86.7 9.9 72.9 IV.84.5 88.32 8. 68.73 (n=).838.5 86.7 8.53 7.6 V.83.3 88.32 8.39 82.44.82.4 86.7 9.8 98.79 III. CONCLUSION We presented various caching policies for packet classification and studied the effects each one them on the hit ratio using Classbench. Our basic method for 4

packet classification can make the classification scheme independent the connection flows. We also obtain a speedup on the packet classification process by supporting a classification scheme the proposed caching method. TRAFFIC TYPE (LOCA LITY) Medium TRAFFIC TYPE (LOCA LITY) Low METH OD TABLE VI Misclassification.796.3 88. 2.2.8 I.77.95 88.6 4.23 45.45 II.8.98 88.32 2.3.8.77.95 86.7 4.6 45.45 III.8. 88.32 2.3.9.82.4 86.7 9.9 72.9 IV.84.5 88.32..34 (n=).825.98 86.7 9.37 8.46 V.83.3 88.32 8.39 82.44.82.4 86.7 9.8 98.79 METH OD TABLE VII Misclassification.53.84 87.43 34.5 422.24 I.696.45 9.43 23.24 287.53 II.538.8 87.43 34.4 422.24.699.42 9.43 23.6 287.53 III.538.8 87.43 34.4 422.24.699.42 9.43 23.6 287.53 IV(n=).62.77 87.43 27.33 35.8.73.39 9.43 2.23 233.25 V.538.8 88.32 34.39 445.32.699.42 86.7 23.5 295.5 REFERENCES [] J. Philip, M. Taneja and R. Rojas-Cessa, Rule Caching for Packet Classification Support, in Proceedings IEEE Sarnf Symposium, Princeton, NJ, April 28-3, 28. [2] Q. Dong, S. Banerjee, J. Wang and D. Agrawal, Wire Speed Packet Classification TCAMs: A Few More Registers (And a Bit Logic) Are Enough [3] P. Gupta and N. McKeown, Packet Classification on Multiple Fields, in Proceedings ACM SIGCOMM, pp. 47-6, August 999. [4] P. Gupta and N. McKeown, Packet Classification using Hierarchical Intelligent Cuttings, in Proceedings Hot Interconnects VII, August 999. [5] T.V. Lakshman and D. Stiliadis, High-Speed Policy-based Packet Forwarding Using Efficient Multidimensional Range Matching, in Proceedings ACM SIGCOMM, pp. 23-24, September 998. [6] V. Srinivasan, S. Suri, G. Varghese, and M. Waldvogel, Fast and Scalable Layer Four Switching, in Proceedings ACM SIGCOMM, pp. 9-22, June 998. [7] F. Baboescu and G. Varghese, Scalable Packet Classification, in Proceedings ACM SIGCOMM, pages 9-22, August 2..9.8.7.6.5.4.3.2. acl acl2 acl3 acl4 acl5 fw fw2 fw3 fw4 fw5 ipc ipc2 [8] A. Feldmann and S. Muthukrishnan, Tradefs for Packet Classification, in Proceedings IEEE INFOCOM, pp. 93-22, March 2. [9] T.Y. C. Woo, A Modular Approach to Packet Classification: Algorithms and Results, in Proceedings IEEE INFOCOM, Vol. 3, pp. 23-222, March 2. [] M.H. Overmars and A.F. Van der Stappen, Range searching and point location among fat objects, Journal Algorithms, 2(3), pp. 629 656, November 996. [] G. Gibson, F. Shafai, and J. Podaima, Content Addressable Memory Storage Device, United States Patent 6,44,5, SiberCore Technologies, Inc, March 2. [] R.A. Kempke and A.J. McAuley, Ternary CAM Memory Architecture and Methodology, United States Patent 5,84,874. Motorola, Inc, November 998. [2] A. J. McAulay and P. Francis, Fast Routing Table Lookup Using CAMs, in Proceedings IEEE INFOCOM, Vol. 3, pp. 382-39, 993. [3] E. Spitznagel, D. Taylor, and J. Turner, Packet Classification Using Extended TCAMs, in Proceedings IEEE International Conference on Network Protocols (ICNP), pp. 2-3, 23. [4] K. Lakshminarayanan, A. Rangarajan, S. Venkatachary, Algorithms for Advanced Packet Classification Ternary CAMs. ACM SIGCOMM Computer Communication Review, Volume 35, Issue 4, pp.93 24, October 25. [5] J.T. Robinson and M. V. Devarakonda, "Data management using frequency-based replacement" in ACM SIGMETRICS Performance Evaluation Review 99, pages 34-42. [6] N. Guinde, S.G. Ziavras and R. Rojas-Cessa, Efficient Packet Classification on FPGAs also Targeting at Manageable Memory Consumption, in Proceedings the 4th International Conference on Signal Processing and Communication Systems, Gold Coast, Australia, 2, December 3-5, 2. [7] D. Taylor and J. Turner, ClassBench: APacket Classification Benchmark, Proc. IEEE Infocom 25, vol., pp. 268-279, 3-7 March, 25. Low Medium Fig. 4: hit ratio using Method IV for various Classbench files High 5