1:NFStream简介
NFStream是一个Python框架,提供快速、灵活和富有表现力的数据结构,旨在使在线或离线网络数据的工作既简单又直观。它的目标是成为在Python中进行实际的、真实的网络数据分析的基本高级构建块。此外,它还有一个更广泛的目标,即成为一个通用的网络数据分析框架,为研究人员提供跨实验的数据重现性。
2:特性
加密的第7层的可见性:它允许NFStream执行可靠的加密应用识别和元数据指纹提取(例如TLS, SSH, DHCP, HTTP)。
统计特征提取:NFStream提供了基于流的统计特征提取的最新技术。它既包括事后统计特征(例如数据包大小和到达间隔时间的最小值、平均值、stddev和最大值),也包括早期流特征(例如前n个数据包大小的顺序、到达间隔时间和方向)。
面向格结构的机器学习:NFStream旨在将使用于网络流量管理的机器学习方法可重现和可部署。通过使用NFStream作为一个通用框架,研究人员可以确保模型使用相同的特征计算逻辑进行训练,从而实现公平的比较。此外,经过训练的模型可以使用NFPlugins部署和评估在实时网络上。
3:使用
3.1:Encrypted application identification and metadata extraction加密应用识别和元数据提取
(1)my_streamer = NFStreamer()
NFStreamer()参数详解参考:# https://www.nfstream.org/docs/api#nfstreamer
NFStreamer方法:
FLOW INTERATION METHOD
:for flow in my_streamer:
print(flow) # or whatever
PANDAS DATAFRAME CONVERSION(转换)
my_dataframe = my_streamer.to_pandas(columns_to_anonymize=[]) my_dataframe.head()
CSV FILE CONVERSION
total_flows_count = my_streamer.to_csv(path=None, columns_to_anonymize=[], flows_per_file=0)
# https://www.nfstream.org/docs/api#nfstreamer
(2)NFlow是NFStream中的流表示。它包含根据NFStreamer配置的所有被计算的流特性。下面我们详细介绍每个被实现的特性。
# https://www.nfstream.org/docs/api#nfstreamer
3.2 Post-mortem statistical flow features extraction(数据包大小和到达间隔时间的最小值、平均值、stddev和最大值)
# https://www.nfstream.org/docs/api#nfstreamer
3.3Early statistical flow features extraction
# https://www.nfstream.org/docs/api#nfstreamer