TWI593256B - 用於靈活封包分類的方法和系統 - Google Patents
用於靈活封包分類的方法和系統 Download PDFInfo
- Publication number
- TWI593256B TWI593256B TW104100216A TW104100216A TWI593256B TW I593256 B TWI593256 B TW I593256B TW 104100216 A TW104100216 A TW 104100216A TW 104100216 A TW104100216 A TW 104100216A TW I593256 B TWI593256 B TW I593256B
- Authority
- TW
- Taiwan
- Prior art keywords
- parsing
- value
- packet
- type value
- network packet
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本申請涉及同時遞交的名稱為“Methods and Systems for Single Instruction Multiple Data Programmable Packet Parsers”、代理人案卷號CVM-010US;以及名稱為“Floating Mask Generation for Network Packet Flow”、代理人案卷號CVM-012US的美國專利申請。兩個申請的整體內容均通過引用方式併入於此。
本公開總體上涉及電腦網路,並且具體地涉及用於網路封包的靈活分類的方法和系統。
諸如電腦之類的許多電子設備經由網路封包進行通信。網路封包通常從源被發送到目的地。在這段旅程期間,在到達最終的接收者(即目的地)之前,封包可以經過一個或多個中間接收者。不同類型的接收者包括網路處理器、網路交換機和網路介面。封包的每個接收者可能需要解析封包,即,分析封包中的資料以確定其特性。網路封包的特性可以包括其源、目的地或者類型。接收者利用解析機制以執行解析。作為解析的一部分,接收者可以將封包中的位元組拆分成其在那些協議內的、不同的網路通訊協定層和欄位,以使得能夠進行進一步處理。
網路通訊協定的數量和複雜性在不斷增長。先前的解析技術缺乏處理這一增長所要求的靈活性和速度。為了處理新的或更新的組網協議,例如,這些技術可能要求更新它們的組網硬體或軟體。否
則,系統可能無法服務新的或更新的協定,或者可能在比期望速度更低的速度下服務新的或更新的協定。
一些實施例提供網路封包分類方法,其包括:接收從解析網路封包中的欄位中匯出的解析資訊;比較解析資訊與表中資訊以匯出比較結果,其中表包括用於映射欄位與一個或多個比較結果的資訊;基於比較結果,匯出針對網路封包型值;基於類型值,對封包分類;以及基於分類,處理封包。
根據一些實施例,方法進一步包括匯出或接收針對網路封包的初始類型值,其中匯出類型值包括基於比較結果修改初始類型值。根據一些實施例,初始類型值取決於通過其接收網路封包的網路路徑。根據一些實施例,初始類型值包括確定如何解析網路封包的解析模式。根據一些實施例,網路封包包括多個欄位,並且其中解析模式確定多個欄位中的一個或多個欄位應當被解析。根據一些實施例,匯出類型值包括修改解析模式。根據一些實施例,網路路徑包括通過其接收網路封包的介面或通道。
根據一些實施例,表被存儲在內容可定址記憶體中。根據一些實施例,欄位是第一欄位,解析資訊是第一解析資訊,表是一個或多個表中的一個表,比較結果是第一比較結果,以及類型值是第一類型值,方法進一步包括:接收從解析網路封包中的第二欄位中匯出的第二解析資訊;比較第二解析資訊與一個或多個表中的資訊以匯出第二比較結果;基於第二比較結果,修改第一類型值以匯出針對網路封包的第二類型值;以及基於第二類型值,對封包進行分類。根據一些實施例,修改第一類型值包括基於第二比較結果,執行從包括以下操作的組中選擇的操作:維持第一類型值不變,使第一類型值加上存儲在一個或多個表中的increase_value,從第一類型值減去存儲在一個或多個表中的decrease_value,以及執行在第一類型值和存儲在一個或多個表中的XOR_value之間的異或(XOR)操
作。
一些實施例提供網路封包分類系統,包括:解析查找階段模組,被配置為匯出針對網路封包的類型值;以及最終類型模組,被配置為基於類型值匯出針對封包的分類值並且將分類值傳送到目標,其中目標被配置為基於分類值處理封包,其中解析查找階段模組進一步被配置為:接收從解析網路封包中的欄位中匯出的解析資訊;比較解析資訊與表中資訊以匯出比較結果,其中表包括用於映射欄位與一個或多個比較結果的資訊;以及基於比較結果,匯出針對網路封包的類型值。
根據一些實施例,解析查找階段模組進一步被配置為匯出或接收針對網路封包的初始類型值,其中匯出類型值包括基於比較結果修改初始類型值。根據一些實施例,基於通過其接收網路封包的網路路徑,匯出初始類型值。根據一些實施例,欄位是第一欄位,解析資訊是第一解析資訊,表是一個或多個表中的一個表,比較結果是第一比較結果,以及類型值是第一類型值,以及其中解析查找階段模組進一步被配置為:解析網路封包中的第二欄位以匯出第二解析資訊;比較第二解析資訊與一個或多個表中的資訊以匯出第二比較結果;以及基於第二比較結果,修改第一類型值以匯出針對網路封包的第二類型值,以及其中最終類型模組被配置為基於第二類型值匯出針對封包的分類值。
一些實施例提供存儲程式的非瞬態電腦可讀介質,該程式在由一個或多個處理器執行時使得一個或多個處理器執行網路封包分類方法。
100‧‧‧封包解析系統
110‧‧‧封包源
120‧‧‧封包解析器
130‧‧‧封包目標
200‧‧‧框圖
210‧‧‧封包源
220‧‧‧控制模組
230‧‧‧初始類型模組
240‧‧‧解析查找階段
242‧‧‧解析階段模組
243‧‧‧CAM
244‧‧‧匹配結果模組
245‧‧‧類型生成器模組
246‧‧‧解析模式生成器模組
250‧‧‧出口生成器模組
260‧‧‧封包目標
240-1,204-2,240-N‧‧‧解析查找階段
300‧‧‧說明圖
301,302,303,304,306,307‧‧‧塊
308,309,311,352,354,355,356‧‧‧塊
附圖不必要是按比例的或窮舉式的。代替地,通常將重點放在圖示本文中描述的實施例的原理上。併入在本說明書中並且組成其一部分的附圖圖示與本公開一致的若干實施例。與描述一起,附圖用於解釋本公開的原理。
在附圖中:第一圖是根據一些實施例的封包解析系統的框圖。
第二圖示出圖示根據一些實施例的出口生成機制和方法的框圖。
第三圖示出基於實施例用於生成針對封包的不同類型值的說明圖。
以下詳細描述參照附圖。只要有可能,在附圖或描述中使用相同或相似的附圖標記以指代相同或相似的部分。同樣地,相似地命名的元件可以執行相似的功能,並且可以相似地設計,除非另外指定。闡述眾多細節以提供對所描述實施例的理解。可以在沒有這些細節的情況下實踐實施例。在其它實例中,熟知的方法、過程和部件並未詳細描述,以避免使所描述的實施例模糊不清。
雖然本文中描述若干示例性實施例和特徵,修改、改編和其它實施方式可以是可能的,而不脫離本發明的精神和範圍。據此,除非另外明確說明,描述涉及一個或多個實施例,並且不應當被解釋為作為整體限制本發明。無論是否明確參照特徵與“一個或多個”、“一些”或“各種”實施例相關的陳述,都是如此。替代地,本發明的適當範圍由所附申請專利範圍限定。進一步地,陳述特徵可以存在指示該特徵存在於一個或多個實施例中。
在本公開中,術語“包含”、“包括”、“含有”和“具有”在集或系統之後使用時意指開放式包括,並且不排除其它未枚舉的構件被添加到集或系統。而且,如在本公開中使用的,集的子集可以包括該集的一個或者多於一個(包括所有)的構件。
各種實施例利用使得能夠高效處理各種網路封包類型的新穎專利解析機制。在各種實施例中,封包解析系統接收網路封包,解析那些封包,並且將解析結果遞送到一個或多個接收者(本文中還稱為目標)。除非另外說明,術語網路封包、封包或封包資料可互
換使用,以指示根據一個或多個網路通訊協定傳送的網路封包。第一圖是根據一些實施例的封包解析系統100的框圖。封包解析系統100包括封包源110、封包解析器120和封包130。
封包源110將一個或多個封包發送到解析器120。封包源110可以包括例如一個或多個封包傳送器,諸如實現系統100的一個或多個半導體系統、乙太網MAC、網路交換機、網路處理器、或者實現系統100的一個或多個電腦的網路介面。
解析器120是被配置為對接收封包進行解析並且從那些封包提取一些解析結果的解析系統。在一些實施例中,解析結果包括與根據其建立封包的那些協議內的一個或多個協定層和欄位有關的資訊。在一些實施例中,解析器120包括多個解析簇。每個解析簇可以包括被配置為對接收封包進行解析的一個或多個解析引擎。
例如,解析結果可以包括封包的協議的類型、是否該協議的一個或多個欄位或層存在於封包中、封包的目的地、或者層或欄位中存在的資訊子集。在一些實施例中,除了上述解析結果之外,解析器還匯出諸如類型值或遮罩標籤之類的一些其它資訊。
在各種實施例中,封包目標130包括從解析器120接收解析結果並且在它們的操作中使用那些結果的一個或多個系統。封包目標130還可以連同解析結果一起接收部分或整個解析封包本身。封包目標130可以包括例如系統100被安裝在其上的一個或多個電腦的部分、乙太網MAC、DMA、網路交換機、網路處理器、或者網路介面。
在各種實施例中,到達諸如網路處理器、網路交換機或網路介面之類的接收者的封包需要被分類到眾多可能類別之一中。在各種實施例中,類別可以對應於網際網路協定差異化服務(DIFFSRV)類別、乙太網802.1 VLAN優先順序類別或者一些其它流量類別。
為了分類,一些實施例生成所有封包資料的“寬向量”,稱為N群組(N-tupple)(例如,3群組、5群組或7群組),然後可以針對
內容可定址記憶體(CAM)匹配N群組。CAM中對應於N群組的條目編號可以指示針對封包的類別。一些其它實施例使用指定硬體匹配器,其尋找封包資料中的指定欄位和值,並且根據那些欄位和值處理封包。例如,硬體可以提取TCP目的地埠編號,並且可以具有寄存器,寄存器指示指定TCP目的地埠應當導致針對封包的例外處理。
另一方面,通過使用生成針對封包的出口資訊的出口生成機制,一些其它實施例對封包進行分類。出口資訊可以對封包進行類別,並且便於其由接收者的進一步處理。在各種實施例中,出口資訊包括標籤值或組編號中的一個或多個。這樣的出口資訊可具有比上面討論的寬向量更小的大小。在一些實施例中,在確定封包的流動中使用出口資訊。封包的流動可以指示,當它們被發送到接收者或者由接收者進一步處理時,哪些封包應當保持在相同佇列中或者是否它們必須保持井然有序。在一些實施例中,出口資訊確定封包資料應當如何被處理。一些出口資訊例如可以指示,不需要解析封包資料的一個或多個區段。一些出口資訊可以確定,封包應當由一個或多個核的指定集處理、或者被傳送到指定埠。
在一些實施例中,在封包正被解析的同時,出口生成機制生成或更新針對每個封包的出口值。出口值可以在開始時被初始化,並且然後在解析的一個或多個階段進行更新。解析的每個階段可以涉及解析封包的一個或多個子區段,諸如解析如由其協議定義的封包的多個層中的一個層。為了生成或更新出口值,出口生成機制可以利用小尺寸的CAM。在不同的解析階段,當解析不同的封包區段時,機制可以比較針對該區段的解析結果與CAM中一個或多個有關準則。基於是否找到匹配,然後機制生成針對封包的出口值,或者更新直到該階段匯出的出口值。這樣的機制常常要求比寬向量機制小得多的區域。
第二圖示出圖示根據一些實施例的出口生成機制和方法的框
圖200。圖200包括封包源210、控制模組220、初始類型模組230、一個或多個解析查找階段240(在第二圖中標記為240-1至240-N,其中N是大於或等於1的整數)、出口生成器模組250和封包目標260。
封包源210可以被配置為將封包傳送到解析器或解析查找階段240。如下面進一步描述的,控制模組220被配置為程式設計諸如CAM之類的由出口生成器機制利用的各種表。初始類型模組230可以被配置為給正被解析的封包提供初始類型值。在各種實施例中,類型值是一種類型的出口值。在一些實施例中,類型值用作到表中的索引,以確定其它出口值。
在一些實施例中,封包的類型值反映封包資料的一些方面。例如,如在第三圖中進一步圖示的,類型值為1可以指示針對封包的到達埠是ILK,CustomHdr的值不是1x01,以及VLAN的值是22。另一方面,類型值為11可以指示到達埠是XAUI1,CustomHdr的值不等於1x01,VLAN的值不是22,以及IPv4-in-IPv4的值是0。在各種實施例中,有限數量的類型值映射到由系統使用的不同類別。在一個實施例中,類型值是8位寬的編號。
解析查找階段240-1至240-N可以被配置為使用初始類型值和在封包的一個或多個解析階段匯出的解析結果生成針對封包的類型值。出口生成器模組250被配置為接收由解析查找階段240生成的一個或多個類型值。最終類型模組250可以單獨從一個或多個解析查找階段240接收類型值,或者接收由解析查找階段240的組合產生的最終類型值。基於接收資料,出口生成器模組250可以生成出口資訊並且將它們傳送到目標260。
初始類型模組230可以初始化類型值。具體地,模組230可以將類型值初始化成固定編號,而不考慮封包。備選地,模組230可以基於關於封包的一些初步資訊初始化類型值。在一些實施例中,模組230可以從封包源210接收初步資訊,並且據此選擇初始類
型。這種初步資訊可以包括例如在其上封包到達的介面和通道。模組230還可以包括將不同初步資訊映射到不同初始類型值的表。從而模組230可以將初始資訊映射到初始類型值,並且將該初始類型值傳送到一個或多個解析查找階段240-i。
在一些實施例中,模組230還可以生成解析模式資訊,並且將該資訊傳送到一個或多個解析查找階段240-i。解析模式資訊還可以包括在類型值中或者從類型值匯出。解析模式資訊可以指示,應當跳過或修改解析的一個或多個階段。基於解析模式資訊,出口生成機制可以不執行解析的一個或多個階段,並且從而跳過對應解析查找階段。進一步地,解析查找階段240的一個或多個可以基於解析模式資訊修改它們的解析處理。解析查找階段還可以修改解析模式資訊,並且將該更新解析模式傳送到一個或多個其它解析查找階段。
解析模式資訊可以是例如指示是否在階段之後解析應當繼續進行的二進位值。在一個示例中,解析模式資訊的值可以指示當在該解析模式時什麼網路通訊協定將被解析。一些實施例不利用解析模式資訊,並且代替地獨立於由解析查找階段生成的類型值來解析分組。
在一些實施例中,解析查找階段240包括解析階段模組242、CAM 243、匹配結果模組244、類型生成器模組245和解析模式生成器模組246。在各種實施例中,解析查找階段240被包括在解析器中。在一些實施例中,解析器包括一個或多個引擎,每個引擎被配置為執行針對封包的解析的不同階段。每個解析查找階段240的解析階段模組242可以是如由引擎執行的對應階段。備選地,每個解析查找階段240的解析階段242可以是從解析器接收對應解析階段的解析結果的模組。
在各種實施例中,可能通過考慮解析模式資訊,解析階段242對封包進行解析。例如,解析階段可以作為第一項解析封包中的源
乙太網位址。解析階段可以確定源乙太網位址的位置,並且提取該欄位的內容。解析階段242可以將解析結果(例如,諸如源乙太網位址之類的位置或欄位內容)傳送到匹配結果模組244。匹配結果模組244還可以從初始類型模組230或者另一解析查找階段接收類型值或解析模式資訊。
匹配結果模組244可以比較解析結果與CAM 243中的條目。在一些實施例中,每個CAM條目包含三進制值,該三進制值包括解析欄位的可能值、可能的開始類型編號、以及針對該欄位值和開始類型編號的對應類型改變值。
在一些實施例中,可以針對階段指定每個CAM條目。在其它實施例中,可以在多個階段中使用單個CAM條目;在這樣的情況下,CAM中另外的欄位或者類型值可以指示哪個階段正被處理。各種其它實施例使用CAM條目、類型值和類型改變值的其它組合。
如果條目匹配解析結果中的欄位資料,則CAM可以返回對應改變資訊。匹配結果模組244可以將類型改變值傳送到類型生成器模組245和解析模式生成器模組246中的一個或兩者。類型生成器模組245和解析模式生成器模組246還可以接收來自初始類型模組230的類型值或解析模式資訊的初始值、或者來自匹配結果模組244或另一解析查找階段240的它們的當前值。在一些實施例中,在解析的每一個階段處,封包的類型值反映直到該點的解析結果的一些方面。兩個或更多的解析查找階段240可以依次更新類型值,使得每個解析查找階段240更新類型值並且將類型值傳遞給序列中的下一個解析查找階段。這種更新或傳遞還可以依賴於解析模式,使得序列中的一些解析查找階段可以基於解析模式資訊被跳過或修改。在一些實施例中,兩個或更多解析查找階段並行地執行解析;它們可以獨立於其它解析查找階段來更新類型值或解析模式資訊。
基於接收的類型改變值、解析模式資訊和類型值中的一個或多
個,類型生成器模組245可以生成更新類型值。下面的等式(1)至(6)列出了一些說明性函數,類型生成器245可以使用這些說明性函數以基於接收類型值(本文中稱為style_in)和接收類型改變值(本文中稱為CAM result),生成更新類型值(本文中稱為style_out):
style_out=style_in 等式(1)
style_out=style_in+CAM result 等式(2)
style_out=style_in XOR CAM result 等式(3)
style_out=CAM result 等式(4)
style_out=style_in+1 等式(5)
style_out=style_in-1 等式(6)
分別根據說明性等式(1)至(6),在不同情況下類型生成器模組245可以維持類型值不變;使它加上類型改變值;通過執行與類型改變值的異或(XOR)操作更新類型值;使它更新為類型改變值;使它遞增一;或者使它遞減一。
在一些實施例中,解析模式生成器模組246還更新解析模式資訊。在一些說明性示例中,解析模式生成器模組246可以將解析模式設置成類型改變值中的指定值。解析模式生成器模組246還可以設置或清除解析模式資訊,以啟用或禁用其它解析查找階段中另外的解析特徵。在完成針對封包的所有相關解析查找階段之後,一個或多個生成的類型值被傳送到出口生成器模組250。備選地,針對封包的所有相關解析查找階段的總結果可以是傳送到出口生成器模組250的一個最終類型值。針對封包的相關解析查找階段可以包括針對封包基於解析模式資訊執行的那些階段。基於該輸入,出口生成器模組250可以生成與封包的分類有關的出口資訊,並且將它們傳送到目標260。
在一些實施例中,出口生成器模組250將最終類型轉換成出口類型值。出口類型值可以等於最終類型,或者可以是最終類型值的
壓縮版本。出口生成器模組250可以進一步包括接收出口類型值並且生成諸如組資訊之類的另外的出口資訊的結構。在一些實施例中,出口生成器模組250通過查找針對其索引是出口類型值的表而生成另外的出口資訊。
目標260可以使用出口資訊以確定如何進一步處理封包。基於這些值,例如,目標交換機可以確定它應當將封包轉發到的埠,或者網路介面卡(NIC)可以確定它應當向封包分配什麼緩衝器。
從而在一個或多個階段中並且基於對封包的不同部分進行解析的結果,出口生成機制可以生成針對封包的類型值。第三圖示出基於實施例用於生成針對封包的不同類型值的說明圖300。圖300包括初始階段(階段0),緊跟著是三個解析查找階段1至3。進一步地,圖300包括塊301至311以及351至356,它們描繪通過其系統可以針對封包匯出在塊303、306、309、311、353和356中列出的六個最終類型值之一的不同步驟的示例。
階段0至3圖示初始化或更新類型值的不同階段。具體地,在階段0處,基於針對封包的到達埠的種類,初始類型模組生成初始類型值。在階段1處,如果CustomHdr(從封包提取的欄位值)具有為1x01的值,則最終類型值被設置成0。在階段2處,如果解析VLAN值不是22,則類型值遞增1。在階段3處,如果IPv4-IPv4的值是1,則最終類型值被設置成30。
塊301至311以及351至356描繪將這些階段應用於具有不同解析結果的不同封包。在塊301處,封包在到達埠值為ILK的情況下到達。基於該埠值,在塊301中,系統向封包指派為1的初始類型值。在匹配塊302中,對1x01值檢查針對CustomHDR的解析結果。如果找到匹配,則封包的最終類型被設置成0,如在塊303中。備選地,如果未找到匹配,類型值保持不變(在這種情況下,塊304的類型值1),並且處理繼續進行到階段2。在階段2處,在匹配塊305中,比較針對VLAN的解析結果與值22。如果VLAN值
是22,則類型維持不變,並且作為最終類型被輸出(在這種情況下,塊306的類型值1)。另一方面,如果VLAN值不是22,類型遞增1(在這種情況下,為塊307的類型值2),並且處理繼續進行到階段3。在階段3處,在匹配塊308中,檢查IPv4-in-IPv4值。如果它是0,類型不變並且作為最終類型被輸出(在這種情況下,塊309的為2的最終類型值)。另一方面,如果IPv4-in-IPv4值是1,輸出為30的最終類型值,如在塊311中。
另一方面,在塊351處,封包在到達埠值為XAUI1的情況下到達。基於該埠值,在塊351中,系統向封包指派為10的初始類型值。在階段2處,在匹配塊352中,比較針對VLAN的解析結果與值22。如果VLAN值是22,則類型維持不變,並且作為最終類型被輸出(在這種情況下,塊353的類型值10)。另一方面,如果VLAN值不是22,類型遞增1(在這種情況下,為塊354的類型值11),並且處理繼續進行到階段3。在階段3處,在匹配塊355中,檢查IPv4-in-IPv4值。如果它是0,類型不變並且作為最終類型被輸出(在這種情況下,塊356的為11的最終類型值)。另一方面,如果IPv4-in-IPv4值是1,輸出為30的最終類型值,如在塊311中。
上面討論的特徵和結構使得與它們的成本和尺寸相比具有高效率的解析器成為可能。各種實施例實現其導致固定的或確定的封包解析次數的機制。也就是,一旦封包被分配到引擎,可以預測每個指令什麼時候被應用於每個封包。而且,一些實施例使得具有超過100兆封包/秒的解析速率的解析器成為可能。各種實施例實現這樣的速度,同時要求相對低的尺寸、成本或功率。而且,由於它們的架構,通過使用新的微碼程式並且在不更新硬體的情況下,各種實施例可以被更新以適於新的或演進的封包格式。
在各種實施例中,在本公開中公開的一個或多個模組經由以下實現:用於執行對應模組的功能的一個或多個軟體程式或者電腦處理器執行的那些軟體程式。在一些實施例中,一個或多個公開模組
經由執行固件的一個或多個硬體模組來實現,以用於執行對應模組的功能。在各種實施例中,一個或多個公開模組包括存儲介質,以用於存儲由模組使用的或者由模組執行的軟體或固件程式使用的資料。在各種實施例中,一個或多個公開模組或公開存儲介質在公開系統的內部或外部。在一些實施例中,所公開的用於存儲資訊的存儲介質包括諸如電腦存儲之類的非瞬態電腦可讀介質,例如硬碟或閃速記憶體、或者由處理器或微處理器可讀的其它類型的記憶體。進一步地,在各種實施例中,一個或多個存儲介質是非瞬態電腦可讀介質,其存儲資訊或者由各種模組執行的或者實現本文中公開的各種方法或流程圖的軟體程式。
本發明的前述描述,連同其關聯的實施例,已經僅出於說明的目的被給出。它不是窮舉式的,並且不將本發明限於所公開的精確形式。本領域技術人員將從前述描述中理解,修改和變化根據上面的教導是可能的,或者可以從實踐本發明中獲得。例如,所描述的步驟不需要按照所討論的相同序列或者在相同的分離程度下執行。同樣地,如有必要,可以省略、重複或組合各種步驟,以實現相同或相似的目的。類似地,所描述的系統不需要必定包括實施例中描述的所有部分,並且還可以包括實施例中未描述的其它部分。據此,本發明不限於上面描述的實施例,而是代替地由所附申請專利範圍根據它們的等效物全範圍來限定。
100‧‧‧封包解析系統
110‧‧‧封包源
120‧‧‧封包解析器
130‧‧‧封包目標
Claims (20)
- 一種網路封包分類方法,包括:執行一解析查找階段以對一封包進行分類,其中執行所述解析查找階段之步驟包含:接收從解析網路封包中的欄位中匯出的解析資訊;比較所述解析資訊與表中資訊以匯出比較結果,其中所述表包括用於映射所述欄位與一個或多個比較結果的資訊;基於所述比較結果,匯出針對所述網路封包的類型值;如果所匯出之所述類型值不足以對所述封包進行分類,執行至少一接續的解析查找階段,直到獲得可對所述封包進行分類的一最終類型值;基於至少所述最終類型值,對所述封包進行分類;以及基於所述分類,處理所述封包。
- 根據申請專利範圍第1項所述的網路封包分類方法,進一步包括匯出或接收針對所述網路封包的初始類型值,其中匯出所述類型值包括基於所述比較結果修改所述初始類型值。
- 根據申請專利範圍第2項所述的網路封包分類方法,其中所述初始類型值取決於通過其接收所述網路封包的網路路徑。
- 根據申請專利範圍第2項所述的網路封包分類方法,其中所述初始類型值包括確定如何解析所述網路封包的解析模式。
- 根據申請專利範圍第4項所述的網路封包分類方法,其中所述網路封包包括多個欄位,並且其中所述解析模式確定所述多個欄位中的一個或多個欄位應當被解析。
- 根據申請專利範圍第4項所述的網路封包分類方法,其中匯出所述類型值包括修改所述解析模式。
- 根據申請專利範圍第3項所述的網路封包分類方法,其中所述網路路徑包括通過其接收所述網路封包的介面或通道。
- 根據申請專利範圍第1項所述的網路封包分類方法,其中 所述表被存儲在內容可定址記憶體中。
- 根據申請專利範圍第1項所述的網路封包分類方法,其中所述欄位是第一欄位,所述解析資訊是第一解析資訊,所述表是一個或多個表中的一個表,所述比較結果是第一比較結果,以及所述類型值是第一類型值,所述方法進一步包括:接收從解析所述網路封包中的第二欄位中匯出的第二解析資訊;比較所述第二解析資訊與所述一個或多個表中的資訊以匯出第二比較結果;基於所述第二比較結果,修改所述第一類型值以匯出針對所述網路封包的第二類型值;以及基於所述第二類型值,對所述封包進行分類。
- 根據申請專利範圍第9項所述的網路封包分類方法,其中修改所述第一類型值包括基於所述第二比較結果,執行從包括以下操作的組中選擇的操作:維持所述第一類型值不變,使所述第一類型值加上存儲在所述一個或多個表中的increase_value,從所述第一類型值減去存儲在所述一個或多個表中的decrease_value,以及執行在所述第一類型值和存儲在所述一個或多個表中的XOR_value之間的異或(XOR)操作。
- 一種網路封包分類系統,包括:解析查找階段模組,被配置為匯出針對網路封包的類型值;以及最終類型模組,被配置為基於所述類型值匯出針對所述封包的分類值,並且將所述分類值傳送到目標,其中所述目標被配置為基於所述分類值處理所述封包,其中所述解析查找階段模組進一步被配置為:執行一解析查找階段以匯出一最終類型值,其中執行所述解析查找階段之步驟包含: 接收從解析網路封包中的欄位中匯出的解析資訊;比較所述解析資訊與表中資訊以匯出比較結果,其中所述表包括用於映射所述欄位與一個或多個比較結果的資訊;基於所述比較結果,匯出針對所述網路封包的所述類型值;及如果所匯出之所述類型值不足以匯出所述分類值,執行至少一接續的解析查找階段,直到獲得足以匯出所述分類值的所述最終類型值。
- 根據申請專利範圍第11項所述的網路封包分類系統,其中所述解析查找階段模組進一步被配置為匯出或接收針對所述網路封包的初始類型值,其中匯出所述類型值包括基於所述比較結果修改所述初始類型值。
- 根據申請專利範圍第12項所述的網路封包分類系統,其中基於通過其接收所述網路封包的網路路徑,匯出所述初始類型值。
- 根據申請專利範圍第11項所述的網路封包分類系統,其中所述欄位是第一欄位,所述解析資訊是第一解析資訊,所述表是一個或多個表中的一個表,所述比較結果是第一比較結果,以及所述類型值是第一類型值,以及其中所述解析查找階段模組進一步被配置為:解析所述網路封包中的第二欄位以匯出第二解析資訊;比較所述第二解析資訊與所述一個或多個表中的資訊以匯出第二比較結果;以及基於所述第二比較結果,修改所述第一類型值以匯出針對所述網路封包的第二類型值,以及其中所述最終類型模組被配置為基於所述第二類型值匯出針對所述封包的所述分類值。
- 一種存儲程式的非瞬態電腦可讀介質,所述程式在由一個 或多個處理器執行時使得所述一個或多個處理器執行網路封包分類方法,所述方法包括:執行一解析查找階段以對一封包進行分類,其中執行所述解析查找階段之步驟包含:接收從解析網路封包中的欄位中匯出的解析資訊;比較所述解析資訊與表中資訊以匯出比較結果,其中所述表包括用於映射所述欄位與一個或多個比較結果的資訊;基於所述比較結果,匯出針對所述網路封包的類型值;如果所匯出之所述類型值不足以對所述封包進行分類,執行至少一接續的解析查找階段,直到獲得可對所述封包進行分類的一最終類型值;基於至少所述最終類型值,對所述封包進行分類;以及基於所述分類,處理所述封包。
- 根據申請專利範圍第15項所述的非瞬態電腦可讀介質,其中所述方法進一步包括匯出或接收針對所述網路封包的初始類型值,以及其中匯出所述類型值包括基於所述比較結果修改所述初始類型值。
- 根據申請專利範圍第16項所述的非瞬態電腦可讀介質,其中所述初始類型值取決於通過其接收所述網路封包的網路路徑。
- 根據申請專利範圍第16項所述的非瞬態電腦可讀介質,其中所述初始類型值包括確定如何解析所述網路封包的解析模式。
- 根據申請專利範圍第18項所述的非瞬態電腦可讀介質,其中所述網路封包包括多個欄位,並且其中所述解析模式確定所述多個欄位中的一個或多個欄位應當被解析。
- 根據申請專利範圍第18項所述的非瞬態電腦可讀介質,其中匯出所述類型值包括修改所述解析模式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/150,657 US20150195387A1 (en) | 2014-01-08 | 2014-01-08 | Methods and systems for flexible packet classification |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201537918A TW201537918A (zh) | 2015-10-01 |
TWI593256B true TWI593256B (zh) | 2017-07-21 |
Family
ID=52432937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104100216A TWI593256B (zh) | 2014-01-08 | 2015-01-06 | 用於靈活封包分類的方法和系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150195387A1 (zh) |
TW (1) | TWI593256B (zh) |
WO (1) | WO2015105781A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11196671B2 (en) * | 2015-10-27 | 2021-12-07 | Cisco Technology, Inc. | Layer 2 channel selection |
US10911579B1 (en) * | 2016-03-01 | 2021-02-02 | Amazon Technologies, Inc. | Generating programmatically defined fields of metadata for network packets |
TWI672023B (zh) * | 2018-12-28 | 2019-09-11 | 致茂電子股份有限公司 | 網路封包處理方法及其裝置 |
CN111385257B (zh) * | 2018-12-28 | 2022-03-15 | 致茂电子(苏州)有限公司 | 网络封包处理方法及其装置 |
US11070575B2 (en) * | 2019-03-06 | 2021-07-20 | Cisco Technology, Inc. | Verifying accuracy of ML pipelines using third party co-ordination |
TWI806623B (zh) * | 2022-05-24 | 2023-06-21 | 瑞昱半導體股份有限公司 | 封包轉送系統及封包轉送方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580408B2 (en) * | 2001-11-21 | 2009-08-25 | Alcatel Lucent | Configurable packet processor |
US7522516B1 (en) * | 2004-03-30 | 2009-04-21 | Extreme Networks, Inc. | Exception handling system for packet processing system |
US9001828B2 (en) * | 2011-03-21 | 2015-04-07 | Marvell World Trade Ltd. | Method and apparatus for pre-classifying packets |
US8718064B2 (en) * | 2011-12-22 | 2014-05-06 | Telefonaktiebolaget L M Ericsson (Publ) | Forwarding element for flexible and extensible flow processing software-defined networks |
-
2014
- 2014-01-08 US US14/150,657 patent/US20150195387A1/en not_active Abandoned
-
2015
- 2015-01-06 WO PCT/US2015/010279 patent/WO2015105781A1/en active Application Filing
- 2015-01-06 TW TW104100216A patent/TWI593256B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201537918A (zh) | 2015-10-01 |
WO2015105781A1 (en) | 2015-07-16 |
US20150195387A1 (en) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI593256B (zh) | 用於靈活封包分類的方法和系統 | |
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
US11792117B2 (en) | Packet processing method and apparatus | |
US11425058B2 (en) | Generation of descriptive data for packet fields | |
CN105794172B (zh) | 网络设备和用于在网络设备中处理报文的方法 | |
CN103825976B (zh) | 分布式系统架构中的nat处理方法及装置 | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US10333845B2 (en) | Forwarding data packets | |
US20190280975A1 (en) | Chained Longest Prefix Matching in Programmable Switch | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
US20180219773A1 (en) | Interconnection of overlay networks | |
US20030231631A1 (en) | Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics | |
US10666564B2 (en) | Increasing entropy across routing table segments | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
US10397116B1 (en) | Access control based on range-matching | |
US10348603B1 (en) | Adaptive forwarding tables | |
US9819587B1 (en) | Indirect destination determinations to forward tunneled network packets | |
US20200028779A1 (en) | Packet processing method and apparatus | |
CN105099918A (zh) | 一种数据查找匹配的方法和装置 | |
CN105991438A (zh) | 基于虚拟二层网络中数据包的处理方法和装置 | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
CN113411290A (zh) | 一种分组头解析方法及装置 | |
CN105187330B (zh) | 使用唯一分组标识符来标识分组结构的方法及网络交换机 | |
CN110035010A (zh) | 匹配域的匹配方法及相关装置 | |
CN105450527B (zh) | 处理报文、发送信息、接收信息的方法及装置 |