当前位置: 首页 > news >正文

win下载配置CIC Flowmeter环境并提取流量特征

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、下载CIC Flowmeter
  • 二、安装java、maven、gradle和IDEA
    • 1.java 1.8
    • 2.maven
    • 3.gradle
    • 4.IDEA
  • 三、CICFlowMeter-master使用
  • 四、流量特征
    • 1.含义
    • 2.获取


前言

配了一整天环境终于配好了
2023.3.7亲测有效
如果有什么地方写的不清楚可以礼貌提问
知无不言 但我不一定知道 😃
(ps 在上班回消息慢请见谅

一、下载CIC Flowmeter

https://github.com/ahlashkari/CICFlowMeter
在这里插入图片描述
下载完后去https://sourceforge.net/projects/jnetpcap/下载最新的jNetPcap,解压后把原文件中的CICFlowMeter\CICFlowMeter-master\jnetpcap\win\jnetpcap-1.4.r1425替换掉
在这里插入图片描述

二、安装java、maven、gradle和IDEA

1.java 1.8

①打开官网:https://www.oracle.com/java/technologies/downloads/ ,选择 java archive:
在这里插入图片描述

②选择 Java SE 8 (8u211 and later):
在这里插入图片描述
③下载Windows x64 Installer :
在这里插入图片描述

④后面就是点击exe,一直下一步完成安装,注意选择路径中不能有中文:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑤找到安装目录中bin和jre的路径,复制并加入系统变量path中:

D:\java\bin
D:\java\jre

在这里插入图片描述
在这里插入图片描述

⑥重新打开cmd输入java -version查看验证:
在这里插入图片描述
看到版本号1.8,成功!

2.maven

①打开官网链接下载apache-maven-3.9.0-bin.zip:
网址:https://maven.apache.org/download.cgi
下载完成后解压到没有中文的路径下即可
在这里插入图片描述
在这里插入图片描述
②配置环境变量:
在系统变量中新建,变量名:MAVEN_HOME,变量值:maven文件夹路径:
在这里插入图片描述

在系统变量path中新建:%MAVEN_HOME%\bin
在这里插入图片描述
③打开cmd验证:mvn -v
,显示版本号,成功!
在这里插入图片描述
④配置本地仓库
记事本打开D:\maven\apache-maven-3.9.0\conf:
在这里插入图片描述
修改第53行:这里写你的本地仓库的路径
在这里插入图片描述

3.gradle

①打开网址https://gradle.org/releases/ 选择一个版本下载binary-only,然后解压至某一个无中文路径下
在这里插入图片描述
②配置环境变量:环境变量新建GRADLE_HOME,变量值:gradle文件夹路径(D:\gradle\gradle-8.0.2)
在这里插入图片描述

在系统变量path中新建:%GRADLE_HOME%\bin
在这里插入图片描述

③重新打开cmd,输入 gradle -v 。显示如下说明配置成功。(显示的有点慢就耐心等一下~
在这里插入图片描述

4.IDEA

①下载地址:https://www.jetbrains.com/idea/download/#section=windows,下载社区版

在这里插入图片描述
②下载完后点击exe开始安装,先next,然后选择安装路径:
在这里插入图片描述
勾选建立桌面快捷方式:
在这里插入图片描述
之后默认即可,完成:
在这里插入图片描述

③打开,初次使用选择不导入:
在这里插入图片描述
在这里插入图片描述

④设置jdk
打开file、project structure
在这里插入图片描述
在这里插入图片描述
⑤设置maven:打开file、setting,搜索maven:
在这里插入图片描述
修改地址:
在这里插入图片描述
在这里插入图片描述

⑥设置gradle:打开file,setting,搜索gradle:
在这里插入图片描述

⑦Jnetpcap设置:
打开file、project structure、modules、dependencies:
在这里插入图片描述
点击+,导入jnetpcap.dll与jnetpcap.jar文件,路径如图所示
在这里插入图片描述
把对勾打上
在这里插入图片描述

三、CICFlowMeter-master使用

①使用IDEA打开CICFlowMeter-master文件夹,注意一定要放在没有中文的路径下!!!!!,选择Maven项目
在这里插入图片描述

②将CICFlowMeter-master\jnetpcap\win\jnetpcap-1.4.r1425\jnetpcap.jar复制到CICFlowMeter-master根目录下

在这里插入图片描述
先把jar包放在本地
D:>cd CICFlowMeter\CICFlowMeter-master
D:\CICFlowMeter\CICFlowMeter-master>mvn install:install-file “-Dfile=jnetpcap.jar” “-DgroupId=org.jnetpcap” “-DartifactId=jnetpcap” “-Dversion=1.4.1” “-Dpackaging=jar”

成功:
在这里插入图片描述
执行:gradlew execute
在这里插入图片描述
成功:
在这里插入图片描述
根据需要选择离线数据集或实时数据,本次测试使用离线数据pcap文件:
在这里插入图片描述

添加pcap文件和输出文件地址,点击ok开始运行:
在这里插入图片描述

此时点击OK没有反应,去https://sourceforge.net/projects/jnetpcap/下载最新的jNetPcap,然后把原文件中的
运行结束后输出路径下会产生“输入文件名_flow.csv”文件,内容如下所示:
在这里插入图片描述

实时使用需要先找到注册表,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
在这里插入图片描述

查看可用的网卡参数,然后抓包即可,开始之后需要等待一会儿
在这里插入图片描述
停止之后,csv自动保存 D:\CICFlowMeter\CICFlowMeter-master\data\daily
在这里插入图片描述

四、流量特征

1.含义

(1)fl_dur - - > 流持续时间

(2)tot_fw_pk(流出方向?) - - > 在正向上包的数量

(3)tot_bw_pk - - > 在反向上包的数量

(4)tot_l_fw_pkt - - > 正向数据包的总大小

(5)fw_pkt_l_max - - > 包在正向上的最大大小

(6)fw_pkt_l_min - - > 包在正向上的最小大小

(7)fw_pkt_l_avg - - > 数据包在正向的平均大小

(8)fw_pkt_l_std - - > 数据包正向标准偏差大小

(9)Bw_pkt_l_max - - > 包在反向上的最大大小

(10)Bw_pkt_l_min - - > 包在反向上的最小大小

(11)Bw_pkt_l_avg - - > 数据包在反向的平均大小

(12)Bw_pkt_l_std - - > 数据包反向标准偏差大小

(13)fl_byt_sv - - > 流字节率,即每秒传输的数据包字节数

(14)fl_pkt_s - - > 流包率,即每秒传输的数据包数

(15)fl_iat_avg - - > 两个流之间的平均时间

(16)fl_iat_std - - > 两个流之间标准差

(17)fl_iat_max - - > 两个流之间的最大时间

(18)fl_iat_minv - - > 两个流之间的最小时间

(19)fw_iat_tot - - > 在正向发送的两个包之间的总时间

(20)fw_iat_avg - - > 在正向发送的两个包之间的平均时间

(21)fw_iat_std - - > 在正向发送的两个数据包之间的标准偏差时间

(22)fw_iat_max - - > 在正向发送的两个包之间的最大时间

(23)fw_iat_min - - > 在正向发送的两个包之间的最小时间

(24)bw_iat_tot - - > 反向发送的两个包之间的总时间

(25)bw_iat_avg - - > 反向发送的两个数据包之间的平均时间

(26)bw_iat_std - - > 反向发送的两个数据包之间的标准偏差时间

(27)bw_iat_max - - > 反向发送的两个包之间的最大时间

(28)bw_iat_min - - > 反向发送的两个包之间的最小时间

(29)fw_psh_flag - - > 在正向传输的数据包中设置PSH标志的次数(UDP为0)

(30)bw_psh_flag - - > 在反向传输的数据包中设置PSH标志的次数(UDP为0)

(31)fw_urg_flag - - > 在正向传输的数据包中设置URG标志的次数(UDP为0)

(32)bw_urg_flag - - > 反方向数据包中设置URG标志的次数(UDP为0)

(33)fw_hdr_len - - > 用于前向方向上的包头的总字节数

(34)bw_hdr_len - - > 用于后向方向上的包头的总字节数

(35)fw_pkt_s - - > 每秒前向包的数量

(36)bw_pkt_s - - > 每秒后向包的数量

(37)pkt_len_min - - > 流的最小长度

(38)pkt_len_max - - > 流的最大长度

(39)pkt_len_avg - - > 流的平均长度

(40)pkt_len_std - - > 流长度的方差

(41)pkt_len_va - - > 最小包到达间隔时间

(42)fin_cnt - - > 带有FIN的包数量

(43)syn_cnt - - > 带有SYN的包数量

(44)rst_cnt - - > 带有RST的包数量

(45)pst_cnt - - > 带有PUSH的包数量

(46)ack_cnt - - > 带有 ACK的包数量

(47)urg_cnt - - > 带有URG的包数量

(48)cwe_cnt - - > 带有CWE的包数量

(49)ECE - - > 带有ECE的包数量

(50)down_up_ratio - - > 下载和上传的比例

(51)pkt_size_avg - - > 数据包的平均大小

(52)fw_seg_avg - - > 观察到的前向方向上数据包的平均大小

(53)bw_seg_avg - - > 观察到的后向方向上数据包的平均大小

(54)fw_byt_blk_avg - - > 在正向上的平均字节数块速率

(55)fw_pkt_blk_avg - - > 在正向方向上数据包的平均数量

(56)fw_blk_rate_avg - - > 在正向方向上平均bulk速率

(57)bw_byt_blk_avg - - > 在反向上的平均字节数块速率

(58)bw_pkt_blk_avg - - > 在反向方向上数据包的平均数量

(59)bw_blk_rate_avg - - > 在反向方向上平均bulk速率

(60)subfl_fw_pk - - > 在正向子流中包的平均数量

(61)subfl_fw_byt - - > 子流在正向中的平均字节数

(62)subfl_bw_pkt - - > 反向子流中数据包的平均数量

(63)subfl_bw_byt - - > 子流在反向中的平均字节数

(64)fw_win_byt - - > 在正向的初始窗口中发送的字节数

(65)bw_win_byt - - > 在反向的初始窗口中发送的字节数

(66)Fw_act_pkt - - > 在正向方向上具有至少1字节TCP数据有效负载的包

(67)fw_seg_min - - > 在正方向观察到的最小segment尺寸

(68)atv_avg - - > 流在空闲之前处于活动状态的平均时间

(69)atv_std - - > 流在空闲之前处于活动状态的标准偏差时间

(70)atv_max - - > 流在空闲之前处于活动状态的最大时间

(71)atv_min - - > 流空闲前激活的最小时间

(72)idl_avg - - > 流在激活之前空闲的平均时间

(73)idl_std - - > 流量在激活前处于空闲状态的标准偏差时间

(74)idl_max - - > 流在激活之前空闲的最大时间

(75)idl_min - - > 流在激活之前空闲的最小时间

2.获取

官方网站为:https://www.unb.ca/cic/datasets/ids-2017.html
直接前往官网,最底部有下载按钮:

http://205.174.165.80/CICDataset/CIC-IDS-2017/Dataset/
在这里插入图片描述
如上图所示,在目录中,有三类文件,其中 GeneratedLabelledFlows 是完整提取文件,而 MachineLearningCSV 则是在前者基础上进行修剪后的版本,剔除了 IP 和时间戳等不适合机器学习的属性列,如果只是单纯进行机器学习训练,只需要下载后者即可。

相关文章:

win下载配置CIC Flowmeter环境并提取流量特征

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载CIC Flowmeter二、安装java、maven、gradle和IDEA1.java 1.82.maven3.gradle4.IDEA三、CICFlowMeter-master使用四、流量特征1.含义2.获取前言 配了一整…...

【LeetCode刷题-Java/Python】二分查找

二分查找704.二分查找题目实现总结35.搜索插入位置题目实现34. 在排序数组中查找元素的第一个和最后一个位置题目实现69.x的平方根题目实现367. 有效的完全平方数题目实现704.二分查找 题目 题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一…...

Linux 6.2 已正式发布

Linus Torvalds 发布了稳定的 Linux 6.2 内核,这是 2023 年的第一个主要内核版本。硬件方面,Linux 6.2 提升了 Intel Arc 显卡 (DG2/Alchemist) 的稳定性,真正做到开箱即用。英特尔的 On Demand 驱动程序现在状态良好,适用于第 4 …...

Kubernetes 101,第一部分,基础知识

已经有一段时间了,我想花点时间坐下来写写关于Kubernetes 的文章。时机已到。 简而言之,Kubernetes是一个用于自动化和管理容器化应用程序的开源系统。Kubernetes 就是关于容器的。 ❗如果你对什么...

企业级信息系统开发学习笔记1.7 基于XML配置方式使用Spring MVC

文章目录零、本节学习目标一、Spring MVC概述1、MVC架构2、Spring MVC3、使用Spring MVC的两种方式二、基于XML配置与注解的方式使用Spring MVC(一)创建Spring项目【SpringMVCDemo01】(二)在pom文件里添加相关依赖(三&…...

java反射,动态代理

1. 反射 1.1 反射的概述: ​ 专业的解释(了解一下): ​ 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; ​ 对于任意一个对象,都能够调用它的任意属性和方法…...

React(六):Redux的使用、react-redux简化代码、redux模块化、RTK的使用

React(六)一、Redux测试项目搭建1.创建store仓库2.创建reducer函数(纯函数)3.constants.js保存action名字4.修改store中的数据5.动态生成action二、React中如何使用redux1.安装redux2.创建store3.组件中订阅store4.派发action修改…...

静态库和动态库的打包与使用

静态库和动态库 静态库和动态库的打包 生成可执行程序时链接使用 运行可执行程序时加载使用 提前声明,笔者示例的文件有mian.c/child.c/child.h。OK,我们先了解一下,库文件是什么?它其实就是打包了一堆实现常用功能的代码文件. ⭐…...

h264编码之SPS解析

一、概念 SPS即Sequence Paramater Set,又称作序列参数集。SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。 二、定义 H.264标准协议中规定的SPS格式位于文档的7.3.2.1.1,如下图所示: 1、profile_idc 根据《T-REC-H.264-2…...

使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法

使用enrichKEGG做通路富集分析时&#xff0c;一直报错&#xff1a;显示No gene can be mapped....k <- enrichKEGG(gene gene, organism "hsa", pvalueCutoff 1, qvalueCutoff 1)但是之前用同样的基因做分析是能够成功地富集到通路&#xff0c;即便是网上的数据…...

框架——MyBatis的入门案例

框架概述1.1什么是框架框架&#xff08;Framework&#xff09;是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交与的方法&#xff1b;另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义…...

hadoop兼容性验证

前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构&#xff0c;主要解决海量数据的存储和海量数据的分析计算问题&#xff0c;广义上来说&#xff0c;Hadoop通常是指一个更广泛的概念–hadoop生态圈 Hadoop优缺点&#xff1a; 优点&#xff1a; 1、高可靠性&#x…...

运维提质增效,有哪些办法可以做

凡是代码&#xff0c;难免有 bug。 开发者们的日常&#xff0c;除了用一行行代码搭产品外&#xff0c;便是找出代码里的虫&#xff0c;俗称 debug。 随着移动互联网的快速发展&#xff0c;App 已经成为日常生活中不可或缺的一部分。但是在开发者/运维人员的眼里简直就是痛苦的…...

c++基础——结构体

结构体结构体&#xff08;struct&#xff09;&#xff0c;可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。定义结构体struct abc {int x;int y; } e[array_length];const abc a; abc b, B[array_length], tmp; abc *c;上例中定义了一个名为 abc 的结构体&…...

applicationContext相关加载

spring refresh 概述 refresh是一个方法&#xff0c;spring中所有的ApplicationContext容器都需要通过refresh方法初始化&#xff1b; 处理步骤 其中refresh方法包含12个主要的处理步骤&#xff1a; 1、第1个步骤做前置准备 2、第2~6步骤创建BeanFactory&#xff08;Appl…...

数据同步工具Sqoop

大数据Hadoop之——数据同步工具SqoopSqoop基本原理及常用方法 1 概述 Apache Sqoop&#xff08;SQL-to-Hadoop&#xff09;项目旨在协助RDBMS&#xff08;Relational Database Management System&#xff1a;关系型数据库管理系统&#xff09;与Hadoop之间进行高效的大数据交…...

Kafka 版本

kafka-2.11-2.1.1 : Kafka 1.0.0 后&#xff0c;Kafka 版本命名规则从 4 位到 3 位Kafka版本号是 2.1.1前 2 : 大版本号 (MajorVersion)中 1 : 小版本号或次版本号 (Minor Version)后 1 : 修订版本号 (Patch) Kafka 0.7 最早开源版本 &#xff1a; 只提供最基础的消息队列功…...

ElasticSearch 在Java中的各种实现

ES JavaAPI的相关体系&#xff1a; 词条查询 所谓词条查询&#xff0c;也就是ES不会对查询条件进行分词处理&#xff0c;只有当词条和查询字符串完全匹配时&#xff0c;才会被查询到。 等值查询-term 等值查询&#xff0c;即筛选出一个字段等于特定值的所有记录。 【SQL】 s…...

SpringBoot整合Knife4j

文章目录前言一、Knife4j是什么&#xff1f;二、使用步骤1.导入依赖2.编写配置文件3.编写controller和实体类4.测试总结前言 接上篇整合Swagger链接奉上http://t.csdn.cn/9mXSu 一、Knife4j是什么&#xff1f; 官方文档&#xff1a;https://doc.xiaominfo.com/ knife4j可以理解…...

MyISAM和InnoDB存储引擎的区别

目录前言存储引擎区别事务外键表单的存储数据查询效率数据更新效率如何选择前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎&#xff0c;在5.5版本之前默认采用MyISAM存储引擎&#xff0c;从5.5开始采用InnoDB存储引擎。 存储引擎 存储引擎是&#xff1a;数据库管理系统…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...