Skip to main page content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
. 2021 Mar 3;21(5):1735.
doi: 10.3390/s21051735.

Data Stream Processing for Packet-Level Analytics

Affiliations

Data Stream Processing for Packet-Level Analytics

Alessandra Fais et al. Sensors (Basel). .

Abstract

One of the most challenging tasks for network operators is implementing accurate per-packet monitoring, looking for signs of performance degradation, security threats, and so on. Upon critical event detection, corrective actions must be taken to keep the network running smoothly. Implementing this mechanism requires the analysis of packet streams in a real-time (or close to) fashion. In a softwarized network context, Stream Processing Systems (SPSs) can be adopted for this purpose. Recent solutions based on traditional SPSs, such as Storm and Flink, can support the definition of general complex queries, but they show poor performance at scale. To handle input data rates in the order of gigabits per seconds, programmable switch platforms are typically used, although they offer limited expressiveness. With the proposed approach, we intend to offer high performance and expressive power in a unified framework by solely relying on SPSs for multicores. Captured packets are translated into a proper tuple format, and network monitoring queries are applied to tuple streams. Packet analysis tasks are expressed as streaming pipelines, running on general-purpose programmable network devices, and a second stage of elaboration can process aggregated statistics from different devices. Experiments carried out with an example monitoring application show that the system is able to handle realistic traffic at a 10 Gb/s speed. The same application scales almost up to 20 Gb/s speed thanks to the simple optimizations of the underlying framework. Hence, the approach proves to be viable and calls for the investigation of more extensive optimizations to support more complex elaborations and higher data rates.

Keywords: data stream processing; multicore programming; packet-level analysis; software defined networking.

PubMed Disclaimer

Conflict of interest statement

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analysis, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.

Figures

Listing 1
Listing 1
Business logic of the source operator.
Listing 2
Listing 2
Structure of a sniffer object.
Listing 3
Listing 3
Business logic of the flowid operator.
Listing 4
Listing 4
Business logic of the stats operator.
Listing 5
Listing 5
Business logic of the sink operator.
Listing 6
Listing 6
Construction of the application graph.
Figure 1
Figure 1
High-level view of the framework architecture.
Figure 2
Figure 2
Stream processing application. Stream elements are represented in grey. The application receives a stream in input and performs some computation on each received item, producing a stream of results in output. Operators can be stateless or stateful, in case they maintain a state containing information on the data processed so far.
Figure 3
Figure 3
Data-flow graph representation of a stream processing application. The processing pipeline is defined by the operators (nodes) in the graph. Their business logic is executed on every stream item traversing the corresponding path in the graph. The application logic applied to each flowing element results from the execution of successive transformations in the graph.
Figure 4
Figure 4
Processing pipeline of the example application. At the capturing level, three software packet-capturing tools are currently supported: pcap, TPACKET, and Netmap.
Figure 5
Figure 5
Speed test evaluation.
Figure 6
Figure 6
Evaluation on real-traffic replayed at 10 Gb/s from a pcap file. Application is run with source and sink operators only.
Figure 7
Figure 7
Evaluation on real-traffic replayed at 10 Gb/s from a pcap file. Application is run with all four operators in the processing pipeline.
Figure 8
Figure 8
Evaluation on real-traffic replayed at 20 Gb/s from a pcap file. Application is run with source and sink operators only.
Figure 9
Figure 9
Evaluation on real-traffic replayed at 20 Gb/s from a pcap file. Application is run with all four operators in the processing pipeline.

References

    1. Mencagli G., Torquati M., Griebler D., Danelutto M., Fernandes L.G.L. Raising the Parallel Abstraction Level for Streaming Analytics Applications. IEEE Access. 2019;7:131944–131961. doi: 10.1109/ACCESS.2019.2941183. - DOI
    1. WindFlow: A C++17 Data Stream Processing Parallel Library for Multicores and GPUs. [(accessed on 24 January 2021)]; Available online: https://paragroup.github.io/WindFlow/
    1. Fais A., Procissi G., Giordano S., Oppedisano F. Data Stream Processing in Software Defined Networks: Perspectives and Challenges; Proceedings of the 2020 IEEE 25th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD); Pisa, Italy. 14–16 September 2020; pp. 1–6. - DOI
    1. McKeown N., Anderson T., Balakrishnan H., Parulkar G., Peterson L., Rexford J., Shenker S., Turner J. OpenFlow: Enabling Innovation in Campus Networks. SIGCOMM Comput. Commun. Rev. 2008;38:69–74. doi: 10.1145/1355734.1355746. - DOI
    1. Bosshart P., Daly D., Gibb G., Izzard M., McKeown N., Rexford J., Schlesinger C., Talayco D., Vahdat A., Varghese G., et al. P4: Programming Protocol-independent Packet Processors. SIGCOMM Comput. Commun. Rev. 2014;44:87–95. doi: 10.1145/2656877.2656890. - DOI

LinkOut - more resources