IoT network traffic flow datasets and encoder models for IoT device behavioral representation learning
Data files
Jul 13, 2026 version files 22.52 GB
-
ae-categorical.tar.gz
423.55 MB
-
ae-numeric-limited.tar.gz
361.70 MB
-
ae-numeric.tar.gz
361.26 MB
-
DATA2025v1.tar.gz
12.64 GB
-
DATA2025v2.tar.gz
7.66 GB
-
README.md
10.02 KB
-
scripts.tar.gz
34.80 KB
-
vae-numeric-limited.tar.gz
535.99 MB
-
vae-numeric.tar.gz
537.99 MB
Abstract
This repository accompanies the research paper, Generalizable IoT Traffic Representations for Cross-Network Device Identification, and contains two large-scale IoT network traffic datasets, pretrained encoder models, and the complete processing pipeline used to reproduce the traffic representation learning methodology presented in the study.
The repository introduces two new datasets, DATA2025v1 and DATA2025v2, comprising approximately 16.5 million Custom Flow records collected from physical IoT devices operating in live network environments during 2025. DATA2025v1 contains traffic from 18 IoT device types collected in a university laboratory environment, while DATA2025v2 contains traffic from 10 overlapping device types collected in a separate deployment environment with a different network topology, background traffic, and user activity patterns. Together, these datasets support the evaluation of traffic representations across device generations and deployment environments.
In addition to the datasets, this repository provides five pretrained encoder models, source code, configuration files, and documentation required to reproduce the complete traffic representation learning pipeline. The released scripts transform raw Custom Flow records into normalized representations, construct train/validation/test partitions, and generate fixed-dimensional traffic embeddings using deterministic and variational autoencoder architectures.
This repository complements our previous DATA2016 Dryad release (https://doi.org/10.5061/dryad.6q573n6c1), which introduced the Custom Flow representation and provides detailed documentation of its structure and feature definitions. Together, the two repositories provide the datasets and software artifacts required to reproduce our studies on IoT traffic representation learning.
These resources are intended to support research on IoT device identification, traffic representation learning, cross-environment evaluation, network measurement, and reproducible benchmarking of traffic analysis methods.
This repository accompanies the research paper "Generalizable IoT Traffic Representations for Cross-Network Device Identification" and contains the datasets, pretrained encoder models, and processing pipeline required to reproduce the traffic representation learning methodology presented in the accompanying study.
This release builds upon our previous DATA2016 Dryad repository:
which introduced the Custom Flow representation and provides detailed documentation of the flow format, feature definitions, and dataset organization. The present repository contributes:
- DATA2025v1 and DATA2025v2 datasets
- Five pretrained encoder models
- Preprocessing and embedding-generation scripts
- Configuration files and supporting documentation
Together, the two Dryad repositories provide the complete collection of datasets, pretrained models, and software artifacts used for our studies on IoT traffic representation learning.
Repository Contents
This release consists of the following downloadable archives.
| Archive | Description |
|---|---|
DATA2025v1.tar.gz |
DATA2025v1 Custom Flow dataset |
DATA2025v2.tar.gz |
DATA2025v2 Custom Flow dataset |
ae-numeric.tar.gz |
Deterministic autoencoder checkpoint |
ae-categorical.tar.gz |
Autoencoder with entity embeddings |
ae-numeric-limited.tar.gz |
Limited-training autoencoder checkpoint |
vae-numeric.tar.gz |
Variational autoencoder checkpoint |
vae-numeric-limited.tar.gz |
Limited-training variational autoencoder checkpoint |
scripts.tar.gz |
Complete preprocessing and embedding-generation pipeline |
Datasets
This release contains two large-scale IoT traffic datasets represented using the Custom Flow format.
Note: The DATA2016 is not included in this release. It is available separately from our previous Dryad repository (linked above).
DATA2025v1
- Approximately 7.7 million Custom Flow records
- 18 IoT device types
- Collected from a university laboratory deployment
- Used for representation learning and downstream evaluation
DATA2025v2
- Approximately 8.8 million Custom Flow records
- 10 overlapping IoT device types
- Collected from a separate deployment environment
- Used exclusively for cross-environment evaluation
Both datasets consist of traffic generated by physical IoT devices operating in live network environments. They do not contain synthetically generated traffic or replay traces.
Parquet File Format
The DATA2025v1 and DATA2025v2 datasets are distributed as collections of Apache Parquet files. Each Parquet file contains Custom Flow records for a single day of network traffic, where each row represents one Custom Flow. All Parquet files within both datasets share the same schema.
The columns contained in each Parquet file are summarized below.
| Column(s) | Description |
|---|---|
Device |
Device MAC address. |
FirstSeen |
Unix timestamp of the first packet in the flow. |
RemIP |
Remote IPv4 address. |
Proto |
Transport-layer protocol. |
DevPort |
Device-side port number. |
RemPort |
Remote-side port number. |
TotalFlowSize |
Total number of bytes in the flow. |
PacketCount |
Total number of packets in the flow. |
P00_TO – P09_TO |
Time offsets of the first 10 packets relative to the flow timestamp (FirstSeen). |
P00_PS – P09_PS |
Packet sizes of the first 10 packets. |
P00_D – P09_D |
Packet directions of the first 10 packets (1 = device → remote, 0 = remote → device). |
C_000 – C_2999 |
Encoded payload representation of up to the first 10 packets. The values -4 and -8 denote the start and end of each packet payload, respectively, while unused positions are padded with -255. |
Further details of the Custom Flow representation, including its design rationale and payload encoding methodology, are available in our previous DATA2016 Dryad repository (linked above).
Pretrained Encoder Models
Five pretrained TensorFlow encoder models are included.
| Archive | Model |
|---|---|
ae-numeric.tar.gz |
Deterministic Autoencoder |
ae-categorical.tar.gz |
Autoencoder with Entity Embeddings |
ae-numeric-limited.tar.gz |
Limited-training Autoencoder |
vae-numeric.tar.gz |
Variational Autoencoder |
vae-numeric-limited.tar.gz |
Limited-training Variational Autoencoder |
Each archive expands into the directory structure expected by the embedding-generation scripts.
For example,
ae-numeric.tar.gz
└── ae-numeric/
└── blocks4_latent40_epochs100/
└── final_model/
Similarly,
vae-numeric.tar.gz
└── vae-numeric/
└── blocks4_latent40/
└── checkpoint_epoch_100/
The default paths in config.py correspond to these extracted directory structures.
Processing Pipeline
The archive scripts.tar.gz contains the complete processing pipeline.
After extraction, its structure is
scripts/
├── README.md
├── config.py
├── configs/
│ ├── data2016-config.yaml
│ ├── data2025v1-config.yaml
│ └── data2025v2-config.yaml
├── modules/
│ ├── cutils.py
│ └── env_config.py
├── 1a-scale_numeric.py
├── 1b-scale_categorical.py
├── 2-consolidate_splits.py
├── 3a-generate_ae_numeric_embeddings.py
├── 3b-generate_ae_categorical_embeddings.py
├── 3c-generate_vae_numeric_embeddings.py
├── 3d-generate_ae_numeric_limited_embeddings.py
└── 3e-generate_vae_numeric_limited_embeddings.py
Pipeline Overview
The released pipeline consists of three stages.
Stage 1 — Custom Flows → Scaled Custom Flows
Convert unscaled Custom Flow datasets into normalized numeric or categorical representations suitable for neural-network inference.
Scripts:
1a-scale_numeric.py1b-scale_categorical.py
Stage 2 — Construct Dataset Splits
Merge daily files into consolidated
- training
- validation
- testing
datasets.
Script:
2-consolidate_splits.py
Stage 3 — Generate Traffic Embeddings
Generate fixed-dimensional traffic embeddings using one of the pretrained encoder models.
Scripts:
3a-generate_ae_numeric_embeddings.py3b-generate_ae_categorical_embeddings.py3c-generate_vae_numeric_embeddings.py3d-generate_ae_numeric_limited_embeddings.py3e-generate_vae_numeric_limited_embeddings.py
The generated embeddings correspond to those used throughout the accompanying paper for downstream IoT device identification.
Quick Start
- Download and extract
- DATA2025v1.tar.gz
- DATA2025v2.tar.gz
- the desired encoder model(s)
- scripts.tar.gz
- Edit
scripts/config.py
to specify
- dataset locations (
UNSCALED_CUSTOMFLOWS_DIR) - environment configuration (
ENVIRONMENT_CONFIG_YAML) - encoder checkpoint paths (
AE_NUMERIC,AE_CATEGORICAL,VAE_NUMERIC,AE_NUMERIC_LIMITED,VAE_NUMERIC_LIMITED)
- Generate scaled Custom Flows
python 1a-scale_numeric.py
python 1b-scale_categorical.py
- Construct train/validation/test splits
python 2-consolidate_splits.py
- Generate traffic embeddings
python 3a-generate_ae_numeric_embeddings.py
or execute any of the remaining embedding-generation scripts corresponding to the desired encoder.
Detailed documentation for each processing stage is provided in
scripts/README.md
Requirements
- Python 3.9 or later
- TensorFlow ≥ 2.10
- pandas
- numpy
- pyarrow
- tqdm
- pyyaml
- joblib
Install the required packages using
pip install "tensorflow>=2.10" pandas numpy pyarrow tqdm pyyaml joblib
GPU acceleration is optional but recommended when generating embeddings for large datasets.
Reproducibility
This release is intended to support the reproducibility of the accompanying study.
The provided datasets, pretrained encoder models, configuration files, and processing scripts are sufficient to reproduce the complete traffic representation learning pipeline and regenerate the traffic embeddings used throughout the experimental evaluation.
Citation
We encourage users of these datasets and software artifacts to cite the accompanying paper:
A. Sivanathan, D. Warren, D. Mishra, S. Ruj, N. Fernandes, Q. Z. Sheng, M. Tran, B. Luo, D. Coscia, G. Batista, and H. Habibi Gharakheili, Generalizable IoT Traffic Representations for Cross-Network Device Identification, IEEE Transactions on Network and Service Management (TNSM), 2026 (to appear).
We also encourage users of the Custom Flow representation or the DATA2016 dataset to cite our previous Dryad release:
