◆孔德艷 陳 磊
(深圳華威世紀(jì)科技股份有限公司 廣東 518029)
互聯(lián)網(wǎng)作為當(dāng)前信息化發(fā)展的核心力量,與傳統(tǒng)工業(yè)、電子商務(wù)、金融業(yè)等服務(wù)業(yè)全面融合,已成為推動經(jīng)濟(jì)發(fā)展的核心力量。隨之而來的網(wǎng)絡(luò)應(yīng)用多樣性與網(wǎng)絡(luò)信息規(guī)模的爆炸性增長,特別是其海量、多源、異構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)給網(wǎng)絡(luò)資源與流量的監(jiān)控帶來了前所未有的挑戰(zhàn)。如何保證互聯(lián)網(wǎng)絡(luò)的有序、安全,實(shí)現(xiàn)高效的網(wǎng)絡(luò)管理與網(wǎng)絡(luò)控制,已成為各界的研究熱點(diǎn)。
網(wǎng)絡(luò)流量分類0是指按照網(wǎng)絡(luò)的應(yīng)用類型(如FTP, P2P,WWW等),將基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信雙向TCP/UDP流進(jìn)行分類。準(zhǔn)確地識別網(wǎng)絡(luò)流量信息并進(jìn)行精細(xì)化的管理,是實(shí)現(xiàn)有效流量監(jiān)控、網(wǎng)絡(luò)優(yōu)化、態(tài)勢分析和安全檢測的重要基礎(chǔ)。Spark是基于內(nèi)存的新一代并行計(jì)算框架,其在計(jì)算性能方面較MapReduce有更為出色的表現(xiàn)。本文綜合考慮新形勢下網(wǎng)絡(luò)流量分類及特征選擇所面臨的問題,通過構(gòu)建基于大數(shù)據(jù)處理的網(wǎng)絡(luò)流量分類系統(tǒng)模型,為當(dāng)前海量數(shù)據(jù)的處理提供整體思路。
模式匹配與機(jī)器學(xué)習(xí)均是當(dāng)前較為常見的流量分類方法,前者實(shí)現(xiàn)較為簡單,但應(yīng)用范圍有限;后者通過將流量分類過程抽象為各類機(jī)器學(xué)習(xí)場景,在具備較高準(zhǔn)確率的同時(shí)提高了方法的適用范圍。模式匹配即針對待分類流量的相關(guān)參數(shù),如端口號、特征字段等信息,通過與已知的參數(shù)進(jìn)行對比,從而確定其類別。由于各類模式匹配方法處理流量時(shí)具有較大的局限性,因此難以進(jìn)行規(guī)范化的推廣使用。機(jī)器學(xué)習(xí)分類方法將網(wǎng)絡(luò)流中的共性特征—流特征作為研究對象,通過對其進(jìn)行統(tǒng)計(jì)分析,不同類型的流量被統(tǒng)一整理為流統(tǒng)計(jì)信息,再通過機(jī)器學(xué)習(xí)算法進(jìn)行分類識別,極大提高了適用范圍。同時(shí)借助機(jī)器學(xué)習(xí)算法的不斷進(jìn)步,此種分類方法的準(zhǔn)確率也不斷提高。
新型網(wǎng)絡(luò)應(yīng)用與大規(guī)模復(fù)雜網(wǎng)絡(luò)的不斷涌現(xiàn),網(wǎng)絡(luò)數(shù)據(jù)量已從TB級上升到PB級,并繼續(xù)處于高速增長中。由此,網(wǎng)絡(luò)流量特征選擇不斷面臨新的挑戰(zhàn),在考慮方法的準(zhǔn)確性與有效性的同時(shí),能否高效處理大規(guī)模數(shù)據(jù)并具有良好的可擴(kuò)展性,成為學(xué)者們新的關(guān)注重點(diǎn)。云計(jì)算因其強(qiáng)大的計(jì)算能力得到了廣泛的關(guān)注。Hadoop[2]是大數(shù)據(jù)處理技術(shù)的杰出代表,在網(wǎng)絡(luò)流量分類領(lǐng)域有諸多與之相關(guān)的研究成果,MapReduce和HDFS是Hadoop的核心部分。然而有研究指出,由于MapReduce的“映射-規(guī)約”式計(jì)算模型比較簡單,適合處理數(shù)據(jù)量大但邏輯簡單的計(jì)算場景,難以完全適配機(jī)器學(xué)習(xí)中可能存在的迭代、嵌套等復(fù)雜計(jì)算0。Spark是基于內(nèi)存的新一代并行計(jì)算框架,其在迭代計(jì)算方面較Mapreduce有更為出色的表現(xiàn)。
對于目前各種入侵行為對計(jì)算機(jī)網(wǎng)絡(luò)和系統(tǒng)的攻擊,入侵檢測系統(tǒng)已經(jīng)能夠在很大程度上對其進(jìn)行抵御,但是還存在著很多不足之處。
大規(guī)模復(fù)雜網(wǎng)絡(luò)流量分類需要解決以下幾個(gè)問題:
(1)如何進(jìn)行海量網(wǎng)絡(luò)流量數(shù)據(jù)的預(yù)處理工作,包括數(shù)據(jù)的采集、清洗以及大規(guī)模的存儲;
(2)如何從流量數(shù)據(jù)中歸納出最具代表性的特征組合,以實(shí)現(xiàn)在不影響分類準(zhǔn)確率的前提下,降低數(shù)據(jù)維度提高處理效率;
(3)如何利用流量的最優(yōu)特征集合,在兼顧準(zhǔn)確率和執(zhí)行效率的前提下,進(jìn)行最有效的網(wǎng)絡(luò)流量識別與分類;
(4)如何根據(jù)流量分類的結(jié)果指導(dǎo)更佳有效的網(wǎng)絡(luò)管理、網(wǎng)絡(luò)配置以及網(wǎng)絡(luò)態(tài)勢分析。
為解決上述問題,在結(jié)合網(wǎng)絡(luò)流量分類基本流程的基礎(chǔ)上,本文提出一種基于大數(shù)據(jù)平臺的網(wǎng)絡(luò)流量分類系統(tǒng)模型,其整體架構(gòu)如圖1所示。該模型由四層組成,分別為:數(shù)據(jù)預(yù)處理層、特征選擇層、流量分類層以及流量應(yīng)用層。這四層彼此間相互獨(dú)立而又聯(lián)系密切,可在以Spark為核心的大數(shù)據(jù)處理平臺上一站式實(shí)現(xiàn),共同助力于網(wǎng)絡(luò)流量處理任務(wù)。
圖1 基于大數(shù)據(jù)平臺的網(wǎng)絡(luò)流量分類系統(tǒng)模型圖
數(shù)據(jù)處理層是整個(gè)模型的基礎(chǔ),主要功能是通過在相關(guān)網(wǎng)絡(luò)節(jié)點(diǎn)上使用網(wǎng)絡(luò)爬蟲工具或網(wǎng)絡(luò)傳感器等設(shè)備,收集海量的流量數(shù)據(jù)包。然后使用數(shù)據(jù)預(yù)處理算法,計(jì)算數(shù)據(jù)包的流統(tǒng)計(jì)特征,將其整合為流量數(shù)據(jù)集并儲存。
特征選擇層是整個(gè)模型的核心處理層之一,主要任務(wù)是完成對預(yù)處理層提供的實(shí)時(shí)數(shù)據(jù)或海量的歷史數(shù)據(jù)進(jìn)行特征選擇。通過剔除特征集中不相關(guān)或冗余的特征,實(shí)現(xiàn)海量數(shù)據(jù)的合理降維,有效降低分類模型的復(fù)雜度,在保證準(zhǔn)確率的前提下大幅提高分類過程的執(zhí)行效率。
流量分類層是整個(gè)模型的另一核心層,主要任務(wù)是利用流量的最優(yōu)特征集合,通過機(jī)器學(xué)習(xí)算法以及集成學(xué)習(xí)、深度學(xué)習(xí)等思想,對網(wǎng)絡(luò)流量數(shù)據(jù)集進(jìn)行識別并區(qū)分其應(yīng)用類型。
流量應(yīng)用層是對流量分類的結(jié)果進(jìn)行合理的分析,并提供一系列的應(yīng)用服務(wù),包括:網(wǎng)絡(luò)管理、網(wǎng)絡(luò)配置、網(wǎng)絡(luò)態(tài)勢分析以及網(wǎng)絡(luò)安全指導(dǎo)。
以Spark為核心的大數(shù)據(jù)處理平臺是整個(gè)模型的載體。從數(shù)據(jù)采集和預(yù)處理,分布式的流式數(shù)據(jù)緩存以及大規(guī)模歷史數(shù)據(jù)的離線存儲,再到上層中的特征選擇與流量分類算法的并行化執(zhí)行,以Spark為核心的大數(shù)據(jù)處理技術(shù)為整個(gè)模型的運(yùn)行提供了一站式的支撐平臺。
兩種性別基因表達(dá)平衡的不斷進(jìn)化,導(dǎo)致表型的性別均衡,掩蓋了細(xì)胞機(jī)制的性別偏差。平衡可能是由選擇壓力驅(qū)動的,該選擇壓力確?;瘜W(xué)計(jì)量的X:A比例在男性、女性的相似性,使得XX和XY細(xì)胞均在適當(dāng)?shù)募?xì)胞功能的限度內(nèi)工作。但任何表型的性別均等僅僅是可能的,因?yàn)閄X和XY細(xì)胞各自執(zhí)行不同的功能,即,用不同的分子機(jī)制來調(diào)整其基因組的差異。XX細(xì)胞必須調(diào)整其基因組/表觀基因組系統(tǒng),使之可以與XY細(xì)胞以不同的方式正常工作。這使得性別平衡是暫時(shí)的,因?yàn)榧?xì)胞環(huán)境中的任何擾動(例如由年齡、環(huán)境毒素和產(chǎn)生腫瘤的突變引起)可以影響這一平衡,導(dǎo)致疾病的性別差異,而這在健康細(xì)胞中不存在。
2.3.1 網(wǎng)絡(luò)流量數(shù)據(jù)預(yù)處理層
該層的主要功能是獲取并存儲可供上層分析計(jì)算的網(wǎng)絡(luò)流量數(shù)據(jù),是整個(gè)模型的入口層。在數(shù)據(jù)獲取的來源方面,該層被設(shè)計(jì)為既可以通過抓包方式來獲取網(wǎng)絡(luò)中的非結(jié)構(gòu)化數(shù)據(jù),同時(shí)也可以直接批量的錄入處理完畢的結(jié)構(gòu)化數(shù)據(jù)。
在獲取非結(jié)構(gòu)化數(shù)據(jù)時(shí),該層通過在相關(guān)的網(wǎng)絡(luò)節(jié)點(diǎn)上布置網(wǎng)絡(luò)爬蟲工具或網(wǎng)絡(luò)傳感器等設(shè)備,收集網(wǎng)絡(luò)流量數(shù)據(jù)包。在解析數(shù)據(jù)包時(shí),采用Spark并行計(jì)算架構(gòu),每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上分別啟動一個(gè)Spark子任務(wù),對不同的網(wǎng)絡(luò)節(jié)點(diǎn)有針對性采取不同的預(yù)處理算法。通過計(jì)算并整理數(shù)據(jù)包的流統(tǒng)計(jì)特征,從而生成結(jié)構(gòu)化的數(shù)據(jù)集。同時(shí)由于集成了SparkSQL,該層可以通過SQL的操作,直接從關(guān)系型數(shù)據(jù)庫或從其他數(shù)據(jù)集合中批量的導(dǎo)入整理完畢的結(jié)構(gòu)化數(shù)據(jù)集。
在數(shù)據(jù)存儲方面,該層使用了Kafka分布式消息系統(tǒng)和HBase分布式數(shù)據(jù)庫兩種模塊。Kafka分布式消息系統(tǒng)用于流式數(shù)據(jù)的緩存,其可將不同類型的數(shù)據(jù)按Topic進(jìn)行劃分。上層可以通過SparkStreaming動態(tài)的獲取Kafka中的數(shù)據(jù)以完成流式的實(shí)時(shí)計(jì)算任務(wù)。HBase是一種海量的分布式非關(guān)系型數(shù)據(jù)庫,被設(shè)計(jì)用來存儲歷史數(shù)據(jù)。HBase可以整合某一時(shí)間區(qū)間內(nèi)的數(shù)據(jù)集資料,常用于歷史數(shù)據(jù)的離線分析任務(wù)。
2.3.2 網(wǎng)絡(luò)流量特征選擇層
該層是整個(gè)模型的核心層之一,在整個(gè)系統(tǒng)中起關(guān)鍵性的承上啟下功能。對下層,網(wǎng)絡(luò)流量特征選擇直接處理格式化的數(shù)據(jù)集,在分析特征的相關(guān)性、冗余性與最優(yōu)特征子集關(guān)系的基礎(chǔ)上,結(jié)合特征選擇算法,從原始特征集合中挑選出一組最有利于分類決策的特征子集,極大提高了上層流量分類工作的執(zhí)行效率。
面對海量、多源的數(shù)據(jù)集,該層在進(jìn)行特征選擇作業(yè)時(shí),將特征選擇算法與Spark計(jì)算平臺將結(jié)合。利用Spark計(jì)算框架強(qiáng)大的并行處理能力,以及MLlib機(jī)器學(xué)習(xí)庫中豐富的執(zhí)行算法,該層實(shí)現(xiàn)了針對大規(guī)模數(shù)據(jù)集的有效特征選擇。
2.3.3 網(wǎng)絡(luò)流量分類層
本層建立在特征選擇層之上,采用最優(yōu)特征子集中的特征,結(jié)合機(jī)器學(xué)習(xí)中的分類算法以及集成學(xué)習(xí)、深度學(xué)習(xí)等思想構(gòu)建分類模型,實(shí)現(xiàn)網(wǎng)絡(luò)流量的識別與分類。
在處理大規(guī)模歷史數(shù)據(jù)的離線分析任務(wù)時(shí),該層將流量分類算法與Spark計(jì)算引擎相結(jié)合,實(shí)現(xiàn)高速的大規(guī)模網(wǎng)絡(luò)流量分類任務(wù)。該層中集成的MLlib機(jī)器學(xué)習(xí)庫為流量分類提供了豐富的執(zhí)行算法,其中:線性的支撐向量機(jī)算法、梯度提升決策樹算法用于二分類任務(wù);邏輯回歸、決策樹、隨機(jī)森林以及樸素貝葉斯用于執(zhí)行多分類問題。
在處理實(shí)時(shí)流量分類任務(wù)時(shí),該層提供基于SparkStreaming的流式批處理執(zhí)行模塊。輸入的數(shù)據(jù)流進(jìn)入SparkStreaming后被切分成小的數(shù)據(jù)塊,每一個(gè)小的數(shù)據(jù)塊獨(dú)立的運(yùn)行于Spark引擎之上,通過相應(yīng)的分類算法進(jìn)行識別處理后,其結(jié)果再被匯總到數(shù)據(jù)流中,基本執(zhí)行過程如圖2所示。
圖2 基于SparkStreaming的流式處理示意圖
2.3.4 網(wǎng)絡(luò)流量應(yīng)用層
網(wǎng)絡(luò)流量應(yīng)用層的功能在于分析流量分類的結(jié)果,并對更好的實(shí)施網(wǎng)絡(luò)管理、網(wǎng)絡(luò)配置、網(wǎng)絡(luò)態(tài)勢分析以及網(wǎng)絡(luò)安全進(jìn)行指導(dǎo)。
在通過分析實(shí)時(shí)網(wǎng)絡(luò)流量分類結(jié)果的基礎(chǔ)上,該層可以掌握當(dāng)前網(wǎng)絡(luò)節(jié)點(diǎn)的流量構(gòu)成,通過合理的配置各節(jié)點(diǎn)的吞吐量,可以有效地避免網(wǎng)絡(luò)擁塞、數(shù)據(jù)丟失,促進(jìn)保持健康的網(wǎng)絡(luò)運(yùn)行環(huán)境。同時(shí),網(wǎng)絡(luò)異常流量的實(shí)時(shí)監(jiān)測,可以及時(shí)的阻止網(wǎng)絡(luò)攻擊、網(wǎng)絡(luò)病毒的運(yùn)行和傳播。
在針對大規(guī)模歷史數(shù)據(jù)的分析上,該層利用網(wǎng)絡(luò)態(tài)勢分析方法,總結(jié)并歸納一定時(shí)間內(nèi)網(wǎng)絡(luò)流量的構(gòu)成,并對其結(jié)果進(jìn)行深度的分析,通過關(guān)聯(lián)規(guī)則等挖掘方法發(fā)覺其內(nèi)在的聯(lián)系,從而指導(dǎo)更加合理的網(wǎng)絡(luò)環(huán)境建設(shè)與布局。
本文針對大規(guī)模復(fù)雜網(wǎng)絡(luò)環(huán)境下網(wǎng)絡(luò)流量數(shù)據(jù)海量、多源、異構(gòu)的特點(diǎn),引入機(jī)器學(xué)習(xí)以及基于 Spark的大數(shù)據(jù)處理技術(shù),提出一種基于大數(shù)據(jù)平臺的網(wǎng)絡(luò)流量分類系統(tǒng)模型。該模型按照流量分類的基本流程,分為數(shù)據(jù)預(yù)處理層、特征選擇層、流量分類層以及流量應(yīng)用層。同時(shí)按照此模型的基本架構(gòu),在結(jié)合Kafka、HBase、Spark集群的基礎(chǔ)上設(shè)計(jì)了該模型的原型系統(tǒng),旨在為當(dāng)前大規(guī)模數(shù)據(jù)環(huán)境下網(wǎng)絡(luò)流量高效實(shí)時(shí)的在線識別與大規(guī)模離線處理的任務(wù)提供思路。