Package: tcbench
An ML/DL framework for Traffic Classification TCDocumentationtcbench design is cored in the following objectives:Easing ML/DL models training/testing results replicability.Tight integration with public TC datasets with ease data installation and curation,Model tracking viaAIM.Rich command line for executing modeling campaings and collecting performance reports....wait, what is Traffic Classification?A computer network is formed by hosts that exchange
information, namelypackets, according
to standardized protocols (e.g.,HTTPis the protocol used for the web).
So to properly operate/manage networks one is required to monitor
this flow of information and react accordingly. For instance,
in an office/enterprise environment, one might want to prioritize video meeting traffic
while limit social media traffic.Traffic classificationis the the act of labeling an exchange of packets
between network hosts based on the application that generated it.
For instance, you want to identify traffic related to zoom/webx/skype/etc. calls
or traffic related to twitter/instagram/facebook/mastodon
out of all traffic flowing throught the network.MotivationsThe academic literature is ripe with methods and proposals for TC.
Yet, it is scarce of code artifacts and public datasets
do not offer common conventions of use.We designed tcbench with the following goals in mind:GoalState of the arttcbenchData curationThere are a few public datasets for TC, yet no common format/schema, cleaning process, or standard train/val/test folds.An (opinionated) curation of datasets to create easy to use parquet files with associated train/val/test fold.CodeTC literature has no reference code base for ML/DL modelingtcbench isopen sourcewith an easy to use CLI based onclickModel trackingMost of ML framework requires integration with cloud environments and subscription servicestcbench usesaimstackto save on local servers metrics during training which can be later explored via its web UI or aggregated in report summaries using tcbenchInstallCreate a conda environmentconda create -n tcbench python=3.10 pip
conda activate tcbench
python -m pip install tcbenchFor the developer versionpython -m pip install tcbench[dev]Features and roadmaptcbench is still under development, but (as suggested by its name) ultimately aims
to be a reference framework for benchmarking multiple ML/DL solutions
related to TC.At the current stage, tcbench offersIntegration with 4 datasets, namelyucdavis-icdm19,mirage19,mirage22andutmobilenet21.
You can use these datasets and their curated version independently from tcbench.
Check out thedataset installprocess anddataset loading tutorial.Good support for flowpic input representation.Initial support for for 1d packet time series (based on network packets properties) input representation.Data augmentation functionality for flowpic input representation.Modeling via XGBoost, vanilla DL supervision and contrastive learning (via SimCLR or SupCon).More exiting features including more datasets and algorithms will come in the next months.Stay tuned ;)!Papers"Replication: Contrastive Learning and Data Augmentation in Traffic Classification Using a Flowpic Input Representation"preprintA. Finamore, C. Wang, J. Krolikowski, J. M. Navarro, F. Chen, D. RossiACM Internet Measurements Conference (IMC), 2023