TWI757207B - 不完全比對的資料流處理方法與系統 - Google Patents

不完全比對的資料流處理方法與系統 Download PDF

Info

Publication number
TWI757207B
TWI757207B TW110124339A TW110124339A TWI757207B TW I757207 B TWI757207 B TW I757207B TW 110124339 A TW110124339 A TW 110124339A TW 110124339 A TW110124339 A TW 110124339A TW I757207 B TWI757207 B TW I757207B
Authority
TW
Taiwan
Prior art keywords
data stream
data flow
input data
filter
flow
Prior art date
Application number
TW110124339A
Other languages
English (en)
Other versions
TW202304176A (zh
Inventor
呂國正
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW110124339A priority Critical patent/TWI757207B/zh
Priority to US17/573,187 priority patent/US11765088B2/en
Application granted granted Critical
Publication of TWI757207B publication Critical patent/TWI757207B/zh
Publication of TW202304176A publication Critical patent/TW202304176A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

說明書提出一種不完全比對的資料流處理方法與系統,方法實現於一網路裝置中,其中記憶體設有一資料流表與一資料流過濾器,並實現一資料流分析模組,以對輸入資料流的封包執行分析與分類,並識別輸入資料流所屬的應用程式類別。在方法中,根據解析輸入資料流的結果查詢資料流表,以判斷輸入資料流是否符合資料流表中任一資料流條目,當輸入資料流不符合資料流表中資料流條目時,即再查詢資料流過濾器,判斷輸入資料流的特徵值是否對應其中條件,據此對應處理輸入資料流,並非讓所有未符合資料流條目的資料流都複製到資料流表中。

Description

不完全比對的資料流處理方法與系統
說明書提出一種資料流處理技術,其中特別是指採用不完全比對的機制而降低處理負擔的資料流處理方法與系統。
辨識網路流量類型、進而改善服務品質(QoS, Quality of Service),或者提升網路安全是近年相當重要的網路設備的差異化訴求。例如,若網路交換機能辨識出視訊會議(video conference)與數據傳輸(file transfer)這兩類不同的流量類型,即適用改善服務品質(QoS),也就是可以優先服務視訊會議的流量,可提升用戶體驗。如再一範例,若網路交換機能識別出惡意的應用程式流量行為,如木馬程式的流量行為,還能在第一時間阻隔資安漏洞的發生。
然而,識別網路流量類型一直是個關鍵問題,最常見的方式是讓網路管理者設定各種網路協定的埠號的優先順序,如可設定TCP(Transmission Control Protocol)或UDP(User Datagram Protocol)埠號是高優先順序,或是低優先順序。不過這樣的方式除了造成使用者不便與門檻外,會有愈來愈多的應用採用動態的TCP或UDP埠號,加上也有愈來愈多的應用是隱藏在已知的這些TCP或UDP埠號(port number,如port 80)下進行,也會有愈來愈多的應用程式會被加密後傳送,這些都會使得流量辨識難以實現。
為解決上述問題,在習知技術中,有一種基於流量特徵的辨識方式因應而生,其中會根據每個資料流(flow)的前幾個(N個)封包的標頭(header)與統計特性辨識流量的類型。所述統計特性包含:單向或雙向的每個封包長度、封包間距、封包長度平均值、封包長度變異量、封包間距平均值、封包間距變異量等,如此,藉由每個資料流的前幾個封包的特性,習知技術採用機器學習(machine learning)或深度學習(deep learning)技術進行流量類型的分類。
為了達到檢視每個流的前幾個封包的目的,可參考圖1顯示網路交換機內處理資料流的習知技術示意圖。網路交換機接收一輸入資料流10,經網路交換機內處理器解析後,形成一個轉送表(forwarding table)12,此例顯示轉送資料為目的地媒體存取控制(media access control,MAC)的埠號(port=Y)。網路交換機內設一個資料流表(flow table),用以記錄流過此網路交換機的每個資料流,如圖所示,一般可以5元組(5-tuple)14表達一個資料流的標頭,5元組(此例顯示DIP、SIP、SP、DP、Prot (Protocol))包括:目的地網路地址(Destination IP,DIP)、來源網路地址(Source IP,SIP)、目的地第4層埠口(Destination Layer 4 port,DP)、來源第4層埠口(Source Layer 4 port,SP)與通信協議(Protocol),此例示意顯示以5元組14中記錄有兩筆有不同狀態的資料流標頭。
當網路交換機收到封包,查詢資料流表,如5元組14,若發現此資料流對應的資料流條目(flow entry)並不存在,表示這是一個新的資料流,即複製此封包到資料流分析模組18(資料流方向101),資料流分析模組18是一個軟體模組,可以對封包執行分析與分類,用以識別資料流所屬的應用程式類別。當資料流分析模組18收到此資料流的前幾個封包後,開始執行流量辨識的算法,最後再把此辨識完成的資料流***到網路交換機的資料流表(資料流方向103),並標示分類結果於資料流條目上,此資料流接續再進來交換機的封包,即可在此資料流表(即此例的5元組14)中被查詢到,就無需通過資料流分析模組18處理。最後即根據資料流中封包記載的目的地輸出,形成輸出資料流16。
然而,根據上述習知技術,因此需要對每一筆資料流進行特定的處理,所有資料流都需要記錄在資料流表中,新的資料流也都需要複製到資料流分析模組18,再***至資料流表,其中的缺點是網路交換機中的處理電路(如特殊應用積體電路,ASIC)需要有足夠的記憶體儲存大量的資料流記錄。一般而言,所需要的容量約在100K等級,對比使用者真正關心的應用資料流數目來說,這個容量是相當大的。更者,因為新的資料流的封包會被複製到資料流分析模組18,產生額外的處理需求,並且,雖然資料流分析模組18僅需要資料流的前幾個封包,但可能因為處理有時間差,無法及時把分類好的資料流發回資料流表,造成超過原本需要的封包量的封包複製到資料流分析模組18,產生額外的處理負擔。
有鑑於習知技術中的網路交換機的處理電路需要大容量記憶空間儲存資料流記錄以及處理各封包時造成額外的處理負擔等的問題,揭露書提出一種不完全比對的資料流處理方法與系統,通過封包篩選的機制,採用不完全比對查表(incomplete comparison table)的方式,降低資料流表的儲存容量的需求,也減低分析資料流的負擔。
根據實施例,執行所述不完全比對的資料流處理方法的資料流處理系統設於一網路裝置中,其中包括有一記憶體,設有一資料流表與一資料流過濾器,以及一以軟體或電路實現的資料流分析模組,資料流分析模組用以對輸入資料流的封包執行分析與分類,還識別輸入資料流所屬的應用程式類別。
在此系統執行的不完全比對的資料流處理方法包括,接收輸入資料流,並解析輸入資料流,之後根據解析輸入資料流的結果,查詢資料流表,以判斷輸入資料流是否符合資料流表中任一資料流條目,並在輸入資料流未符合資料流表中任一資料流條目時,查詢資料流過濾器,用以判斷輸入資料流是否符合資料流過濾器中任一過濾條件。
其中,根據查詢資料流表以及資料流過濾器的結果,執行以下步驟之一:當輸入資料流符合資料流表中任一資料流條目,即套用一對應的處理策略;當輸入資料流不符合資料流表中任一資料流條目,再查詢資料流過濾器,判斷輸入資料流是否符合其中任一過濾條件;當輸入資料流符合資料流過濾器中任一過濾條件,表示輸入資料流為一個已經存在且已經傳輸超過多個封包的資料流,即依照網路裝置設定的流程執行一動作;以及當輸入資料流不符合資料流過濾器中任一過濾條件,也就表示輸入資料流並不符合資料流表中條目與資料流過濾器的條件,系統將輸入資料流導向資料流分析模組處理輸入資料流。
優選地,所述資料流處理系統實現一網路交換機內的數據處理電路,用以處理來往網路交換機的資料流。
進一步地,所述資料流表適用所有型態的資料流,當輸入資料流符合資料流表中任一資料流條目,執行以下處理策略之一:設定輸入資料流為高優先順序,在另一實施例中,亦允許設定優先權為低優先順序,並轉發輸入資料流至一目的地傳輸埠;丟棄輸入資料流;以及將輸入資料流複製到資料流分析模組,並轉發輸入資料流至目的地傳輸埠。
進一步地,資料流表中記載資料流的標頭中的5元組數據,可包括一目的地網路地址、一來源網路地址、一目的地第4層埠口、一來源第4層埠口與一通信協議,以及記載符合各筆資料流條目的處理策略。
優選地,所述資料流過濾器以一布隆過濾器實現一個不完全比對的查表,並用於查詢連線導向的資料流。布隆過濾器將輸入資料流經k次雜湊演算後得出雜湊值,判斷是否對應布隆過濾器中k個1位元條目。
進一步地,當輸入資料流為連線導向資料流的第一個封包,經查詢資料流表後判斷沒有符合資料流表中任一資料流條目,即將第一個封包導向至資料流分析模組進行分析、分類與識別其所屬的應用程式類別,再依照網路裝置設定的流程,依照第一個封包的標頭記載之目的地資訊轉發第一個封包。當判斷輸入資料流在資料流過濾器中產生失真,資料流分析模組即預先將輸入資料流置入資料流表,並依照輸入資料流所屬的應用程式類別設定一對應的處理策略。
更者,當判斷輸入資料流符合資料流過濾器的過濾條件,把符合濾器條件的輸入資料流填入資料流過濾器中,並移除上述避免輸入資料流在資料流過濾器產生失真而預先置入資料流表的輸入資料流。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者信號,但這些元件或者信號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一信號與另一信號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
揭露書關於一種不完全比對的資料流處理方法與系統,其中提出的資料流處理方法是基於不完全比對的查表(incomplete comparison table)方法,實施例顯示所述方法採用布隆過濾器(bloom filter)等的資料流過濾器(flow filter),其中優點是可以避免因為要處理每筆資料流造成需要大容量記憶體以及處理負擔的問題。根據實施例之一,所採用的布隆過濾器是一種機率資料結構(probabilistic data structure),可以快速驗證每筆資料流是否存在於資料流表,並僅使用相對少的儲存空間。
在所述不完全比對的資料流處理方法中,其中之一實施例的概念是同時採用不完全比對的查表以及已知技術中需要完全比對的查表(如資料流表),查詢的是如圖1顯示5元組14的資料流標頭,藉此可以降低完全比對的查表的大小,進一步降低整體系統成本。
進一步地,所述不完全比對的查表指的是,當將一個資料流的記錄儲存至此不完全比對的查表中,只有儲存此資料流的特徵值,特徵值可以是資料流被壓縮後的資訊、摘要(digest)或是雜湊值(hash value)。當資料流的特徵值被記錄在此不完全比對的查表內,由於不是把完全的資料流存入查表,這樣的查表的容量可以比完全比對的查表的記錄內容小非常多。然而,利用不完全比對的查表仍需要解決失真(aliasing)的狀況發生,例如,原本不存在此查表內的資料流,卻在查找時誤判為存在。
因此,揭露書提出一種採用一資料流過濾器的不完全比對的資料流處理方法,通過資料流過濾器實現不完全比對的查表。資料流過濾器可以是上述布隆過濾器,布隆過濾器具有極為緊密(compact)的k次雜湊表(hash table)結構,其中原理是,當一個元素被加入一個集合(即實現一個查表)時,通過k個雜湊函式將這個元素對映成一個位陣列中的k個點,把這些(k個)點設為1。對資料流進行過濾(檢查)時,只要檢查映射這些點的位置是不是都是1,就可判斷出資料流是否包含在集合中。若這些映射的點有任何一個0,則被過濾的資料流就不在這個集合中;如果映射的點都是1,則被過濾的資料流就被涵蓋在此集合中。
根據採用此布隆過濾器的不完全比對的資料流處理方法,當一個資料流被***至布隆過濾器,對應此資料流的k次雜湊所定址到的位置(資料流條目(flow entry)寬度為1位元)會被設為1;當用某一資料流查找布隆過濾器以確定此資料流是否曾被***到此布隆過濾器時,若此資料流被k次雜湊後對應的k個1位元的條目(1-bit entry)都為1,即表示符合布隆過濾器的k次雜湊,也就是過濾出符合布隆過濾器的資料流,判斷此資料流之前曾被***到此布隆過濾器中;反之,就通過布隆過濾器,沒有被過濾出。
舉例來說,以圖2顯示的布隆過濾器實施範例示意圖為例,其中顯示一個位元陣列(bit array)20,以資料集{x, y, z}形成過濾器為例,在k=3的範例下,對資料集{x, y, z}中每個資料元素(element)進行3次雜湊運算,作為每個資料元素的特徵值,此例中每個資料定址的位置設為1,圖中顯示x有三個連線,分別代表定址到位元陣列20中3個1(3個位元設為1),y有三個連線,分別代表定址到位元陣列20中3個1,以及z有三個連線,分別代表定址到位元陣列20中3個1,如此形成一個布隆過濾器。
範例中以輸入的w資料為例,對w資料計算特徵值,經對照(mapping)此位元陣列20,發現w資料的特徵值有對應到0的位置(不是全部為1),表示並未在資料集{x, y, z}中。這就是利用布隆過濾器執行不完全比對的資料流處理方法的示例。
圖3再列舉採用平行k個雜湊表的布隆過濾器。此例中,布隆過濾器中針對輸入資料流的5元組30進行k次雜湊演算,得出k(k=4)個雜湊表,分別對比雜湊0、雜湊1、雜湊2與雜湊3,可用以過濾資料流中k個特徵值,圖中顯示k次雜湊所定址到的位置的資料流條目(flow entry)寬度為1位元,並設為1。應用時,對一個輸入資料流的5元組演算特徵值,即k次雜湊演算,針對不同的雜湊值對照此採用平行k個雜湊表的布隆過濾器,即可判斷此輸入資料流是否存在於不完全比對的查表中。
圖4顯示揭露書所提出採用資料流過濾器的資料流處理系統的架構實施例圖,所示資料流處理系統實現網路裝置中的數據處理電路,例如是一個網路交換機中的數據處理電路,以此電路執行不完全比對的資料流處理方法,用以處理網路交換機內來往傳送的資料流。
在圖中顯示的資料流處理系統架構實施例中,當系統接收了輸入資料流40後,經解析其中封包標頭(header)後傳給一轉送表42,轉送表42用以記載資料流的網路通信協定中第二層(L2)的媒體存取控制位址(Media Access Control,MAC address)或是第三層(L3)的網路位址(IP位址)。此例的轉送表42則是記錄此輸入資料流40中的目的地媒體存取控制位址(DMAC)以及目的地埠號(Port=Y)。
輸入資料流40經解析後,資料流的數據將同時提交至在系統(數據處理電路)中的記憶體400實現的資料流表(flow table)44與資料流過濾器45。根據實施例,資料流表44中可記載從多筆資料流的標頭取得的5元組數據,如各筆資料流的目的地網路地址(DIP)、來源網路地址(SIP)、目的地第4層埠口(DP)、來源第4層埠口(SP)與通信協議(Prot (Protocol)),以及記載符合各筆資料流條目(entry)的處理策略,如設定資料流的優先順序(priority)、丟棄資料流(drop)、複製資料流(copy)至資料流分析模組等。資料流過濾器45如上述布隆過濾器,以實現不完全比對的查表。
資料流處理系統除在記憶體400設有資料流表44與資料流過濾器45,更可以軟體或電路實現一資料流分析模組48。當輸入資料流40並不符合資料流表44中的任一筆資料流條目,即判斷為新的資料流,並複製到資料流分析模組48。在資料流分析模組48中,通過其中程序可對此封包執行分析與分類,還可識別資料流所屬的應用程式類別,並能按照交換機或應用之網路裝置設定的流程依照個封包標頭記載之目的地資訊轉發封包,如轉發至目的地傳輸埠號Y(port=Y)。
資料流處理系統可實現網路交換機內的處理電路,其中運作可以同時參考圖5所描述採用布隆過濾器的不完全比對的資料流處理方法的實施例流程圖。
資料流處理系統接收輸入資料流40,例如可以是自一來源傳輸埠號X(port=X)形成的封包(圖4資料流方向401、步驟S501),輸入資料流40經解析後取得其中標頭資訊(步驟S503),如圖例中轉送表42記載得出一目的地傳輸埠號Y(port=Y),接著進行查詢資料流表44與資料流過濾器45的程序,並根據查詢資料流表44以及資料流過濾器45的結果,執行以下列舉的步驟之一。其中,資料流表44適用所有型態的資料流,而資料流過濾器45則是用於查詢連線導向的資料流(connection-oriented flow)。
接著,根據解析輸入資料流的結果查詢資料流表44(資料流方向403、步驟S505),在查詢過程時,即判斷輸入資料流40的特徵是否符合資料流表內任一資料流條目(flow entry)(步驟S507),若輸入資料流40符合資料流表44中的任一資料流條目時(是),即套用其中記載對應的處理策略(步驟S509)。舉例來說,當輸入資料流40符合資料流表44中任一資料流條目,可執行以下處理策略之一:可以是設定輸入資料流為高優先順序(在另一實施例中,亦允許設定優先權為低優先順序),並同時依照資料流處理系統所應用的網路裝置(如網路交換機)中原本的流程執行相關動作,如轉發此封包,如此流程圖,可以執行步驟S515所記載的轉發資料流至目的地傳輸埠,如上述範例,傳送資料流至目的地傳輸埠號Y(port=Y)上(圖4資料流方向413)。另亦可根據處理策略而丟棄輸入資料流40,或是將此筆輸入資料流複製到資料流分析模組48(步驟S517),除分析、分類與識別封包外,還同時轉發此封包(步驟S515)。
然而,若輸入資料流40不符合資料流表44中的任一資料流條目時(否),即根據解析輸入資料流的結果查詢資料流過濾器45(資料流方向405、步驟S511),判斷此輸入資料流40是否符合其中任一過濾條件。以布隆過濾器為例,則是將輸入資料流中元素經k次雜湊演算後得出雜湊值,作為輸入資料流的特徵值,據此判斷是否對應布隆過濾器中k個1位元條目(步驟S513)。如果查詢結果是有符合其中之一過濾條件(是),即表示此輸入資料流40為一個已經存在且已經傳輸超過多個封包的資料流,但不須做額外動作,只要直接依照資料流處理系統所應用的網路裝置(如網路交換機)中原本設定的流程執行一動作,例如,依照網路裝置的設定將輸入資料流轉發至目的地傳輸埠號Y(port=Y)上(步驟S515),形成圖示中的輸出資料流46。然而,若查詢結果顯示輸入資料流40並不符合資料流過濾器45中之一過濾條件時(否),表示輸入資料流40都不符合資料流表與資料流過濾器中的任一資訊,即將此輸入資料流導向資料流分析模組處理此筆資料流(資料流方向407、步驟S517),同時亦可依照資料流處理系統所應用的網路裝置(如網路交換機)中原本的流程轉發此輸入資料流40至目的地傳輸埠,形成輸出資料流46。
圖6顯示處理資料流第一個封包的實施例流程圖,此流程運行於資料流過濾器中。此實施例流程所處理的資料流特別針對在傳輸資料之間會先建立通信會議(communication session)的一種連線導向資料流(connection-oriented flow),例如TCP協定的資料流;反過來說,所提出的資料流過濾器並不處理非連線導向資料流,例如UDP協定的資料流。
在此實施例中,從所述方法應用的網路裝置收到連線導向資料流的第一個封包開始(步驟S601)。以TCP協定為例,在此協定下第一個封包的標頭記載SYN旗標(flag)為1、ACK旗標為0,因此可以根據這些標頭記載內容判斷輸入資料流中的第一個封包,若為第一個封包,表示為新的資料流,亦沒有符合資料流表中任一資料流條目,即直接導向到資料流分析模組(資料流方向407、步驟S603)。
此時,資料流分析模組將對此輸入資料流進行分析、分類與識別其所屬的應用程式類別(步驟S605),接著是由資料流分析模組記錄分析並依照網路裝置設定的流程,依照封包標頭記載之目的地資訊轉發此封包到目的地傳輸埠號Y(圖4資料流方向413,步驟S607)。在此一提的是,資料流分析模組的工作為根據資料流表查詢比對的結果取得並未符合其中資料流條目的封包,亦接收未符合資料流過濾器中任一過濾條件的資料流,對這些資料流進行分析、分類與識別所屬應用程式類別。
接續圖6流程,圖7顯示在資料流過濾器中失真的資料流的處理方法實施例流程。
當連線導向資料流的第一個封包被導向至資料流分析模組,資料流分析模組可以判斷此新的資料流若放入資料流過濾器是否會造成失真(aliasing),這個判斷也就是判斷是否會跟已經存在於資料流過濾器的任一過濾條件(如任一資料流條目)相衝突。以TCP協定下的資料流為例,若接收第一個封包,就發現此資料流所關聯的k個資料流條目的值都不等於0,就表示有失真。
如此,當判斷輸入資料流為新資料流,且在資料流過濾器中確實會產生失真(步驟S701),資料流分析模組即預先置入資料流表(圖4資料流方向409,步驟S703),並設定對應的處理策略(步驟S705)。例如,在資料流表中,將此新的資料流的處理策略設為複製到資料流分析模組,這樣做的目的是為了讓此資料流除了第一個封包外的其他(第2至N個)封包能藉由資料流表的處理策略而被複製到資料流分析模組進行分析,而不會因錯誤符合了資料流過濾器而直接被轉送到網路裝置的輸出埠。
圖8接著顯示資料流處理方法中資料流分析模組運作的實施例流程圖,此例中,當接收的輸入資料流的前N的封包被資料流分析模組分析後,資料流分析模組會判斷出此輸入資料流的應用程式類別(步驟S801),並給出對應的處理策略(步驟S803),例如,可以是設定為高優先順序,或是丟棄此封包。之後,流程判斷是否此輸入資料流已存在資料流表內(步驟S805),若資料流並未存在資料流表內(沒有符合資料流條目)(否),可將此不符合資料流過濾器中定義的資料流條目的資料流***資料流表(步驟S807),若此資料流剛好因前述資料流過濾器的衝突(如步驟S701)產生的失真因素已被預放進資料流表,則資料流分析模組可直接把資料流表中記載的資料流條目(flow entry)的處理策略由原本的複製到資料流分析模組,改為一期望的最終策略(步驟S809)。
資料流處理方法中資料流分析模組運作的另一實施例可參考圖9所示的流程圖。
當接收輸入資料流,資料流被複製到資料流分析模組,資料流分析模組將分析前N個封包,判斷出此輸入資料流的應用程式類別(步驟S901),並從中取得對應處理策略(步驟S903),經比對資料流過濾器的過濾條件後,可把符合濾器條件的資料流直接填入資料流過濾器中(步驟S905),成為其中的資料流條目。
此時,參考圖7步驟S701,前述為避免輸入資料流因為在資料流過濾器中的衝突所產生失真的情況,將預先將輸入資料流置入資料流表,其處理策略為複製資料流至資料流表。在步驟S905後,若經N個封包分析後符合資料流過濾器中過濾條件,資料流分析模組自資料流表中移除此資料流,再把此資料流填入資料流過濾器中(圖4資料流方向411,步驟S907)。
綜上所述,根據上述實施例所描述的不完全比對的資料流處理方法與系統,其中同時採用不完全比對的資料流過濾器(可以布隆過濾器實現)與執行完全比對的資料流表,其中把符合資料流過濾器中過濾條件的資料流置入資料流過濾器中,若接收到並未符合過濾條件的資料流時,即複製資料流到資料流分析模組,如此減少習知資料流表的需求,使得資料流表僅記載需要特殊處理的資料流(如具有高優先順序的資料流或惡意資料流)以及非連線導向的資料流(connection-less flow),而不是儲存所有的資料流,可以來降低習知僅採用完全比對的查表方式所需要的記憶體空間,因此可以有效降低整體系統成本與額外的負擔。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的申請專利範圍內。
10:輸入資料流 12:轉送表 14:5元組 16:輸出資料流 18:資料流分析模組 101,103:資料流方向 20:位元陣列 30:5元組 40:輸入資料流 42:轉送表 44:資料流表 45:資料流過濾器 46:輸出資料流 48:資料流分析模組 401~413:資料流方向 400:記憶體 S501~S517:不完全比對的資料流處理流程 S601~S607:處理資料流第一個封包的流程 S701~S705:失真資料流的處理流程 S801~S809:資料流處理流程 S901~S907:資料流處理流程
圖1顯示網路交換機內處理資料流的習知技術示意圖;
圖2顯示為布隆過濾器實施範例示意圖;
圖3顯示採用平行k個雜湊表的布隆過濾器範例示意圖;
圖4顯示採用資料流過濾器的資料流處理系統的架構實施例圖;
圖5顯示採用資料流過濾器的不完全比對的資料流處理方法的實施例流程圖;
圖6顯示處理資料流第一個封包的實施例流程圖;
圖7顯示在資料流過濾器中失真的資料流的處理方法實施例流程;
圖8顯示資料流處理方法中資料流分析模組運作的實施例之一流程圖;以及
圖9顯示資料流處理方法中資料流分析模組運作的實施例之二流程圖。
40:輸入資料流
42:轉送表
44:資料流表
45:布隆過濾器
46:輸出資料流
48:資料流分析模組
401~413:資料流方向

Claims (10)

  1. 一種不完全比對的資料流處理方法,應用於一網路裝置,包括: 接收一輸入資料流,並解析該輸入資料流; 根據解析該輸入資料流的結果,查詢一資料流表,以判斷該輸入資料流是否符合該資料流表中任一資料流條目; 根據解析該輸入資料流的結果,查詢一資料流過濾器,以判斷該輸入資料流是否符合該資料流過濾器中任一過濾條件; 其中,根據查詢該資料流表以及該資料流過濾器的結果,執行以下步驟之一: 當該輸入資料流符合該資料流表中任一資料流條目,即套用一對應的處理策略; 當該輸入資料流不符合該資料流表中任一資料流條目,再查詢該資料流過濾器,判斷該輸入資料流是否符合其中任一過濾條件; 當該輸入資料流符合該資料流過濾器中任一過濾條件,表示該輸入資料流為一個已經存在且已經傳輸超過多個封包的資料流,即依照該網路裝置設定的流程執行一動作;以及 當該輸入資料流不符合該資料流過濾器中任一過濾條件,將該輸入資料流導向一資料流分析模組處理該輸入資料流。
  2. 如請求項1所述的不完全比對的資料流處理方法,其中該資料流表適用所有型態的資料流,當該輸入資料流符合該資料流表中任一資料流條目,執行以下處理策略之一: 設定該輸入資料流為高優先順序,並轉發該輸入資料流至一目的地傳輸埠; 丟棄該輸入資料流;以及 將該輸入資料流複製到該資料流分析模組,再轉發該輸入資料流至該目的地傳輸埠。
  3. 如請求項2所述的不完全比對的資料流處理方法,其中該資料流表中記載資料流的標頭中的5元組數據,包括一目的地網路地址、一來源網路地址、一目的地第4層埠口、一來源第4層埠口與一通信協議,以及記載符合各筆資料流條目的處理策略。
  4. 如請求項1所述的不完全比對的資料流處理方法,其中該資料流過濾器以一布隆過濾器實現一個不完全比對的查表,並用於查詢連線導向的資料流。
  5. 如請求項4所述的不完全比對的資料流處理方法,其中該布隆過濾器將該輸入資料流經k次雜湊演算後得出雜湊值,判斷是否對應該布隆過濾器中k個1位元條目。
  6. 如請求項5所述的不完全比對的資料流處理方法,其中該布隆過濾器針對該輸入資料流的5元組進行k次雜湊演算,得出k個雜湊值。
  7. 如請求項1 至6中任一項所述的不完全比對的資料流處理方法,其中該資料流分析模組用以對該輸入資料流的封包執行分析與分類,還識別該輸入資料流所屬的應用程式類別。
  8. 如請求項7所述的不完全比對的資料流處理方法,其中,當接收的該輸入資料流為連線導向資料流的一第一個封包,經查詢該資料流表後判斷沒有符合該資料流表中任一資料流條目,即將該第一個封包導向至該資料流分析模組進行分析、分類與識別其所屬的應用程式類別,再依照該網路裝置設定的流程,依照該第一個封包的標頭記載之目的地資訊轉發該第一個封包。
  9. 如請求項7所述的不完全比對的資料流處理方法,其中,當判斷該輸入資料流在該資料流過濾器中產生失真,該資料流分析模組即預先將該輸入資料流置入該資料流表,並依照該輸入資料流所屬的應用程式類別設定一對應的處理策略。
  10. 一種資料流處理系統,設於一網路裝置中,包括: 一記憶體,其中設有一資料流表與一資料流過濾器;以及 一資料流分析模組,對一輸入資料流的封包執行分析與分類,還識別該輸入資料流所屬的應用程式類別; 其中該資料流處理系統執行一不完全比對的資料流處理方法,包括: 接收該輸入資料流,並解析該輸入資料流; 根據解析該輸入資料流的結果,查詢該資料流表,以判斷該輸入資料流是否符合該資料流表中任一資料流條目; 根據解析該輸入資料流的結果,查詢該資料流過濾器,以判斷該輸入資料流是否符合該資料流過濾器中任一過濾條件; 其中,根據查詢該資料流表以及該資料流過濾器的結果,執行以下步驟之一: 當該輸入資料流符合該資料流表中任一資料流條目,即套用一對應的處理策略; 當該輸入資料流不符合該資料流表中任一資料流條目,再查詢該資料流過濾器,判斷該輸入資料流是否符合其中任一過濾條件; 當該輸入資料流符合該資料流過濾器中任一過濾條件,表示該輸入資料流為一個已經存在且已經傳輸超過多個封包的資料流,即依照該網路裝置設定的流程執行一動作;以及 當該輸入資料流不符合該資料流過濾器中任一過濾條件,將該輸入資料流導向該資料流分析模組處理該輸入資料流。
TW110124339A 2021-07-02 2021-07-02 不完全比對的資料流處理方法與系統 TWI757207B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110124339A TWI757207B (zh) 2021-07-02 2021-07-02 不完全比對的資料流處理方法與系統
US17/573,187 US11765088B2 (en) 2021-07-02 2022-01-11 Method and system for processing data flow with incomplete comparison process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110124339A TWI757207B (zh) 2021-07-02 2021-07-02 不完全比對的資料流處理方法與系統

Publications (2)

Publication Number Publication Date
TWI757207B true TWI757207B (zh) 2022-03-01
TW202304176A TW202304176A (zh) 2023-01-16

Family

ID=81710573

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110124339A TWI757207B (zh) 2021-07-02 2021-07-02 不完全比對的資料流處理方法與系統

Country Status (2)

Country Link
US (1) US11765088B2 (zh)
TW (1) TWI757207B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230224250A1 (en) * 2022-01-12 2023-07-13 Vmware, Inc. Probabilistic filters for use in network forwarding and services

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702588A (zh) * 2013-12-04 2015-06-10 联发科技股份有限公司 解析器、分组处理装置以及相关方法
TWI638554B (zh) * 2014-11-13 2018-10-11 美商凱為公司 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984180B2 (en) * 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US8477611B2 (en) * 2010-03-03 2013-07-02 Ewha University Industry Collaboration Foundation Method and apparatus for packet classification using bloom filter
US9047417B2 (en) * 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US20170302577A1 (en) * 2015-04-30 2017-10-19 Hewlett Packard Enterprise Development Lp Forwarding port assignment for data packet
GB2576323B (en) * 2018-08-13 2021-01-06 Metaswitch Networks Ltd Programmable packet data processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702588A (zh) * 2013-12-04 2015-06-10 联发科技股份有限公司 解析器、分组处理装置以及相关方法
TWI638554B (zh) * 2014-11-13 2018-10-11 美商凱為公司 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法

Also Published As

Publication number Publication date
TW202304176A (zh) 2023-01-16
US11765088B2 (en) 2023-09-19
US20230006930A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
US7367052B1 (en) Access list key compression
US6917946B2 (en) Method and system for partitioning filter rules for multi-search enforcement
US9871728B2 (en) Exact match hash lookup databases in network switch devices
US20200084141A1 (en) Methods and systems for network security universal control point
JP5567641B2 (ja) 仮想ルータ機能を提供する方法
US7738454B1 (en) Methods and apparatus related to packet classification based on range values
US7869411B2 (en) Compact packet operation device and method
US8239341B2 (en) Method and apparatus for pattern matching
WO2011060732A1 (zh) 报文检测方法及装置
US20110149793A1 (en) Traffic capture apparatus and traffic analysis apparatus, system and method
US7913294B1 (en) Network protocol processing for filtering packets
US7974209B1 (en) Packet processing with re-insertion into network interface circuitry
WO2016206511A1 (zh) 一种实现nat的方法和装置
TWI757207B (zh) 不完全比對的資料流處理方法與系統
US7177313B2 (en) Method and system for converting ranges into overlapping prefixes for a longest prefix match
WO2008119282A1 (fr) Procédé permettant d'acheminer une consultation et système de réacheminement
JP4263718B2 (ja) 通信処理装置及び通信処理方法
US9742702B1 (en) End-to-end cache for network elements
JP3711965B2 (ja) Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体
JP2013070325A (ja) 通信システム、通信装置、サーバ、通信方法
US8806059B1 (en) Rule tree for network device
CN115604203A (zh) 不完全比对的数据流处理方法与***
US10205658B1 (en) Reducing size of policy databases using bidirectional rules
KR100770643B1 (ko) Tcam을 이용한 고성능 패킷 분류 방법 및 그 장치
JP4729389B2 (ja) パターン照合装置、パターン照合方法、パターン照合プログラム及び記録媒体