{'fraction_non_alphanumeric': 0.022727272727272728, 'fraction_numerical': 0.001976284584980237, 'mean_word_length': 4.505434782608695, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
On the Practical Detection of Heavy Hitter Flows

The detection of of Heavy Hitter (HH) flows in a network device is a critical building block in many control and management tasks. A flow is considered a Heavy Hitter flow if its portion from the total traffic surpasses a given threshold. One of the most important aspect of this detection is its practicality; i.e., being able to work in line rate using the available scarce local memory in the device. In this paper, we present a practical heavy hitters detection algorithm that requires a constant amount of memory (not related to the number of flows or the number of packets) and performs at most O(1) operation per packet to keep with line rate. We present an analysis of errors for our algorithm and compare it to state-of-the-art monitoring solutions, showing a superior performance where the allocated memory is less than 1 MB. In particular, we are able to detect more HH flows with less false positive without increasing the per-packet processing time.