Improving the performance of passive network monitoring applications with memory locality enhancements

  • Authors:
  • Antonis Papadogiannakis;Giorgos Vasiliadis;Demetres Antoniades;Michalis Polychronakis;Evangelos P. Markatos

  • Affiliations:
  • Institute of Computer Science, Foundation for Research and Technology - Hellas, P.O. Box 1385, Heraklion, GR-711-10, Greece;Institute of Computer Science, Foundation for Research and Technology - Hellas, P.O. Box 1385, Heraklion, GR-711-10, Greece;Institute of Computer Science, Foundation for Research and Technology - Hellas, P.O. Box 1385, Heraklion, GR-711-10, Greece;Computer Science Department, Columbia University, New York, USA;Institute of Computer Science, Foundation for Research and Technology - Hellas, P.O. Box 1385, Heraklion, GR-711-10, Greece

  • Venue:
  • Computer Communications
  • Year:
  • 2012

Quantified Score

Hi-index 0.24

Visualization

Abstract

Passive network monitoring is the basis for a multitude of systems that support the robust, efficient, and secure operation of modern computer networks. Emerging network monitoring applications are more demanding in terms of memory and CPU resources due to the increasingly complex analysis operations that are performed on the inspected traffic. At the same time, as the traffic throughput in modern network links increases, the CPU time that can be devoted for processing each network packet decreases. This leads to a growing demand for more efficient passive network monitoring systems in which runtime performance becomes a critical issue. In this paper we present locality buffering, a novel approach for improving the runtime performance of a large class of CPU and memory intensive passive monitoring applications, such as intrusion detection systems, traffic characterization applications, and NetFlow export probes. Using locality buffering, captured packets are being reordered by clustering packets with the same port number before they are delivered to the monitoring application. This results in improved code and data locality, and consequently, in an overall increase in the packet processing throughput and decrease in the packet loss rate. We have implemented locality buffering within the widely used libpcap packet capturing library, which allows existing monitoring applications to transparently benefit from the reordered packet stream without modifications. Our experimental evaluation shows that locality buffering improves significantly the performance of popular applications, such as the Snort IDS, which exhibits a 21% increase in the packet processing throughput and is able to handle 67% higher traffic rates without dropping any packets.