用于電信中的可擴縮分布式網絡業務分析的方法
【專利摘要】用于執行分布式數據聚合的示例性方法包括接收只來自網絡的第一部分的互聯網協議(IP)業務。所述方法還包括利用大數據工具生成來自網絡的第一部分的IP業務的概要,其中來自網絡的第二部分的IP業務的概要由第二網絡裝置利用它的本地大數據工具生成。所述方法包括將網絡的第一部分的IP業務的概要發送給第三網絡裝置,以使得第三網絡裝置利用它的本地大數據工具基于從第一和第二網絡裝置接收的概要生成網絡的第一和第二部分的IP業務的概要,從而允許以分布式方式表征網絡中的IP業務。
【專利說明】用于電信中的可擴縮分布式網絡業務分析的方法
[0001]相關申請的交叉引用
本申請主張2014年I月22日申請的美國臨時申請號61 /930295的權益,該美國臨時申請由此以引用的方式并入本文。
技術領域
[0002]本發明的實施例涉及分組網絡的領域;更具體來說,涉及在分布式網絡體系結構中利用大數據工具進行網絡業務聚合。
【背景技術】
[0003]在電信領域中,連續不斷地以非常高的速度從大量節點(例如,消費型裝置、路由器、服務器、基站等)生成網絡業務。如本文中所使用,電信領域是指互聯網服務提供商(ISP)的聯網領域。網絡業務分析對于理解網絡的行為以及優化網絡和應用的性能都是基本和關鍵的。網絡業務分析在標識對網絡的攻擊和允許網絡管理員采取合適的安全措施中也起著重要的作用。為了應對高容量的高速業務數據,可在電信領域中應用大數據技術來幫助發展網絡業務分析。如本文中所使用,大數據技術/分許是指處理/表征大數據(即,高容量、高速且多品種的數據)的技術。但是,當前的大數據技術主要起源于互聯網領域。如本文中所使用,互聯網領域是指諸如Google、Yahoo、Facebook、Twitter等的內容提供商的聯網領域。這些內容提供商在集中式數據中心中聚合和處理人為生成的內容。由于電信和互聯網領域中的數據屬性之間存在根本差別,所以那些技術對于電信領域來說是次優的。
[0004]維持網絡的正常操作是電信領域中最關心的問題。運行數據分析不應使網絡操作降級、擾亂網絡操作、或危害網絡操作。將所有業務數據上載到少數幾個集中式數據中心本身需要顯著的網絡資源。這種規模的數據聚合會危害網絡的利用。
[0005]在電信領域中,是機器而不是個人用戶以非常高的速度自動且連續地生成數據。為了增加實際價值,如果不能更快的話,那么數據收集和分析必須至少能夠跟上數據生成。這種規模的集中式數據處理會造成長時間滯后,由此會使得分析結果無關痛癢,例如在檢測蠕蟲和DDoS攻擊時。
【發明內容】
[0006]利用大數據工具以分布式方式聚合互聯網協議(IP)業務的示例性方法包括在網絡中通信地耦合到第二網絡裝置的第一網絡裝置,其中第一和第二網絡裝置通信地耦合到第三網絡裝置。根據一個實施例,由第一網絡裝置執行的示例性方法包括接收只來自網絡的第一部分的IP業務,其中來自網絡的第二部分的IP業務由第二網絡裝置接收。在一個實施例中,所述方法包括利用大數據工具生成來自網絡的第一部分的IP業務的概要,其中來自網絡的第二部分的IP業務的概要由第二網絡裝置利用它的本地大數據工具生成。在至少一個實施例中,所述方法包括將網絡的第一部分的IP業務的概要發送到第三網絡裝置,以使得第三網絡裝置利用它的本地大數據工具基于來自第一網絡裝置的概要和來自第二網絡裝置的概要生成網絡的第一和第二部分的IP業務的概要,從而允許在第一、第二和第三網絡裝置之間以分布式方式表征網絡中的IP業務。
[0007]在一個實施例中,生成來自網絡的第一部分的IP業務的概要包括:對于IP業務的每個IP數據,從接收的IP數據存取字段集合。生成概要還包括:基于來自字段集合的一個或多個字段確定密鑰字段;以及基于來自字段集合的一個或多個字段確定值字段。
[0008]在本發明的一個方面中,生成來自網絡的第一部分的IP業務的概要還包括:基于密鑰字段將IP數據的集合分區成多個群組,以使得每個群組包括唯一密鑰(unique key)和來自具有相同密鑰字段的一個或多個IP數據的一個或多個值。
[0009]在至少一個實施例中,生成來自網絡的第一部分的IP業務的概要還包括:對于每個群組,聚合多個值以便生成聚合值,其中聚合值指示由對應密鑰字段的值字段指示的多個唯一值。
[0010]利用大數據工具以分布式方式聚合互聯網協議(IP)業務的示例性方法包括在網絡中通信地耦合到第二網絡裝置和第三網絡裝置的第一網絡裝置。根據一個實施例,由第一網絡裝置執行的示例性方法包括從第二網絡裝置接收網絡的第一部分的互聯網協議(IP)業務的概要,其中網絡的第一部分的IP業務的概要由第二網絡裝置利用它的本地大數據工具生成。
[0011]在一個實施例中,所述方法包括從第三網絡裝置接收網絡的第二部分的IP業務的概要,其中網絡的第二部分的IP業務的概要由第三網絡裝置利用它的本地大數據工具生成。在本發明的一個方面中,所述方法還包括:利用大數據工具基于來自第二網絡裝置的概要和來自第三網絡裝置的概要生成網絡的第一和第二部分的IP業務的概要,從而允許在第一、第二和第三網絡裝置之間以分布式方式表征網絡中的IP業務。在一個實施例中,所述方法包括將網絡的第一和第二部分的IP業務的概要提供給用戶,以使得用戶可以確定所述網絡中是否存在異常。
【附圖說明】
[0012]附圖的各圖中舉例而非限制性地示出本發明的實施例,圖中類似參考數字指示類似元素。
[0013]圖1是示出在集中式數據中心聚合數據的常規網絡的框圖。
[0014]圖2是示出根據一個實施例在分布式體系結構中聚合數據的網絡的框圖。
[0015]圖3是示出根據一個實施例用于聚合數據的數據處理單元模塊的框圖。
[0016]圖4是示出根據一個實施例用于聚合數據的方法的流程圖。
[0017]圖5是示出根據一個實施例用于聚合數據的方法的流程圖。
[0018]圖6A是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0019]圖6B是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0020]圖7A是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0021 ]圖7B是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0022]圖8A是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0023]圖SB是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0024]圖9A是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0025]圖9B是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0026]圖1OA是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0027]圖1OB是示出根據一個實施例用于聚合數據的偽代碼的圖。
[0028]圖11是示出用于將分析從集中式網絡映射到DPU的分布式網絡的一般設計模式的框圖。
[0029]圖12是示出可與本發明的一個實施例一起使用的數據處理系統的示例的框圖。
【具體實施方式】
[0030]在以下描述中,闡述了眾多具體細節,例如邏輯實現、操作碼、用于指定操作數的部件、資源分區/共享/復制實現、系統組件的類型和相互關系、以及邏輯分區/集成選擇,以便更充分地理解本發明。但是,本領域技術人員將明白,沒有這些具體細節也可實踐本發明。在其它情況下,沒有詳細示出控制結構、門級電路和全軟件指令序列,以免使本發明模糊。借助于包含的描述,本領域技術人員將能夠在無需過多試驗的情況下實現合適的功能性。
[0031]本說明書中提到“一個實施例”、“實施例”、“示例實施例”等時表示,所描述的實施例可包括特定特征、結構或特性,但不是每個實施例都一定包含該特定特征、結構或特性。而且,這些短語不一定指相同實施例。此外,當結合一個實施例描述特定特征、結構或特性時,認為本領域技術人員知道結合其它實施例實現該特征、結構或特性,而不管是否有明確描述。
[0032]在以下描述和權利要求書中,可使用術語“耦合”和“連接”及其派生詞。應理解,這些術語不是要彼此同義的。“耦合”用于指示兩個或兩個以上元件彼此共同協作或交互,這兩個或兩個以上元件可以或者可以不彼此直接物理或電接觸。“連接”用于指示在彼此耦合的兩個或兩個以上元件之間建立通信。
[0033]本發明的不同實施例可利用軟件、固件和/或硬件的不同組合來實現。因此,圖中示出的技術可利用在一個或多個電子裝置(例如,端站、網絡裝置)上存儲和執行的代碼和數據來實現。這些電子裝置利用計算機可讀介質存儲并(在內部和/或通過網絡與其它電子裝置)傳達代碼和數據,計算機可讀介質可以是例如非暫時性計算機可讀存儲介質(例如,磁盤、光盤、隨機存取存儲器、只讀存儲器、閃速存儲器裝置、相變存儲器)和暫時性計算機可讀傳輸介質(例如,電、光、聲或其它形式的傳播信號,如載波、紅外信號、數字信號)。另夕卜,這些電子裝置通常包括耦合到一個或多個其它組件的一個或多個處理器的集合,所述一個或多個其它組件可以是例如一個或多個存儲裝置(非暫時性機器可讀存儲介質)、用戶輸入/輸出裝置(例如,鍵盤、觸摸屏、和/或顯示器)、以及網絡連接。處理器集合與其它組件的耦合通常通過一個或多個總線和橋接器(又稱為總線控制器)。因此,給定電子裝置的存儲裝置通常存儲代碼和/或數據以便在該電子裝置的一個或多個處理器的集合上執行。
[0034]如本文中所使用,網絡裝置或計算裝置(例如,路由器、交換機、橋接器)是一臺包括硬件和軟件的聯網設備,它通信地互連網絡上的其它設備(例如,其它網絡裝置、端站)。一些網絡裝置是對多個聯網功能(例如,路由、橋接、交換、第2層聚合、會話邊界控制、服務質量、和/或訂戶管理)提供支持和/或對多個應用服務(例如,數據、語音和視頻)提供支持的“多服務網絡裝置”。訂戶端站(例如,服務器、工作站、膝上型計算機、上網本、掌上電腦、移動電話、智能電話、多媒體電話、互聯網協議語音(VOIP)電話、用戶設備、終端、便攜式媒體播放器、GPS單元、游戲系統、機頂盒)訪問在互聯網上提供的內容/服務、和/或在敷設在(例如,穿隧通過)互聯網上的虛擬專用網絡(VPN)上提供的內容/服務。這些內容和/或服務通常由屬于服務或內容提供商的一個或多個端站(例如,服務器端站)或參與對等(P2P)月艮務的端站提供,并且可包括例如公共網頁(例如,免費內容、店面、搜索服務)、私人網頁(例如,提供email服務的用戶名/密碼訪問的網頁)、和/或VPN上的公司網絡。通常,訂戶端站(例如,通過(有線或無線地)耦合到接入網絡的客戶駐地設備)耦合到邊緣網絡裝置,邊緣網絡裝置(例如,通過一個或多個核心網絡裝置)耦合到其它邊緣網絡裝置,這些其它邊緣網絡裝置耦合到其它端站(例如,服務器端站)。
[0035]當前的大數據技術起源于互聯網公司,尤其是Google、Yahoo、Facebook、LinkedIn和Twitter,并且主要在這些互聯網公司中得到發展。他們的主要業務是聚合用戶生成的內容,并通過例如將廣告與用戶數據相關聯來為內容增加與他們的用戶基礎成比例的價值。他們的商業模式符合他們只在少數幾個數據中心中集中地聚合和處理數據。過去十年間那些互聯網公司的快速成長見證了大數據技術在他們領域中的適用性。
[0036]—般來說,當前的大數據技術假設,可在少數幾個數據中心中低成本地及時聚合和處理數據。盡管這對于用戶生成的內容是合理的,但是對于網絡業務分析則是次優的。在互聯網上,一個字節的用戶生成的內容可引發數百個字節的網絡流量來傳送該內容。當將所有那些業務字節上載到數據中心時,又可生成數千個新字節,如此循環往復。關于將所有網絡業務聚合到一個或少數幾個數據中心以便處理所有數據的帶寬利用和時間簡直成本太尚了 O
[0037]最近出現利用分布式觸發機制進行網絡業務分析的方法。例如,“In-NetworkPCAand Anomaly Detect1n”(Ling Huang, XuanLong Nguyen , Minos Garofalakis,Anthony Joseph, Michael Jordan and Nina Taft.1n Advances in NeuralInformat1n Processing Systems (NIPS) 19.Vancouver, B.C, December 2006)(下文稱為“參考文獻I”)、“Toward Sophisticated Detect1n With Distributed Triggers”(Ling Huang, Minos Garofalakis, Joseph Hellerstein, Anthony D.Joseph andNina Taft.1n SIGCOMM 2006 Workshop on Mining Network Data (MineNet_06))(下文稱為“參考文南犬2,,WPuCommunicat1n-EfTicient Tracking of Distributed CumulativeTriggers”(Ling Huang, Minos Garofalakis, Anthony D.Joseph and Nina Taft.1nProceedings of the Internat1nal Conference on Distributed Computing Systems(ICDCS,07).Toronto, Canada, June 2007)(下文稱為“參考文獻3”)。參考文獻I提出在分布式服務器的集合上運行的基于主成分分析(PCA)的異常檢測器。它描述了將信息周期性地發送到協調器以便進行準確全局檢測的自適應方法。參考文獻2設計了一種在PCA框架下檢測不尋常業務模式的分布式協議。參考文獻3研究了分布式觸發器方法中的通信開銷和檢測精度之間的權衡。
[0038]這些參考文獻并沒有利用大數據技術。而是,它們精心地制作在互聯網上的選定節點處執行的分布式算法或協議。因此,所述方法對于分析的數量不可擴縮,因為每個方法必須個別地制作和開發。大數據技術可適于以更具原則性的方式系統地解決網絡業務分析問題,但是當前的大數據技術的逐字應用可能不那么有效。將描述,可利用(擴展的)大數據技術在不同分析上應用類似的編程模式。這些模式可推廣到新一代分布式大數據平臺,以便使大范圍網絡業務分析的開發和部署自動化。
[0039]圖1是示出用于聚合用戶生成的數據的常規體系結構的框圖。如本文中所使用,聚合是指基于某個預定準則(密鑰)收集數據和/或將數據分組,以便可以在一個數據中心中表征數據。圖1示出包括網絡裝置110-113的網絡100(例如,蜂窩網絡),每個網絡裝置通信地耦合到一個或多個本地用戶端點(UE),例如膝上型計算機、移動裝置等(未示出)。在圖1中,網絡裝置110-111通信地耦合到網絡裝置114,網絡裝置112-113通信地耦合到網絡裝置115,而網絡裝置114和115通信地彼此耦合。常規地,將用戶生成的數據全都發送到集中式數據中心(例如,數據中心1I ),在集中式數據中心中將它們全部聚合。因此,當在網絡業務分析中直接應用這種設置時,例如,通過網絡裝置110將通信地耦合到網絡裝置110的UE處生成的用戶數據發送到數據中心101,并且通過網絡裝置111將通信地耦合到網絡裝置111的UE處生成的用戶數據發送到數據中心101,依此類推。一旦完成所有數據的聚合,數據中心101便將結果提供給用戶。
[0040]如上所述,利用大數據工具在集中式數據中心聚合用戶生成的數據是合理的。但是,在集中式數據中心聚合巨量的機器生成的數據在成本和帶寬利用方面就不太有效了。本發明通過提供以分布式方式利用大數據技術來在網絡中的多個節點處聚合網絡業務、以使得業務聚合可分布在網絡中的節點之間的機制而克服這些限制。
[0041]圖2是示出根據一個實施例以分布式方式聚合網絡業務的網絡200的框圖。網絡200與網絡100類似。例如,網絡裝置210-211通信地耦合到網絡裝置214,網絡裝置212-213通信地耦合到網絡裝置215,而網絡裝置214和215通信地彼此耦合。但是,差別在于,在網絡200中,不在集中式數據中心聚合業務數據。根據一個實施例,網絡200分區成多個邏輯網絡部分。例如,網絡裝置210可代表網絡200的第一部分,網絡裝置211可代表網絡200的第二部分,等等。如本文中所使用,“代表”網絡的一部分是指傳送和接收屬于網絡的這部分的網絡裝置的業務。每個網絡部分通信地耦合到包含用于聚合來自相應網絡部分的數據的大數據工具的網絡裝置。這些聚合網絡裝置的中間結果還可通過更高級聚合網絡裝置進一步處理/聚合。因此,取代在集中式數據中心執行數據聚合,本發明提供利用數據聚合網絡裝置的層級在數據來源處或附近執行數據聚合的機制。
[0042]圖2示出數據聚合網絡裝置230-234的層級。每個聚合網絡裝置包括相應的數據處理單元(DPU)模塊。例如,網絡裝置230包括DPU 250,網絡裝置231包括DPU 251,網絡裝置232包括DPU 252,網絡裝置233包括DPU 253,并且網絡裝置234包括DPU 254。
[0043]數據聚合網絡裝置230-234可通信地耦合到接收和聚合IP業務的網絡的任何網絡裝置。因此,在所示示例中,網絡裝置210-215可以是任何類型的聯網裝置,包括但不限于無線電基站、WiFi接入點、路由器、集線器、網關等。應了解,網絡裝置210-215、230-234可以是相同或不同類型的網絡裝置。
[0044]聚合網絡裝置的層級(S卩,網絡裝置230-234的位置)是舉例而非限制性地示出的。本領域技術人員將意識到,取決于負載平衡、通信成本等,網絡裝置230-234可以按照其它配置部署。如本文中所使用,負載平衡是指確保在網絡裝置之間交換的業務平衡以防止大部分業務轉向特定網絡裝置或特定群組的網絡裝置的概念。如本文中所使用,通信成本是指業務從第一網絡裝置行進到第二網絡裝置所花費的時間。通信成本也可指在網絡裝置之間通信的業務量。
[0045]圖2舉例而非限制性地示出聚合來自代表網絡的第一部分的網絡裝置210的網絡業務的網絡裝置230、聚合來自代表網絡的第二部分的網絡裝置211的網絡業務的網絡裝置231、聚合來自代表網絡的第三部分的網絡裝置212的網絡業務的網絡裝置232、以及聚合來自代表網絡的第四部分的網絡裝置213的網絡業務的網絡裝置233。因此,網絡裝置230-233可理解為是聚合網絡裝置的層級的第一級。圖2還示出,通過網絡裝置234聚合網絡裝置230-233的中間聚合結果。因此,網絡裝置234可理解為是層級的第二級。應了解,在不偏離本發明的更廣范圍和精神的情況下,可增加層級的更多級。
[0046]根據一個實施例,DPU 250-254負責聚合和處理由網絡的較小部分(part/port1n)(例如,部署在建筑物中的無線局域網(WLAN)或城市市中心中的蜂窩網絡)生成的網絡業務數據。待由DPU聚合的網絡的部分可由地理區域或管理域確定。
[0047]在本發明的一個方面中,每個DHJ執行一個或多個大數據工具(例如,Hadoop和Spark)和一個或多個分析算法以便處理它的輸入數據集并生成某個輸出數據。輸入數據集可來自網絡的一個部分(下游)的輸出,并且可經由諸如超文本傳輸協議(HTTP)、HTTPSecure (HTTPS)、可擴縮標記語言(XML)、JavaScript對象表示法(JSON)等的某個協議將輸出數據發送到網絡的另一個部分(上游)以作為輸入。
[0048]應明白,DPU是能夠處理大數據(S卩,高容量、高速且多品種的數據)的計算機構的抽象。DPU可以是例如具有多個并行核或處理器的一個計算機、或通過快速網絡互連的這些計算機的一個集群/數據中心。每個計算機/處理器具有它自己的處理單元(用于執行代碼以便處理數據)和存儲/存儲器單元(用于存儲數據和結果)。在大數據技術中,通常是其中一個處理器/計算機充當接觸點,它接受輸入數據,在處理器/計算機的整個集合中分配數據和工作負載,收集來自那些節點的結果,并將結果提供給其它DPU或應用。
[0049]根據一個實施例,DPU可以按層級體系結構進行組織:網絡邊緣附近(或生成數據)的DPU將原始輸入數據變換為中間結果,中間結果上載到上游DPU并變換為更高級結果。最后,將最終結果報告給用戶或反饋回來以便控制網絡。中間結果只是顯著減少的量的較低級輸入數據的概要。
[0050]在一個實施例中,DPU可形成獨立的數據處理網絡。備選地或另外地,DPU可作為IP網絡(例如,蜂窩網絡)的一部分集成到其中。例如,在圖2中,網絡裝置230-234可形成獨立的數據處理網絡,或者它們可以是IP或蜂窩網絡的一部分。當獨立時,DPU和它所服務的網絡的這部分之間的數據傳輸/通信的成本比將數據上載到另一個DPU低得多。當集成時,DPU嵌入或附連到路由器、網關、基站等,以便處理它所生成的數據。例如,網絡裝置230-233可分別作為網絡裝置210-213的一部分集成。DPU部署的配置/密度取決于性能和成本之間的權衡。
[0051]在一個實施例中,每個DPU的源與匯可根據諸如負載平衡和數據可用性的因素動態地改變。配置可作為分析應用的一部分經由例如提供的庫的應用編程接口(API)進行管理,或通過管理所有DPU并將分析代碼動態地指派給DPU的平臺(如OS)調度代碼進行。
[0052]如上所述,利用大數據技術分布式地實現若干個網絡業務分析是新穎的。將詳細描述,一般模式是將代碼分配給所涉及的DPU的網絡,以使得最低級的DPU聚合和處理原始感知數據,較高級的DI3U聚合和處理來自較低級DPU的中間結果,依此類推,直到最頂級的DHJ產生最終結果為止。
[0053]圖3是示出根據一個實施例的DPU 300的框圖。例如,DPU 300可作為DPU 250-254的一部分實現,DHJ 250-254可作為軟件、固件、硬件或其任意組合來實現。根據一個實施例,DPU 300包括用于交換網絡業務的網絡接口 313。例如,網絡接口 313可用于接收原始網絡業務和/或來自較低級DPU的中間聚合結果。網絡接口 313還可用于將中間聚合結果傳送到較高級DPU,和/或將最終聚合結果傳送到用戶/管理員。
[0054]根據一個實施例,DPU300包括用于開發大數據分析的大數據工具310(例如,Hadoop、Spark等)C3Hadoop是當前用于開發大數據分析的行業標準平臺C3Hadoop堆桟由一套開源工具組成,這套開源工具包括Hadoop分布式文件系統(HDFS)、另一種資源協調者(丫八1^)、]\&^)1^(11106、!1;[¥6、冊386和]\&1110111:。]^1(10(^將故障看作是正常而不是例外,并在商用計算機的大集群上構建大規模并行/分布式計算應用。大型輸入數據集分成64兆字節(MB)或128MB塊,每個塊均在集群中的那些計算機的若干個計算機上復制。它的編程抽象允許用戶指定“映射(map)”和“縮減(reduce)”任務。取決于數據局部性和數據相依性,調度器在運行時將輸入數據集分區并在計算機上引發那些任務以便處理數據。如果一些計算機發生故障或者數據丟失,那么在其它計算機上重新開始對應任務以便實現容錯。
[0055]Hadoop堆桟最初是Google開發的類似堆桟(它不是開源的)的開源重實現。最近有若干個開源項目可改善Hadoop堆桟的性能。最著名的是Berkeley Data Analytic Stack(BDAS,伯克利數據分析堆桟),它包括諸如Tachyon、Mesos、Spark、Shark、GraphX、Stream和MLBase的工具。BDAS集中在存儲器中優化上:在主要存儲器中緩存輸入數據集的一部分,并比Hadoop中的面向磁盤的數據處理快得多地進行處理。
[0056]如上所述,Spark是BDAS平臺的一部分。它的主要編程抽象是彈性分布式數據集(RDD),它在集群的選定節點上分配主要存儲器的區塊,并將輸入或輸出數據集(例如,大型磁盤文件)分發到那些區塊中。在RDD/Spark中會自動處理容錯。在本描述中,由于它簡潔明了,所以利用Spark的Scala API來介紹分析算法和偽代碼。應明白,本發明不限于此。本領域技術人員將意識到,可利用其它大數據工具來實現本描述中所述的算法。
[0057]在一個實施例中,DHJ300包括用于利用大數據工具310實現大數據分析的API311。在至少一個實施例中,DPU 300包括網絡業務分析模塊312,模塊312包括用于利用大數據工具310經由API 311聚合/表征網絡業務的一個或多個算法。在所示實施例中,網絡業務分析模塊312包括算法320-324,下文將進一步詳細地對它們進行描述。
[0058]圖4是示出根據一個實施例用于執行分布式數據聚合的方法400的流程圖。例如,方法400可由諸如網絡裝置230(例如,網絡裝置230的DPU 250)的第一網絡裝置執行,它可作為軟件、固件、硬件或其任意組合來實現。
[0059]現在參考圖4,在框405,第一網絡裝置接收只來自網絡的第一部分的IP業務,其中來自網絡的第二部分的IP業務由第二網絡裝置(例如,網絡裝置231)接收,其中第一和第二網絡裝置通信地耦合到第三網絡裝置(例如,網絡裝置234)。例如,網絡裝置230接收來自代表網絡的第一部分的網絡裝置210的IP業務,而網絡裝置231接收來自代表網絡的第二部分的網絡裝置211的IP業務。
[0060]在框410,第一網絡裝置利用大數據工具(例如,hadoop、Spark等)生成來自網絡的第一部分的IP業務的概要,其中來自網絡的第二部分的IP業務的概要由第二網絡裝置利用它的本地大數據工具生成。例如,網絡裝置230利用大數據工具分析和聚合從網絡裝置210接收的IP業務。聚合的性質和生成的概要的類型取決于將要執行的分析(例如,分析算法320-324) ο下文將進一步詳細描述分析。
[0061]在框415,第一網絡裝置將網絡的第一部分的IP業務的概要發送到第三網絡裝置,以使得第三網絡裝置利用它的本地大數據工具基于來自第一網絡裝置的概要和來自第二網絡裝置的概要生成網絡的第一和第二部分的IP業務的概要,從而允許在第一、第二和第三網絡裝置之間以分布式方式聚合/表征網絡中的IP業務。
[0062]圖5是示出根據一個實施例用于執行分布式數據聚合的方法500的框圖。例如,方法500可由諸如網絡裝置234(例如,網絡裝置234的DPU 254)的第一網絡裝置執行,它可作為軟件、固件、硬件或其任意組合實現。
[0063]現在參考圖5,在框505,第一網絡裝置從第二網絡裝置(例如,網絡裝置230)接收網絡的第一部分的IP業務的概要,其中網絡的第一部分的IP業務的概要由第二網絡裝置利用它的本地大數據工具生成。
[0064]在框510,第一網絡裝置從第三網絡裝置(例如,網絡裝置231)接收網絡的第二部分的IP業務的概要,其中網絡的第二部分的IP業務的概要由第三網絡裝置利用它的本地大數據工具生成。
[0065]在框515,第一網絡裝置利用大數據工具基于來自第二網絡裝置的概要和來自第三網絡裝置的概要生成網絡的第一和第二部分的IP業務的概要,從而允許在第一、第二和第三網絡裝置之間以分布式方式聚合/表征網絡中的IP業務。在框520,第一網絡裝置將網絡的第一和第二部分的IP業務的概要提供給用戶,以使得用戶可以確定網絡中是否存在異常。
[0066]分析模塊
現在將論述網絡業務分析模塊320-324的各種實施例。本文中所論述的模塊是為了說明的目的,而不是要限制本發明。本領域技術人員將意識到,在不偏離本發明的更廣范圍和精神的情況下,可包含其它分析模塊以作為DPU 300的一部分。
[0067]計數業務和分布式拒絕服務(DDoS)攻擊檢測模塊
圖6A和6B分別是示出用于在集中式和分布式體系結構中執行計數業務/分布式拒絕服務(DDoS)攻擊檢測的偽代碼的圖。圖6A是示出根據一個實施例用于集中式體系結構的偽代碼600的圖。例如,偽代碼600可作為計數業務/ DDoS攻擊檢測模塊320的一部分實現,模塊320可作為軟件、固件、硬件或其任意組合來實現。
[0068]在DDoS攻擊中,攻擊者通過利用多個主機滲透受害者的資源,以便針對單個受害者啟動協同攻擊。它消耗遠程主機和/或網絡的資源以試圖拒絕使用那些資源來使用戶合法化。通過利用現有軟件缺陷,它可使得遠程主機死機或性能顯著降級。
[0069]在一個實施例中,通過對在固定時間窗口向一個目的地或目的地的集合發送業務的裝置的源IP地址的相異(即,唯一)數量計數來檢測DDoS攻擊。其目的是標識從多于某個數量的相異源接收業務的目的地的集合。這透露可能的受害者集合。
[0070]如圖6A所示,偽代碼600假設,在分布式數據結構(S卩,在Spark的術語中的彈性分布式數據集(RDD)MpTuples中加載討論中的輸入原始數據集。例如,輸入原始數據集可包含在從DPU所代表的網絡的這部分接收的IP業務中。每個元組為具有若干個屬性的IPPacket類型。通過執行操作605,該模塊首先從描述IP分組的每個輸入元組提取目的地(dst)和源(src)地址的密鑰-值對。然后,通過執行操作610,該模塊按照密鑰(S卩,dst)將所有這些對分組,以使得在所得分布式數據結構中,每個元組具有密鑰(dst)和用于將分組發送給該dst的源的序列。再次,通過執行操作615,對于每個dst,它對序列中有多少個唯一源進行計數。最后,通過執行操作620,該模塊按照唯一計數將結果排序,并輸出具有最大女個數量的源的前I個目的地。
[0071]圖6B是示出根據一個實施例用于在分布式體系結構中執行計數業務/DDoS攻擊檢測的偽代碼601的圖。例如,偽代碼601可作為計數業務/ DDoS攻擊檢測模塊320的一部分實現。偽代碼601執行與偽代碼600所執行的操作類似的操作,不同之處在于,將偽代碼601分區,以使得它可由多個網絡裝置的多個DHJ以分布式方式執行。例如,偽代碼601的片段602的操作可由低級DHJ執行,而偽代碼601的片段603的操作可由高級DPU執行。
[0072]在分布式體系結構中,每個低級DPUi采取輸入原始數據集ipTuples」,并與集中式體系結構類似地處理數據。將數據集的所得概要dstCountsj上載到高級DPU。有N個這樣的低級DPU。然后,通過執行操作625,高級DPU聚合所接收的所有N個dstCounts」以作為它的輸入。所得分布式數據結構包括(dst,count)的所有對,它們在每個源DPU的輸出中是唯一的,但是當從多個源DPU聚合時關于dst則不再相異。作為操作630的一部分,如果存在多個計數值(即,源),那么通過對于每個唯一密鑰(即,dst)應用與“redUCeByKey(_+_)”類似的操作符,模塊計算所有這些計數值(即,源)的總和。因此,每個結果對是每個dst的唯一源的數量。最后,將前女個目的地提供給用戶,以使得用戶可以確定是否存在可能的DDoS攻擊。
[0073]現在將舉例說明用于執行計數業務/DDoS攻擊檢測的分布式體系結構。在以下示例中假設,片段602分別由網絡裝置230和231的DPU 250和251執行。該示例還假設,片段603由網絡裝置234的DPU 254執行。
[0074]假設,DPU250接收了原始IP數據,并且通過執行操作605將ipTuples變換為以下值:
{DST-10, SRC-20},{DST-1I, SRC-21},和{DST-10, SRC-20}ο
[0075]在通過DPU 250執行片段602之后,發送給DPU 254的dstCountsjS:
{DST-10, 2}和{DST-11, 1},
它們指示,對于密鑰DST-10有兩個唯一源,并且對于密鑰DST-1I有一個唯一源。
[0076]假設,DPU251接收了原始IP數據,并且通過執行操作605將ipTuples變換為以下值:
{DST-10, SRC-30},{DST-11, SRC-31},和{DST-12, SRC-32}0
[0077]在通過DPU 251執行片段602之后,發送給DPU 254的dstCountsjS:
{DST-10, 1},{DST-11, 1},和{DST-12, 8},
它們指示,對于密鑰DST-10有一個唯一源,對于密鑰DST-1I有一個唯一源,并且對于密鑰DST-12有八個唯一源。
[0078]假設,DPU 254接收了來自DPU 250和251的dstCount_i。在執行操作625之后,輸入包含以下值:
{DST-10, 2},{DST-11, I},{DST-10, I},{DST-11, 1},和{DST-12, 8}0
[0079]注意,密鑰dst不是唯一的。但是,在執行操作630之后,DPU254將輸入縮減為以下dstCount對:
{DST-10, 3},{DST-11, 2},和{DST-12, 8}0
[0080]根據一個實施例,DPU254執行操作635以便按計數的降序將dstCount排序,并將排序后的如下dstCount對提供給用戶:
{DST-12, 8MDST-10, 3},和{DST-11, 2},
它們指示,對于密鑰DST-12有8個唯一源,對于密鑰DST-10有3個唯一源,并且對于密鑰DST-1I有2個唯一源。
[0081]流大小分布判定
圖7A和7B分別是示出用于在集中式和分布式體系結構中執行流大小分布判定的偽代碼的圖。圖7A是示出根據一個實施例用于集中式體系結構的偽代碼700的圖。例如,偽代碼700可作為流大小分布判定模塊321的一部分實現,模塊321可作為軟件、固件、硬件或其任意組合來實現。
[0082]知道網絡中的流大小的分布對于網絡運營商理解他們的網絡資源使用、表征業務需求、檢測業務異常和執行更好的業務工程機制是有用的。例如,互聯網服務提供商(ISP)可利用流分布來推斷他們的網絡的使用。它可用于計費、定價、基礎設施工程、資源規劃。它還可用于推斷應用的類型,例如有多少業務正在使用通常是長流的流播視頻,有多少業務正在使用IP語音。此外,網絡中的故障或性能問題可能會造成網絡中的流大小分布突然變化。因此,可利用流大小分布信息來作為故障檢測的另一個來源。
[0083 ]例如,給定流大小s或流大小范圍[..s2],可計算在固定時間間隔Tft大小與s匹配或大小大于■^并且小于的流的數量。這些認知有助于了解網絡中的不同大小的流(例如,大象流、老鼠流等)的分布。
[0084]如圖7A所示,集中式體系結構假設,在分布式數據結構ipTuples中加載輸入數據集。每個元組為具有若干個屬性的IPPacket類型。對于每個元組,構造一對流(例如,具有屬性81'0、(181:、81'0口01'1:、(18丨口01'1:和協議的流類型)和分組有效負載的大小。然后,應用操作符reduceByKey,它對于每個唯一流計算所有有效負載大小(單位為字節)的總和。結果是分布式數據結構flowBytes,其中每個元組是具有字節大小的流。最后,可按照更粗的粒度(例如,>1GB、100KB-1GB、10KB-100KB、1KB-10KB、〈1KB)將流字節分類。此外,可輸出按照某個順序或期望的范圍分類的流。
[0085]圖7B是示出根據一個實施例用于在分布式體系結構中執行流大小分布判定的偽代碼701的圖。例如,偽代碼701可作為流大小分布判定模塊321的一部分實現。偽代碼701執行與偽代碼700所執行的操作類似的操作,不同之處在于,將偽代碼701分區,以使得它可由多個網絡裝置的多個DPU以分布式方式執行。例如,偽代碼701的片段702的操作可由低級DHJ執行,而偽代碼701的片段703的操作可由高級DPU執行。
[0086]如圖7B所示,分布式體系結構假設,存在N個低級DHJ和一個高級DPU。每個低級DPU_i與集中式版本類似地處理它的輸入數據集ipTuplesj。將輸出概要f 1wBytesj上載到高級DPU。高級DHJ在一個分布式數據結構中聚合這N個下游概要fl0WByteS_i(i=l,2,.., N)以作為輸入。然后,它對輸入應用reduceByKey操作符以便計算每個相異流的流字節的總和。最后,將所得f I owBy t e s分類并輸出。
[0087]現在將舉例說明用于執行流大小分布判定的分布式體系結構。在以下示例中假設,片段702分別由網絡裝置230和231的DPU 250和251執行。該示例還假設,片段703由網絡裝置234的DPU 254執行。
[0088]假設,DPU250接收了原始IP數據,并在執行映射操作之后將ipTuples變換為以下值:
{FL0W-10, 100},{FL0W-20, 200},和{FL0W-10, 500}。
[0089]在DPU250執行隨后的reduceByKey操作之后,發送給DPU 254的flowBytes_iS: {FL0W-10, 600}和{FL0W-20, 200},
它們指示,在由網絡裝置230和DPU 250監測的網絡的這部分中,存在兩個相異流,一個流由密鑰FL0W-10標識,另一個流由密鑰FL0W-20標識,它們分別占了600字節和200字節業務。
[0090]假設,DPU251接收了原始IP數據,并且在執行映射操作之后將ipTuples變換為以下值:
{FL0W-10, 300},{FL0W-30, 100},和{FL0W-30, 150}。
[0091 ]在DPU 252執行隨后的reduceByKey操作之后,發送給DPU 254的flowBytes_iS: {FL0W-10, 300}和{FL0W-30, 250},
它們指示,在由網絡裝置231和DPU 251監測的網絡的這部分中,存在兩個相異流,一個流由密鑰FL0W-10標識,另一個流由密鑰FL0W-30標識,它們分別占了 300字節和250字節。
[0092]假設,DPU 254接收了來自DPU 250和251的fIwoBytesj。在執行代碼片段703中的合并操作之后,輸入包含以下值:
{FLOff-lO, 600},{FL0ff-20, 200},{FL0W-10, 300},和{FL0W-30, 250}。
[0093]注意,這些流密鑰不是唯一的。但是,在執行片段703中的隨后的reduceByKey操作之后,DPU 254將輸入縮減為以下f1wBytes對:
{FLOff-lO, 900},{FL0ff-20, 200},和{FL0W-30, 250}。
[0094]然后,DPU254將根據某個選擇準則輸出那些對。例如,如果用戶想要看到大小大于512字節的流,那么將只示出FL0W-10。
[0095]層級大流量對象檢測
圖8A和SB分別是示出用于在集中式和分布式體系結構中執行層級大流量對象(HHH,hierarchical heavy hitter)檢測的偽代碼的圖。圖8A是示出根據一個實施例用于集中式體系結構的偽代碼800的圖。例如,偽代碼800可作為HHH檢測模塊322的一部分實現,模塊322可作為軟件、固件、硬件或其任意組合實現。
[0096]幾乎實時地檢測高容量業務集群在諸如流量監測、記賬和網絡異常檢測的各種網絡管理任務中都是重要的。大流量對象通常具層級性,這意味著可在IP地址的不同聚合級處對它進行定義。它也可以是多維的,因為可從諸如IP地址、端口號和協議的不同IP報頭字段的組合定義大流量對象檢測。利用單個服務器檢查聚合體的所有可能組合以便檢測所有大流量對象是具有挑戰性的,因為計算和存儲資源存在限制。
[0097]如本文中所使用,大流量對象是占鏈路集合中的總測量業務的至少女比例的流集合,它們可以用分組、字節、連接等度量。大流量對象可以是個別流或連接、或多個流/連接的聚合。聚合體中的每個流本身不一定是大流量對象。可在諸如IP流的源IP地址、目的地IP地址、源端口、目的地端口和協議字段的一個或多個維度上定義聚合。
[0098]層級大流量對象(HHH)定義為是在排除任何HHH子代之后貢獻大量業務(例如,鏈路容量的至少I分數或所有網絡業務的I分數)的最長IP前綴。
[0099]HHH問題的簡單的解決方案是在單個機器中在樹中的所有葉節點的業務計數上運行離線算法。但是,這種方法緩慢并且對于大業務大小不可擴縮。
[0100]如圖8A所示,集中式體系結構假設,在分布式數據結構ipTuples中加載輸入數據集。為簡單起見,只考慮每個分組的src和dst地址。假設,函數dissect(src, dst)產生src和dst IP地址的前綴的層級組合的集合。例如,對于一對IPv4地址,有16種組合。然后,對于每個所得對,生成有效負載字節的數量(Ien)并將對和數量存儲在分布式數據結構hhh中。f IatMap操作符簡單地在一個數據結構hhh中組合所有所得對。接著,應用操作符reduceByKey來計算每個地址前綴對的有效負載字節的數量的總和,由此表示一個潛在的大流量對象。最后,通過例如按大小將這些對排序、以便排除不重要的子代來輸出具有某種進一步變換的hhh。
[0101]圖SB是示出根據一個實施例用于在分布式體系結構中執行HHH檢測的偽代碼801的圖。例如,偽代碼801可作為HHH檢測模塊322的一部分實現。偽代碼801執行與偽代碼800所執行的操作類似的操作,不同之處在于,將偽代碼801分區,以使得它可由多個網絡裝置的多個DPU以分布式方式執行。例如,偽代碼801的片段802的操作可由低級DPU執行,而偽代碼801的片段803的操作可由高級DPU執行。
[0102]如圖8B所示,分布式體系結構假設,存在N個低級DHJ和一個高級DPU。每個低級DPU_i與集中式版本中類似地處理它的輸入數據集ipTup les_i。在高級DPU處聚合所得hhh_i,由此簡單地應用操作符reduceByKey來計算每個相異地址對的有效負載大小的總和。最后,如同集中式版本中一樣,在某種進一步變換之后,輸出所得hhh。
[0103]現在將舉例說明用于執行HHH檢測的分布式體系結構。在以下示例中假設,片段802分別由網絡裝置230和231的DPU 250和251執行。該示例還假設,片段803由網絡裝置234的DPU 254執行。
[0104]假設,DPU250接收了原始IP數據,并且ipTuples包含以下值(為簡潔起見,每個元組中只有字段src、dst和len,而省略了其它字段):
{(1.2.3.4.5.6.7.8, 100)}。
[0105]調用函數dissect(1.2.3.4.5.6.7.8)得到IP地址前綴對的以下16種組合:
{(1.2.3.4, 5.6.7.8), (1.2.3.4, 5.6.7), (1.2.3.4, 5.6), (1.2.3.4, 5),(1.2.3, 5.6.7.8), (1.2.3, 5.6.7), (1.2.3, 5.6), (1.2.3, 5),(1.2, 5.6.7.8),(1.2, 5.6.7), (1.2, 5.6), (1.2, 5), (I, 5.6.7.8), (I, 5.6.7), (I, 5.6), (I,5)}。
[0106]相應地,隨后的映射操作得到以下16個元組,它們將有效負載大小100關聯到每一對src和dst前綴:
{((1.2.3.4, 5.6.7.8), 100),((1.2.3.4, 5.6.7), 100),((1.2.3.4, 5.6),100), ((1.2.3.4, 5), 100), ((1.2.3, 5.6.7.8), 100), ((1.2.3, 5.6.7), 100),((1.2.3, 5.6), 100), ((1.2.3, 5), 100), ((1.2, 5.6.7.8), 100), ((1.2, 5.6.7),100),((1.2, 5.6), 100),((1.2, 5),100),((I, 5.6.7.8), 100),((I, 5.6.7),100), ((I, 5.6), 100), ((I, 5), 100)}。
[0107]對以上集合應用操作flatMap將產生相同集合,因為在該簡單示例中只有一個輸入集合。如果有兩個或兩個以上集合,那么flatMap結果將是所有那些集合的并集。注意,這里,密鑰是(src, dst)前綴對。由于每個密鑰都是唯一的,所以在應用操作reduceByKey之后,所得集合hhh_i也與以上集合相同。然后,將該集合發送到DPU 254。
[0108]假設DPU251接收了原始IP數據,并且ipTuples包含以下值(為簡潔起見,每個元組中只有字段src、dst和len,而省略了其它字段):
{(1.2.3.4.5.6.7.8, 300)}。
[0109]與上文類似,在應用flatMap和reduceByKey操作之后,所得hhh_i集合包含以下16個密鑰-值對:
{((1.2.3.5, 5.6.7.8), 300),((1.2.3.5, 5.6.7), 300),((1.2.3.5, 5.6),300), ((1.2.3.5, 5), 300), ((1.2.3, 5.6.7.8), 300), ((1.2.3, 5.6.7), 300),((1.2.3, 5.6), 300), ((1.2.3, 5), 300), ((1.2, 5.6.7.8), 300), ((1.2, 5.6.7),300),((1.2, 5.6), 300),((1.2, 5),300),((I, 5.6.7.8), 300),((I, 5.6.7),300), ((I, 5.6), 300), ((I, 5), 300)}。
[0110]在將以上兩個hhh_i集合發送到DPU254之后,應用代碼片段803中的合并操作將得到這兩個集合的并集。
[0?11 ]然后,通過應用片段803中的操作reduceByKey,將生成如下所得集合hhh,它計算具有相同密鑰的對中的大小的總和:
{((1.2.3.4, 5.6.7.8), 100),((1.2.3.4, 5.6.7), 100),((1.2.3.4, 5.6),100), ((1.2.3.4, 5), 100), ((1.2.3.5, 5.6.7.8), 300), ((1.2.3.5, 5.6.7),300), ((1.2.3.5, 5.6), 300), ((1.2.3.5, 5), 300), ((1.2.3, 5.6.7.8), 400),((1.2.3, 5.6.7) , 400),((1.2.3, 5.6), 400),((1.2.3, 5),400),((1.2,
5.6.7.8),400), ((1.2, 5.6.7), 400), ((1.2, 5.6), 400), ((1.2, 5), 400), ((I,
5.6.7.8),400), ((I, 5.6.7), 400), ((I, 5.6), 400), ((I, 5), 400)}。
[0112]在最終輸出中,在清除地址前綴組合中的不重要的子代之后,將以更簡明且有意義的方式將以上集合呈現給用戶。一個可能的輸出是{((1.2.3.4,5.6.7.8), 400)},它指示域1.2.3中的源地址一共將400個字節的數據發送到目的地地址5.6.7.8。因此,IP域
1.2.3是潛在的大流量對象。
[0113]超級傳播者檢測/蠕蟲檢測
圖9A和9B分別是示出用于在集中式和分布式體系結構中執行超級傳播者/蠕蟲檢測的偽代碼的圖。圖9A是示出根據一個實施例用于集中式體系結構的偽代碼900的圖。例如,偽代碼900可作為超級傳播者檢測模塊323的一部分實現。圖9B是示出根據一個實施例用于分布式體系結構的偽代碼901的圖。例如,偽代碼901可作為超級傳播者檢測模塊323的一部分實現。偽代碼901執行與偽代碼900所執行的操作類似的操作,不同之處在于,將偽代碼901分區,以使得它可由多個網絡裝置的多個DPU以分布式方式執行。例如,偽代碼901的片段902的操作可由低級DPU執行,而偽代碼901的片段903的操作可由高級DPU執行。
[0114]諸如DDoS攻擊和蠕蟲攻擊的互聯網攻擊的嚴重程度日益增加。網絡安全監測可在防御和抑制這種大規模互聯網攻擊中起著重要的作用。它可用于標識被攻擊的行為不當的主機或受害者,并且可用于開發合適的過濾器以便自動阻斷攻擊業務。例如,執行快速掃描以便傳播蠕蟲的被入侵主機通常在短時間內形成到不同目的地的不尋常的大量連接。標識的潛在攻擊者可用于觸發網絡日志系統以便記錄攻擊者業務以進行攻擊的詳細的實時和事后分析,并且還可用于幫助開發實時阻斷隨后的攻擊業務的過濾器。
[0115]在進行快速掃描以便實現蠕蟲傳播的期間,被入侵的主機可能會試圖連接到大量不同主機以便傳播蠕蟲。如果主機A在固定時間間隔謂月間將業務發送到多于女個唯一目的地,那么將主機A定義為是超級傳播者。到^力對于算法是可配置參數。如果在時間窗口內源形成到相同目的地的多個連接或將多個分組發送到相同目的地,那么該源-目的地連接只計一次。這是因為,存在合法通信模式,其中在諸如網頁下載的時間窗口內,源形成到相同目的地的數次連接。
[0116]通過實時標識在短時間內形成不尋常的大量不同連接的任何源IP地址,網絡監測節點可標識可能是超級傳播者的主機,并且可采取合適的措施。檢測超級傳播者對于停止蠕蟲傳播很重要。因此,早期檢測它們至關重要。在一個實施例中,給定分組序列,我們想要設計實時標識在時間窗口內哪些源IP地址接觸了大量不同主機的有效監測機制。這在高速監測節點上是很大的難題,因為每分鐘可能有數百萬的合法流通過,并且攻擊業務可能只是極小的一部分。
[0117]分別如圖9A和9B所示用于執行超級傳播者和蠕蟲檢測的集中式和分布式體系結構與計數業務/DDoS檢測模塊320的相應體系結構類似。差別在于,在模塊323中,利用源IP地址(sr c )而不是目的地IP地址(ds t)作為密鑰。
[0118]業務流變化檢測
圖1OA和1B分別是示出用于在集中式和分布式體系結構中執行業務流變化檢測的偽代碼的圖。圖1OA是示出根據一個實施例用于集中式體系結構的偽代碼1000的圖。例如,偽代碼1000可作為業務流變化檢測模塊324的一部分實現。圖1OB是示出根據一個實施例用于分布式體系結構的偽代碼1001的圖。例如,偽代碼1001可作為業務流變化檢測模塊324的一部分實現。偽代碼1001執行與偽代碼1000所執行的操作類似的操作,不同之處在于,將偽代碼1001分區,以使得它可由多個網絡裝置的多個DPU以分布式方式執行。例如,偽代碼1001的片段1002的操作可由低級DPU執行,而偽代碼1001的片段1003的操作可由高級DPU執行。
[0119]各種攻擊的檢測通常將業務看作是流的合集,并在業務模式和量方面尋找重大變化。給定現今的業務量和鏈路速度,檢測方法必須能夠處理潛在數百萬或更多的同步網絡流。
[0120]根據業務變化檢測模塊324的一個實施例,該模塊將數據項的序列分解成兩個時間上相鄰的窗口。我們感興趣的是在第一窗口相對于第二窗口采取的信號大小顯著不同的密鑰。該模塊通過基于過去的業務歷史導出正常行為的模型并查找不符合該模型的大約數分鐘到數小時的短期行為的顯著變化來檢測業務異常。
[0121]如圖1OA所示,該模塊按照相同時間間隔長度(例如,10分鐘)的時間窗口將輸入數據集分區。在RDD中加載每個時間窗口的數據。對于任意兩個連續時間窗口 ipTuples(k)和ipTuples (k+Ι ),調用(與上述用于判定流大小分布的算法類似的)算法來計算流字節,分別得到flowBytes(k)和flowBytes(k+l)。然后,通過flowChanges(k, k+1) = flowBytes(k+I )-f 1wBytes (k)計算delta。計算與集合差類似:對于出現在f 1wBytes (k+1)中但沒有出現在f 1wBytes(k)中的每個新流,字節為正;對于出現在f 1wBytes(k)中但沒有出現在fl0WBytes(k+l)中的每個流,字節為負;對于出現在兩者中的每個流,字節差可為正、負或零。最后,該模塊按照某個準則、例如按照絕對變化量的降序輸出感興趣的那些變化。
[0122]如圖1OB所示,由于flowBytes和flowChanges的計算是交換式的,所以它可與上文所述的其它四類分析(模塊320-323)類似地實現。低級DPU將計算的f 1wChanges上載到高級DPU,而高級DPU接著聚合所有N個;flowChanges,并應用reduceByKey操作符。
[0123]現在將舉例說明用于執行業務流變化檢測的分布式體系結構。在以下示例中假設,片段1002分別由網絡裝置230和231的DPU 250和251執行。該示例還假設,片段1003由網絡裝置234的DPU 254執行。
[0124]假設,DPU250在時間窗口k中接收了原始IP數據,并將ipTupleS_250(k)變換為具有以下值的flowBytes(k):
{(FLOff-lO, 600),(FL0W-20, 200)}。
[0125]假設,DPU 250在下一個時間窗口k+1中接收了原始IP數據,并將ipTuples_250(k+I)變換為具有以下值的flowBytes(k+l):
{(FLOff-lO, 300),(FL0W-30, 250)}。
[0126]在時間窗口k+1結束時,DPU 250計算具有以下值的差flowChanges_250(k+l,k)=flowBytes(k+l) - flowBytes(k):
{(FLOff-lO, -300),(FL0W-20, -200),(FL0W-30, 250)},
其中,與上一個時間窗口相比,FL0W-10的大小減小300字節,FL0W-20的大小減小200字節,而FL0W-30的大小增加250字節。
[0127]假設,DPU251在時間窗口k中接收了原始IP數據,并將ipTupleS_251(k)變換為具有以下值的flowBytes(k):
{(FLOff-lO, 200), (FL0W-20, 100)}。
[0128]假設,DPU 251在下一個時間窗口k+1中接收了原始IP數據,并將ipTuples_251(k+I)變換為具有以下值的flowBytes(k+l):
{(FL0W-20, 600), (FL0W-40, 200)}。
[0129]在時間窗口k+1結束時,DPU 251計算具有以下值的差flowChanges_251(k+l)=flowBytes(k+l) - flowBytes(k):
{(FLOff-lO, -200), (FL0W-20, 500), (FL0W-40, 200)},
其中,與上一個時間窗口相比,FL0W-10的大小減小200字節,FL0W-20的大小增加500字節,并且FL0W-40的大小增加200字節。
[0130]將以上兩個流變化flowChanges_250和flowChanges_251分別從DPU 250和DPU251發送到DPU 254 JPU 254聚合這兩個輸入數據集,并且并集輸入包括以下值:
{(FLOff-lO, -300), (FL0W-20, -200), (FL0W-30, 250), (FLOff-lO, -200),(FL0W-20, 500), (FL0W-40, 200)}。
[0131 ] 然后,DPU 254對輸入應用操作reduceByKey,由此得到如下聚合的flowChanges(k, k+1):
{(FLOff-lO, -500), (FL0W-20, 300), (FL0W-30, 250), (FL0W-40, 200)}。
[0132]最后,DPU 254根據某個用戶定義的準則輸出這些流變化。例如,按照絕對值的前4個流變化將是降序的?1/)胃-10小11)¥-20小11)¥-30和?11)¥-40。[ΟΙ33]圖11是不出在將上述每個分析映射到DPU的分布式網絡時的一般設計模式的框圖。當利用某種大數據技術(例如,Spark/BDAS)時,每個分析的實現在商用計算機的集群上變得非常簡便。集中式體系結構在不同分析之間非常類似:加載輸入數據集;應用用戶定義的映射和縮減函數,它們分別從輸入數據集提取密鑰-值對并對每個密鑰聚合這些值;然后將結果輸出到用戶或存儲系統。對于每種類型的分析,差別主要在于用戶定義的映射、縮減和輸出函數中。在每種情況的分布式體系結構中,低級DHJ的代碼與它的集中式版本幾乎相同,不同之處在于,通過將結果上載到更高級DPU來取代結果輸出。此外,在每種情況的分布式體系結構中,高級DHJ的代碼也幾乎相同:它聚合來自所有較低級DPU的中間結果,并應用操作符reduceByKey來計算每個不同密鑰的對應計數(例如,流id)的總和。此外,在每種情況的分布式體系結構中,較高級DPU可容易地用多于兩級(它作為示例給出)的更多級擴展。下一級DPU只是通過聚合來自它的較低級DPU的中間結果、應用操作符reduceByKey、然后將結果上載到另一個更高級的DPU來以相同方式工作。在最高級,除了聚合和縮減較低級結果之外,最終結果的輸出正好與集中式體系結構中相同,例如按照密鑰將結果排序,或者按照值范圍或閾值選擇結果。
[0134]以上模式對可擴縮網絡業務分析的全局范圍的平臺的設計具有以下含義。利用用戶定義的映射、縮減和輸出函數,如同其它領域中的當前大數據分析那樣在一個集中式數據中心或少數幾個數據中心中快速地實現一定范圍的網絡業務分析是可能的。此外,在網絡裝置的網絡上快速地重新實現這些網絡業務分析并將它們部署到這樣的數據處理網絡上也是可能的。在數據源附近處理原始數據,并且只將數據的概要上載到上級DPU。該實現具有高得多的帶寬效率和快得多的響應。此外,將遵循以上模式的網絡業務分析從集中式(或體系結構不可知的)體系結構自動轉化為分布式體系結構也是可能的。以此方式,取決于諸如數據大小、資源的可用性、網絡鏈路質量、成本和對等待時間的要求的因素,可在一定范圍的體系結構選項上自動執行分析。那些選項包括:增加任意級DPU,調整DPU的數量和位置,改變DPU之間的連接。
[0135]圖12是示出可與本發明的一個實施例一起使用的數據處理系統的示例的框圖。例如,系統1200可代表用于執行上文所描述的任何過程或方法的上述任何數據處理系統。系統1200可代表桌面型計算機、膝上型計算機、平板電腦、服務器、移動電話、媒體播放器、個人數字助理(PDA)、個人通信器、游戲裝置、網絡路由器或集線器、無線接入點(AP)或中繼器、機頂盒、或其組合。
[0136]參考圖12,在一個實施例中,系統1200包括處理器1201和外圍接口 1202,外圍接口1202在本文中又稱為芯片組,它經由總線或互連將包括存儲器1203和裝置1205-1208在內的各種組件耦合到處理器1201。處理器1201可代表其中包含單個處理器核或多個處理器核的單個處理器或多個處理器。處理器1201可代表一個或多個通用處理器,例如微處理器、中央處理單元(CPU)等。更具體來說,處理器1201可以是復雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、超長指令字(VLIW)微處理器、或實現其它指令集的處理器、或實現指令集的組合的處理器。處理器1201也可以是一個或多個專用處理器,例如專用集成電路(ASIC)、現場可編程門陣列(FPGA)、數字信號處理器(DSP)、網絡處理器、圖形處理器、網絡處理器、通信處理器、密碼處理器、協處理器、嵌入式處理器、或能夠處理指令的任何其它類型的邏輯。處理器1201配置成執行指令以便執行本文中所論述的操作和步驟。
[0137]外圍接口 1202可包括存儲器控制器集線器(MCH)和輸入輸出控制器集線器(ICH)。外圍接口 1202可包括與存儲器1203通信的存儲器控制器(未示出)。外圍接口 1202還可包括與圖形子系統1204通信的圖形接口,圖形子系統1204可包括顯示器控制器和/或顯示裝置。外圍接口 1202可經由加速圖形端口(AGP)、外圍組件互連(PCI)express總線或其它類型的互連與圖形裝置1204通信。
[0138]MCH有時稱為北橋,而ICH有時稱為南橋。如本文中所使用,術語MCH、ICH、北橋和南橋旨在廣泛地解釋為涵蓋功能包括向處理器傳遞中斷信號的各種芯片。在一些實施例中,MCH可與處理器1201集成。在這種配置中,外圍接口 1202作為執行MCH和ICH的一些功能的接口芯片操作。此外,圖形加速器可集成在MCH或處理器1201內。
[0139]存儲器1203可包括一個或多個易失性存儲(或存儲器)裝置,例如隨機存取存儲器(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)或其它類型的存儲裝置。存儲器1203可存儲包括由處理器1201或任何其它裝置執行的指令序列的信息。例如,可在存儲器1203中加載并由處理器1201執行各種操作系統、裝置驅動器、固件(例如,輸入輸出基本系統或B1S)和/或應用的可執行代碼和/或數據。操作系統可以是任何種類的操作系統,例如Microsoft ? 的 Windows ? 操作系統、Apple 的Mac 0S?/i0S?、Google? 的 Andro id ?、Linux?、Unix?、或諸如VxWorks的其它實時或嵌入式操作系統。
[0140]外圍接口1202可提供到諸如包括無線收發器1205、輸入裝置1206、音頻10裝置1207和其它10裝置1208的裝置1205-1208的10裝置的接口。無線收發器1205可以是WiFi收發器、紅外收發器、藍牙收發器、WiMax收發器、無線蜂窩電話收發器、衛星收發器(例如,全球定位系統(GPS)收發器)或其組合。輸入裝置1206可包括鼠標、觸摸板、觸敏屏(它可與顯示裝置1204集成)、諸如觸筆的指向裝置、和/或鍵盤(例如,物理鍵盤或作為觸敏屏的一部分顯示的虛擬鍵盤)。例如,輸入裝置1206可包括耦合到觸摸屏的觸摸屏控制器。觸摸屏和觸摸屏控制器可例如利用多個觸敏技術(包括但不限于電容式、電阻式、紅外和聲表面波技術)以及其它接近傳感器陣列或用于確定與觸摸屏的一個或多個接觸點的其它元件中的任一個檢測其接觸和移動或間歇。
[0141]音頻101207可包括揚聲器和/或麥克風以便于語音啟用的功能,例如語音識別、語音復制、數字記錄和/或電話功能。其它可選裝置1208可包括存儲裝置(例如,硬盤驅動器、閃速存儲器裝置)、通用串行總線(USB)端口、并行端口、串行端口、打印機、網絡接口、總線橋接器(例如,PC1-PCI橋接器)、傳感器(例如,運動傳感器、光傳感器、接近傳感器等)或其組合。可選裝置1208還可包括成像處理子系統(例如,相機),它用于促進相機功能(例如,記錄照片和視頻剪輯),它可包括光學傳感器,例如電荷耦合裝置(CCD)或互補金屬-氧化物半導體(CMOS)光學傳感器。
[0142]注意,盡管圖12示出數據處理系統的各種組件,但是它不是要代表互連這些組件的任何特定體系結構或方式;因為這些細節與本發明的實施例無密切關系。還將明白,具有更少組件或可能更多組件的網絡計算機、手持式計算機、移動電話和其它數據處理系統也可與本發明的實施例一起使用。
[0143]上文用計算機存儲器內的數據位上的事務的算法和符號表示介紹了以上詳細描述的一些部分。這些算法描述和表示是數據處理領域中的技術人員用來向本領域中的其它技術人員最有效地傳達他們的工作實質的方式。算法在這里一般視為是導致期望結果的事務的獨立序列。這些事務是需要物理操縱物理量的事務。通常但不一定,這些量采用能夠存儲、傳送、組合、比較以及以其它方式進行操縱的電或磁信號的形式。主要出于常用的原因,有時將這些信號稱為位、值、元素、符號、字符、項、數字等經證實是便利的。
[0144]但是,應記住,所有這些和類似術語都將與合適的物理量相關聯,并且它們只是應用于這些量的便利標記。除非另外特別指出,否則從以上論述顯而易見,將明白,在本描述中,利用諸如“處理”、或“計算”、或“演算”、或“確定”、或“顯示”等術語的論述是指操縱表示為計算機系統的寄存器和存儲器內的物理(如電子)量的數據并將這些數據變換為類似地表示為計算機系統的存儲器、或寄存器或其它這樣的信息存儲、傳輸或顯示裝置內的物理量的其它數據的計算機系統或類似電子計算裝置的動作和過程。
[0145]本文中介紹的算法和顯示并非與任何特定計算機或其它設備固有地相關。各種通用系統可與根據本文中的教導的程序一起使用,或者構造更專門的設備來執行所需方法事務可證實是便利的。各種這些系統的所需結構將從以上描述顯而易見。另外,沒有參考任何特定編程語言來描述本發明的實施例。將明白,可使用各種編程語言來實現本文中所描述的本發明的實施例的教導。
[0146]在以上說明書中,參考本發明的特定示例性實施例描述了本發明的實施例。將顯而易見,在不偏離隨附權利要求所述的本發明的更廣精神和范圍的情況下,可對其進行各種修改。因此,說明書和附圖應視為是說明性意義而不是限制性意義。
[0147]在整篇描述中,通過流程圖介紹了本發明的實施例。將明白,這些流程圖中所描述的事務順序和事務只是為了說明的目的,而不是要限制本發明。本領域技術人員將意識到,在不偏離隨附權利要求所述的本發明的更廣精神和范圍的情況下,可對這些流程圖進行各種改變。
【主權項】
1.一種在網絡中的第一網絡裝置(230)中的方法,所述網絡包括通信地耦合到第三網絡裝置(234)的所述第一網絡裝置(230)和第二網絡裝置(231),所述方法用于通過利用大數據工具(310)以分布式方式聚合所述網絡中的互聯網協議(IP)業務,所述方法包括: 接收只來自所述網絡的第一部分(210)的IP業務,其中來自所述網絡的第二部分(211)的IP業務由所述第二網絡裝置(231)接收; 利用大數據工具(310)生成來自所述網絡的所述第一部分的IP業務的概要,其中來自所述網絡的第二部分的IP業務的概要由所述第二網絡裝置利用它的本地大數據工具生成; 將所述網絡的所述第一部分的IP業務的概要發送到所述第三網絡裝置(234),使得所述第三網絡裝置利用它的本地大數據工具(310)基于來自所述第一網絡裝置的概要和來自所述第二網絡裝置的概要生成所述網絡的所述第一和第二部分的IP業務的概要,從而允許在所述第一、第二和第三網絡裝置之間以分布式方式聚合所述網絡中的IP業務。2.如權利要求1所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要包括: 對于所述IP業務的每個IP數據,從所述接收的IP數據存取字段集合; 基于來自所述字段集合的一個或多個字段確定密鑰字段;以及 基于來自所述字段集合的一個或多個字段確定值字段。3.如權利要求2所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 基于所述密鑰字段將所述字段集合分區成多個群組,以使得每個群組包括唯一密鑰字段和來自具有相同密鑰字段的一個或多個IP數據的一個或多個值字段。4.如權利要求3所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的多個唯一值。5.如權利要求3所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的總和。6.如權利要求3所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的最大值。7.如權利要求3所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的最小值。8.如權利要求3所述的方法,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的平均值。9.如權利要求1所述的方法,其中所述第一、第二和第三網絡裝置在地理上是分散的。10.如權利要求1所述的方法,其中所述第一、第二和第三網絡裝置的所述大數據工具是 Hadoop 和Spark 之一。11.如權利要求1所述的方法,其中基于通信成本確定分別由所述第一和第二網絡裝置處理的所述網絡的所述第一和第二部分。12.—種在網絡中的第一網絡裝置(234)中的方法,所述網絡包括通信地耦合到第二網絡裝置(230)和第三網絡裝置(231)的所述第一網絡裝置,所述方法用于通過利用大數據工具(310)以分布式方式聚合所述網絡中的互聯網協議(IP)業務,所述方法包括: 從所述第二網絡裝置(230)接收所述網絡的第一部分(210)的IP業務的概要,其中所述網絡的所述第一部分的IP業務的概要由所述第二網絡裝置利用它的本地大數據工具(310)生成; 從所述第三網絡裝置(231)接收所述網絡的第二部分(211)的IP業務的概要,其中所述網絡的所述第二部分的IP業務的概要由所述第三網絡裝置利用它的本地大數據工具(310)生成; 利用大數據工具(310)基于來自所述第二網絡裝置的概要和來自所述第三網絡裝置的概要生成所述網絡的所述第一 (210)和第二部分(211)的IP業務的概要,從而允許在所述第一、第二和第三網絡裝置之間以分布式方式聚合所述網絡中的IP業務;以及 將所述網絡的所述第一和第二部分的IP業務的概要提供給用戶,以使得所述用戶可以確定所述網絡中是否存在異常。13.如權利要求12所述的方法,其中所述第一、第二和第三網絡裝置處的所述大數據工具是 Hadoop 和Spark 之一。14.一種在網絡中的第一網絡裝置(230),所述網絡包括通信地耦合到第三網絡裝置(234)的所述第一網絡裝置(230)和第二網絡裝置(231),所述第一網絡裝置(230)通過利用大數據工具(310)以分布式方式聚合所述網絡中的互聯網協議(IP)業務,所述第一網絡裝置包括: 網絡接口,配置成通過所述網絡交換業務;以及 耦合到所述網絡接口的數據處理單元(DHJ)模塊,配置成: 接收只來自所述網絡的第一部分(210)的IP業務,其中來自所述網絡的第二部分(211)的IP業務由所述第二網絡裝置(231)接收, 利用大數據工具(310)生成來自所述網絡的所述第一部分的IP業務的概要,其中來自所述網絡的第二部分的IP業務的概要由所述第二網絡裝置利用它的本地大數據工具生成,以及 將所述網絡的所述第一部分的IP業務的概要發送到所述第三網絡裝置(234),以使得所述第三網絡裝置利用它的本地大數據工具(310)基于來自所述第一網絡裝置的概要和來自所述第二網絡裝置的概要生成所述網絡的所述第一和第二部分的IP業務的概要,從而允許在所述第一、第二和第三網絡裝置之間以分布式方式聚合所述網絡中的IP業務。15.如權利要求14所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要包括: 對于所述IP業務的每個IP數據,從所述接收的IP數據存取字段集合; 基于來自所述字段集合的一個或多個字段確定密鑰字段;以及 基于來自所述字段集合的一個或多個字段確定值字段。16.如權利要求15所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 基于所述密鑰字段將所述字段集合分區成多個群組,以使得每個群組包括唯一密鑰字段和來自具有相同密鑰字段的一個或多個IP數據的一個或多個值字段。17.如權利要求16所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示所述對應密鑰值的多個唯一值字段。18.如權利要求16所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的總和。19.如權利要求16所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的最大值。20.如權利要求16所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的最小值。21.如權利要求16所述的第一網絡裝置,其中生成來自所述網絡的所述第一部分的IP業務的概要還包括: 對于每個群組,聚合所述值字段以便生成聚合值,其中所述聚合值指示由所述對應密鑰字段的所述值字段指示的值的平均值。22.如權利要求14所述的第一網絡裝置,其中所述第一、第二和第三網絡裝置在地理上是分散的。23.如權利要求14所述的第一網絡裝置,其中所述第一、第二和第三網絡裝置處的所述大數據工具是Hadoop和Spark之一。24.如權利要求14所述的第一網絡裝置,其中基于通信成本確定分別由所述第一和第二網絡裝置處理的所述網絡的所述第一和第二部分。25.一種在網絡中的第一網絡裝置(234),所述網絡包括通信地耦合到第二網絡裝置(230)和第三網絡裝置(231)的所述第一網絡裝置,所述第一網絡裝置通過利用大數據工具(310)以分布式方式聚合所述網絡中的互聯網協議(IP)業務,所述第一網絡裝置包括: 網絡接口,配置成通過所述網絡交換業務;以及 耦合到所述網絡接口的數據處理單元(DHJ)模塊,配置成: 從所述第二網絡裝置(230)接收所述網絡的第一部分(210)的IP業務的概要,其中所述網絡的所述第一部分的IP業務的概要由所述第二網絡裝置利用它的本地大數據工具(310)生成, 從所述第三網絡裝置(231)接收所述網絡的第二部分(211)的IP業務的概要,其中所述網絡的所述第二部分的IP業務的概要由所述第三網絡裝置利用它的本地大數據工具(310)生成, 利用大數據工具(310)基于來自所述第二網絡裝置的概要和來自所述第三網絡裝置的概要生成所述網絡的所述第一 (210)和第二部分(211)的IP業務的概要,從而允許在所述第一、第二和第三網絡裝置之間以分布式方式聚合所述網絡中的IP業務,以及 將所述網絡的所述第一和第二部分的IP業務的概要提供給用戶,以使得所述用戶可以確定所述網絡中是否存在異常。26.如權利要求25所述的第一網絡裝置,其中所述第一、第二和第三網絡裝置處的所述大數據工具是Hadoop和Spark之一。
【文檔編號】H04L29/06GK105917632SQ201580005584
【公開日】2016年8月31日
【申請日】2015年1月16日
【發明人】D.李, 張穎
【申請人】瑞典愛立信有限公司