1. 程式人生 > 其它 >第十八章 常用庫NFstream

第十八章 常用庫NFstream

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