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 timeoutsort-- sorts flow records according to specified fields (requiresnumpy)hist-- calculates histograms of flows length, size, duration or ratehist_np-- calculates histograms using multiple threads (requiresnumpy, much faster, but uses more memory)fit-- creates General Mixture Models (GMM) fitted to flow records (requiresscipy)plot-- generates plots from flow records and fitted models (requirespandasandscipy)generate-- generates flow records from histograms or mixture modelssummary-- produces TeX tables containing summary statistics of flow dataset (requiresscipy)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
Metadata
Release files for flow-models 2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flow_models-2.2.tar.gz | 45.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flow_models-2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.9 kB
Release files / flow_models-2.2.tar.gz
| Download URL | flow_models-2.2.tar.gz |
|---|---|
| Size | 45.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0debe4a9e1c75ca1e9c4af53eaa45a77c9242cd6614280d83d413a155b19bc37
|
|
BLAKE2b-256 checksum How to use checksums |
4776e260a0c04acc23ea2f5c376d85f307a054f778451d833014bba8bdaf47d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.6
|
Release files / flow_models-2.2-py3-none-any.whl
| Download URL | flow_models-2.2-py3-none-any.whl |
|---|---|
| Size | 56.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8474a02b679f0eeee4bf63f03335947456863aa2401eb6f2178ecb68d05e8316
|
|
BLAKE2b-256 checksum How to use checksums |
544fe74529088f8fc587970d98ca3aa1b7ecfb196b7b7f9ab34f613c4b6d1faf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.1 CPython/3.12.6
|