munhouiani / Deep-Packet

Pytorch implementation of deep packet: a novel approach for encrypted traffic classification using deep learning
MIT License
183 stars 56 forks source link
cnn deep-learning pytorch pytorch-lightning traffic-classification

Deep Packet

Details in blog post: https://blog.munhou.com/2020/04/05/Pytorch-Implementation-of-Deep-Packet-A-Novel-Approach-For-Encrypted-Tra%EF%AC%83c-Classi%EF%AC%81cation-Using-Deep-Learning/

Changelog

EDIT: 2022-11-30

EDIT: 2022-09-27

EDIT: 2022-01-18

EDIT: 2022-01-17

How to Use

Data Pre-processing

python preprocessing.py -s /path/to/CompletePcap/ -t processed_data

Create Train and Test

python create_train_test_set.py -s processed_data -t train_test_data

Train Model

Application Classification

For CNN model

python train_cnn.py -d train_test_data/application_classification/train.parquet -m model/application_classification.cnn.model -t app

For Resnet model

python train_resnet.py -d train_test_data/application_classification/train.parquet -m model/application_classification.cnn.model -t app

Traffic Classification

For CNN model

python train_cnn.py -d train_test_data/traffic_classification/train.parquet -m model/traffic_classification.cnn.model -t traffic

For Resnet model

python train_resnet.py -d train_test_data/traffic_classification/train.parquet -m model/traffic_classification.cnn.model -t traffic

Evaluation Result (CNN)

Application Classification

Traffic Classification

Model Files

Download the pre-trained CNN models here.

Elapsed Time

Preprocessing

Code ran on AWS c5.4xlarge

7:01:32 elapsed

Train and Test Creation

Code ran on AWS c5.4xlarge

2:55:46 elapsed

Traffic Classification Model Training (CNN)

Code ran on AWS g5.xlarge

24:41 elapsed

Application Classification Model Training (CNN)

Code ran on AWS g5.xlarge

7:55 elapsed