Abstract
One of the most important tasks of a network device is packet classification, the support of which has become particularly important with the increasing development of the Internet. In packet classification, the input packets are matched to a set of rules, so that the rule corresponding to each packet is found, and the relevant action(s) is applied to the packet. With the emergence of software-defined networks, many-field rule sets have been introduced, leading to further challenges in the area. One of the best methods of packet classification for today's applications is to use hash tables, because of the fast update support and reasonable searching speed. A well-known packet classification algorithm using hash tables is tuple space search (TSS). TSS extracts the non-wildcard bit positions pattern of the rules, to be used as a hash key in the hash table. Rules with the same pattern are placed in the same cluster. On the other hand, machine learning techniques can be useful to cluster the rule set in many-filed packet classification, due to the increase in the number and type of fields. In this paper, we try to cluster rules using neural gas networks. In this method, there is a specific pattern of bit positions for each cluster of rules, which is non-wildcard in all the rules belonging to the cluster and used as a hash key. The rules of each cluster is hashed into a hash table. In the classification task, the hash key for each cluster is extracted from the packets header according to the non-wildcard pattern of that cluster. Then, using a hashing function, the related rules are investigated to find the highest-priority matching rule. The experimental results show that 93% improvement of throughput on average compared to TSS.