一、安装winpcap
下载后直接安装
二、启动CICFlowMeter
使用IDEA打开github项目:https://github.com/ahlashkari/CICFlowMeter.git
开启一个终端,进入到*/CICFlowMeter\jnetpcap\win\jnetpcap-1.4.r1425路径下,执行命令:
mvn install:install-file -Dfile=jnetpcap.jar -DgroupId=org.jnetpcap -DartifactId=jnetpcap -Dversion=1.4.1 -Dpackaging=jar
如果执行失败可能是未添加maven环境变量
执行结束进入项目根目录*/CICFlowMeter下,执行命令:
gradlew execute
在运行过程中报错:
虽然本地maven仓库中有jnetpcap-1.4.1的jar包和pom文件,但是执行时仍然去maven的默认仓库位置寻找该依赖
解决办法:将该依赖的pom文件及jar包拷贝到maven默认仓库位置
执行后会弹出如下界面:
点击NetWork:
根据需要选择离线数据集或实时数据:
本次测试使用离线数据pcap文件:
点击ok开始运行
运行结束后输出路径下会产生“输入文件名_flow.csv”文件,内容如下所示:
三、特征数据解读
(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 - - > 流在激活之前空闲的最小时间