In accordance with a method and apparatus for classifying data packets, a
packet classification architecture includes a cached hash table that
stores a subset of classification identifiers (i.e. classIDs) for a
plurality of data flows. A forwarding engine coupled to the cache receives
packets and first attempts to classify the packet by generating a hash key
based on header information from the packet and using the hash key to
lookup a corresponding entry in the hash table. A hash caching policy
according to the invention aims at maintaining high, classification speeds
by (1) employing a hash function that evenly distributes hash key indexes,
thus reducing the likelihood of collisions and by (2) employing a hash
removal scheme that uses Internet traffic statistics and characteristics
to improve the likelihood that hash entries corresponding to statistically
important flows will remain cached.
In conformità con un metodo e un apparecchio per classificare i pacchetti di dati, un'architettura di classificazione del pacchetto include una tabella nascosta del hash che immagazzina un sottoinsieme dei contrassegni di classificazione (cioè classIDs) per una pluralità di flussi di dati. Un motore di spedizione accoppiato al nascondiglio riceve i pacchetti ed il primo tenta di classificare il pacchetto per la generazione della chiave del hash basata sulle informazioni di intestazione dal pacchetto ed usando la chiave del hash ad occhiata un'entrata corrispondente nella tabella del hash. Una politica nascondente del hash secondo l'invenzione punta su effettuare il high, velocità di classificazione (1) impiegando una funzione del hash che distribuisce uniformemente gli indici chiave del hash, così riducendo la probabilità degli scontri e (2) impiegando uno schema di rimozione del hash che usa le statistiche e le caratteristiche di traffico del Internet per migliorare la probabilità che le entrate del hash che corrispondono ai flussi statisticamente importanti rimarranno nascoste.