# pcap_classifier
利用神经网络对网络数据包进行分类
## 分类标记
VPN-nonVPN dataset (ISCXVPN2016) 数据集给出了一些 .pcap 文件,存储了各种流量的数据包,但是并没有直接给出每个包具体标记的编码,所以需要一种简单的编码方式,来描述每个文件具体的数据类型和应用类型。这些类型的分类在 [classify.py](./src/classify.py) 文件中给出,分别定义了数据有没有经过 VPN,还有每种类型的数据,以及应用程序的编码。以便于后期分类中的处理。
## 数据处理
VPN-nonVPN dataset (ISCXVPN2016) 提供了许多的 .pcap 包,可以直接使用 scapy 包对其进行处理,截取以太网帧负载的前 1024 个字节,对于不够 1024 字节的,用 0 填充。
对于每个包数据,以及相应的分类标记,作为一个元组 (tuple) 存储,将所有的数据包信息存储在一个列表中,整体持久化成一个 pickle 文件,这样既方便存取,又比直接存储大量的图片性能更高。
对于一些意义不大的数据包进行了丢弃处理,比如 TCP 中标记了 SYN, ACK, FIN 的包,这些包并没有实际的负载,所以可以认为是噪声,还有用于 DNS 解析的包,也和实际应用关系不大。
最后利用 random_split() 函数将整体数据集,随机的切分成训练集和测试集,验证模型在尽可能随机的情况下的分类性能。
数据处理的详细代码见 [dataset.py](./src/dataset.py)
## 模型优化
原模型对网络包进行了图像化处理,利用二维卷积操作进行分类,实现了不错的效果,不过网络包并没有显然的二维空间上的相关性,而直接进行图像处理的形式,显然说不通,于是将二维卷积换成一维卷积,也同样的到了不错的效果。在同样的数据集的情况下,得到了更好的分类性能。
具体模型及训练过程见 [main.ipynb](./src/main.ipynb)
## 分类结果
对每个文件的数据集取最多 1024 条,其中 5% 作为测试集,其余用于训练集。
总共 133274 条数据,其中训练集 126611 条,测试集 6663 条,训练 `epoch = 50`, `batch_size = 4096`
---
### vpn 2 分类
此次实验只对全体数据集做 vpn 2 分类,分类结果如下:
分类测试性能图:
| 训练准确率 | 训练损失 | 测试准确率 |
| ---------------------------------------- | ----------------------------------------- | ----------------------------------------- |
| <img src='./images/acc_2.svg' width=280> | <img src='./images/loss_2.svg' width=280> | <img src='./images/tacc_2.svg' width=280> |
| 正确数量 | 全部数量 | 正确率 |
| -------- | -------- | ------ |
| 6661 | 6663 | 0.9996 |
下面为对应每个类型的正确率:
| nonvpn | vpn |
| ------ | --- |
| 0.999 | 1.00 |
----
### type 6 分类
此次实验只对全体数据集做数据类型 6 分类,不区分 app 和 vpn,分类结果如下:
分类测试性能图:
| 训练准确率 | 训练损失 | 测试准确率 |
| ---------------------------------------- | ----------------------------------------- | ----------------------------------------- |
| <img src='./images/acc_6.svg' width=280> | <img src='./images/loss_6.svg' width=280> | <img src='./images/tacc_6.svg' width=280> |
| 正确数量 | 全部数量 | 正确率 |
| -------- | -------- | ------ |
| 6547 | 6663 | 0.98 |
下面为对应每个类型的正确率:
| chat | email | stream | file | voip | p2p |
| ---- | ----- | ------ | ---- | ---- | ---- |
| 0.99 | 0.94 | 0.999 | 0.98 | 0.98 | 1.00 |
---
### app 16 分类
对 vpn 和 非 vpn 不做区分,只关注具体的 app,分类结果如下:
分类测试性能图:
| 训练准确率 | 训练损失 | 测试准确率 |
| ----------------------------------------- | ------------------------------------------ | ------------------------------------------ |
| <img src='./images/acc_16.svg' width=280> | <img src='./images/loss_16.svg' width=280> | <img src='./images/tacc_16.svg' width=280> |
| 正确数量 | 全部数量 | 正确率 |
| -------- | -------- | ------ |
| 6386 | 6663 | 0.958 |
下面为对应每个 app 的正确率:
| aim | email | facebook | ftp | gmail | hangouts | icq | netflix |
| ---- | ----- | -------- | ---- | ----- | -------- | ---- | ------- |
| 0.86 | 0.87 | 0.95 | 0.98 | 0.93 | 0.96 | 0.90 | 0.97 |
| scp | sftp | skype | spotify | vimeo | voipbuster | youtube | bittorrent |
| ---- | ---- | ----- | ------- | ----- | ---------- | ------- | ---------- |
| 0.96 | 0.99 | 0.97 | 0.96 | 0.97 | 0.98 | 0.98 | 1.00 |
---
## 参考文献
1. <https://www.unb.ca/cic/datasets/vpn.html>
2. G. Draper-Gil, A. H. Lashkari, M. S. I. Mamun, and A. A. Ghorbani, “Characterization of encrypted and vpn traffic using time-related,” in Proceedings of the 2nd international conference on information systems security and privacy (ICISSP), 2016, pp. 407–414.
3. <https://github.com/AidenZhang1998/Network-traffic-classification>
4. <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/>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
使用神经网络对网络数据包进行分类.zip (18个子文件)
pcap_classifier-master
src
main.ipynb 9KB
dataset.py 2KB
logger.py 220B
classify.py 8KB
LICENSE 1KB
pcap.code-workspace 43B
.gitignore 65B
images
acc_16.svg 80KB
acc_6.svg 86KB
tacc_2.svg 85KB
loss_2.svg 84KB
loss_6.svg 86KB
tacc_6.svg 87KB
acc_2.svg 83KB
loss_16.svg 81KB
tacc_16.svg 81KB
README.md 5KB
利用神经网络对网络数据包进行分类_pcap_classifier
项目内附说明
如果解压失败请用ara软件解压.txt 42B
共 18 条
- 1
资源评论
好家伙VCC
- 粉丝: 1934
- 资源: 9137
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功