Flow-level network measurement is critical to many network applications. Among various measurement tasks, packet loss detection and heavy-hitter detection are two most important measurement tasks, which we call the two key tasks. In practice, the two key tasks are often required at the same time, but existing works seldom handle both tasks. In this paper, we design ChameleMon to support the two key tasks simultaneously. One key design/novelty of ChameleMon is to shift measurement attention as network state changes, through two dimensions of dynamics: 1) dynamically allocating memory between the two key tasks; 2) dynamically monitoring the flows of importance. To realize the key design, we propose a key technique, leveraging Fermat's little theorem to devise a flexible data structure, namely FermatSketch. FermatSketch is dividable, additive, and subtractive, supporting the two key tasks. We have fully implemented a ChameleMon prototype on a testbed with a Fat-tree topology. We conduct extensive experiments and the results show ChameleMon supports the two key tasks with low memory/bandwidth overhead, and more importantly, it can automatically shift measurement attention as network state changes.
翻译:流级网络测量对许多网络应用至关重要。在各种测量任务中,丢包检测和重流检测是两项最重要的测量任务,我们称之为两个关键任务。实践中,这两个关键任务往往需同时完成,但现有研究很少能同时处理两者。本文设计了ChameleMon以同时支持这两个关键任务。ChameleMon的一个关键设计/创新在于,通过两个动态维度实现测量注意力随网络状态变化而转移:1)动态分配两个关键任务之间的内存;2)动态监测重要流。为实现这一关键设计,我们提出一项核心技术,利用费马小定理设计了一种灵活的数据结构,即FermatSketch。FermatSketch具有可分割、可加和、可减去的特性,支持这两个关键任务。我们在基于胖树拓扑的测试平台上完整实现了ChameleMon原型,并进行了大量实验。结果表明,ChameleMon能以较低的内存/带宽开销支持这两个关键任务,更重要的是,它能随网络状态变化自动转移测量注意力。