Skip to main content

A framework for analysis and modeling of IP network flows

Project description

flow-models: A framework for analysis and modeling of IP network flows

Packages like flow-tools or nfdump provide tools for filtering and calculating simple summary/top-N statistics from network flow records. They lack, however, any capabilities for analysis and modeling of flow features (length, size, duration, rate, etc.) distributions. The goal of this framework is to fill this gap.

flow-models is a software framework for creating precise and reproducible statistical flow models from NetFlow/IPFIX flow records. It can be used to merge split records, calculate histograms of flow features and create General Mixture Models fitting them. Created models can be used both as an input in analytical calculations and to generate realistic traffic in simulations.

You can cite the following paper if you use flow-models in your research:

@article{flow-models,
    title = {flow-models: A framework for analysis and modeling of IP network flows},
    journal = {SoftwareX},
    volume = {17},
    pages = {100929},
    year = {2022},
    issn = {2352-7110},
    doi = {10.1016/j.softx.2021.100929},
    author = {Piotr Jurkiewicz}
}

The framework can be installed from Python Package Index (PyPI) using the following command:

pip install flow-models

A detailed documentation, including usage examples, is available at: https://flow-models.readthedocs.io

Apart from the framework, the Git repository also contains a library of flow models created with it, including histograms and fitted mixture models.

Provided tools

The framework currently includes the following tools:

  • merge -- merges flows which were split across multiple records due to active timeout
  • sort -- sorts flow records according to specified fields (requires numpy)
  • hist -- calculates histograms of flows length, size, duration or rate
  • hist_np -- calculates histograms using multiple threads (requires numpy, much faster, but uses more memory)
  • fit -- creates General Mixture Models (GMM) fitted to flow records (requires scipy)
  • plot -- generates plots from flow records and fitted models (requires pandas and scipy)
  • generate -- generates flow records from histograms or mixture models
  • summary -- produces TeX tables containing summary statistics of flow dataset (requires scipy)
  • convert -- converts flow records between supported formats

Following the Unix philosophy, each tool is a separate Python program aimed at a single purpose. Features provided by the tools are orthogonal and they are tailored to be used sequentially in data-processing pipelines.

Models library

The repository of flow models, containing histogram CSV files, fitted mixture models, plots, and full flow records in case of smaller models is available at: https://github.com/piotrjurkiewicz/flow-models#models-library

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flow_models-2.2.tar.gz (45.6 kB view details)

Uploaded Source

Built Distribution

flow_models-2.2-py3-none-any.whl (56.2 kB view details)

Uploaded Python 3

File details

Details for the file flow_models-2.2.tar.gz.

File metadata

  • Download URL: flow_models-2.2.tar.gz
  • Upload date:
  • Size: 45.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for flow_models-2.2.tar.gz
Algorithm Hash digest
SHA256 0debe4a9e1c75ca1e9c4af53eaa45a77c9242cd6614280d83d413a155b19bc37
MD5 c86f00d8392d79ad95cce20266884a72
BLAKE2b-256 4776e260a0c04acc23ea2f5c376d85f307a054f778451d833014bba8bdaf47d7

See more details on using hashes here.

File details

Details for the file flow_models-2.2-py3-none-any.whl.

File metadata

  • Download URL: flow_models-2.2-py3-none-any.whl
  • Upload date:
  • Size: 56.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for flow_models-2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8474a02b679f0eeee4bf63f03335947456863aa2401eb6f2178ecb68d05e8316
MD5 c6d2743ffbdb06954d4e9fcc0bd5a62c
BLAKE2b-256 544fe74529088f8fc587970d98ca3aa1b7ecfb196b7b7f9ab34f613c4b6d1faf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page