TW201603534A - 從封包內容形成散列輸入之方法及裝置 - Google Patents
從封包內容形成散列輸入之方法及裝置 Download PDFInfo
- Publication number
- TW201603534A TW201603534A TW104110832A TW104110832A TW201603534A TW 201603534 A TW201603534 A TW 201603534A TW 104110832 A TW104110832 A TW 104110832A TW 104110832 A TW104110832 A TW 104110832A TW 201603534 A TW201603534 A TW 201603534A
- Authority
- TW
- Taiwan
- Prior art keywords
- hash
- layer
- protocol
- field
- 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/12—Protocol engines
-
- 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
- H04L49/00—Packet switching elements
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用於從封包內容形成散列輸入之裝置的實施例係涉及一種用於形成散列輸入的可程式化之靈活解決方案,其允許硬體改變以及隨著將來定義更新的協定和在將來定義更新的協定時添加對於它們的支持。封包被拆分成個別層。每層被給予有助於識別該層是什麼的唯一的層類型編號。基於層類型,每層被擴展成通用格式。每層具有對該層通用的散列命令集。每個散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB。這些散列命令允許以可程式化方式擷取封包中的資訊。從封包的每個協定層擷取的欄位被級聯以形成散列層。位元向量指示哪些散列層被用來形成散列輸入。
Description
本發明與網路封包有關。更具體地,本發明與一種從封包內容形成散列輸入的方法及其裝置有關。
在乙太網交換機中,經常需要形成用於在交換機接收的每個傳入封包的唯一簽名。可以在等成本多路徑路由(ECMP)中使用該唯一簽名,其中可以沿著多個不同目的地路徑發送來自相同源的封包。為了形成這一唯一簽名,當前基於硬體的實現方式定義封包中的哪些固定欄位應當用作散列輸入。
用於從封包內容形成散列輸入的裝置的實施例涉及一種用於形成散列輸入的可程式化的靈活解決方案。這一解決方案允許基於不同要求的硬體改變,以及隨著將來定義更新的協定和在將來定義更新的協定時添加對於它們的支持。封包被拆分成個別層。每層被給予有助於識別該層是什麼的唯一的層類型編號。基於層類型,每層被擴展成通用格式。
每層具有該層通用的散列命令的集合。每個散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB。這些散列命令允許封包中的資訊以可程式化的方式被擷取。從封包的每個協定層擷取的欄位被級聯以形成散列層。位元向量指示哪些散列層用來形成散列輸入。
在一個方面中,提供一種實施解析器引擎的方法。該方法包括:識別封包的協定層;基於協定層中的每個協定層的識別將該協定層擴展成通用格式;以及從已擴展的協定層選擇內容。
在一些實施例中,封包的協定層中的每個協定層基於該協定層的唯一的層類型編號而被識別。
在一些實施例中,通用格式定義協定層能夠具有的所有欄位的超集合。
在一些實施例中,擴展協定層中的每個協定層包括:維持用於已擴展的協定層的位元向量,其中位元向量包括用於已擴展的協定層的每個位元組的每位元組的位元;對於每個有效欄位的每個位元組將位元標記為可用,其中每個有效欄位是在封包的協定層中存在的欄位;以及對於每個無效欄位的每個位元組將位元標記為不可用,其中每個無效欄位是在封包的協定層中不存在的欄位。
在一些實施例中,該方法也包括使用壓縮格式來表達已擴展的協定層。
在一些實施例中,該方法也包括將來自通用散列命令的集合的至少一個通用散列命令應用於已擴展的協定層以
從已擴展的協定層擷取欄位。通用散列命令中的每個通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是位元掩碼,並且hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。在一些實施例中,通用散列命令中的每個通用散列命令的欄位是軟體定義的。
在一些實施例中,該方法也包括:對位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算,其中位元掩碼由至少一個散列命令指定;至少基於邏輯AND運算的結果形成散列輸入層;以及檢索位元向量,該位元向量指示已擴展的協定層中的哪些散列輸入層將用來形成向散列函數的散列輸入。在一些實施例中,該方法也包括使用散列輸入作為向散列函數的輸入。
在另一方面中,提供一種實施網路交換機的方法。該方法包括:在網路交換機的傳入埠接收封包;根據用於對應協定的通用格式來通式化封包的每個協定標頭;對於每個經通式化的協定標頭,從經通式化的協定標頭擷取一個或者多個欄位;對於每個經通式化的協定標頭,級聯來自經通式化的協定標頭的一個或者多個擷取的欄位以形成散列層;以及使用位元向量以確定所有已擴展的協定層標頭中的哪些散列層將被選擇用以形成散列輸入。
在一些實施例中,網路交換機包括:解析器引擎,
被配置為通式化每個協定標頭,從經通式化的協定標頭擷取一個或者多個欄位,級聯來自經通式化的協定標頭的一個或者多個擷取的欄位以形成散列層,並且使用位元向量以確定所有已擴展的協定標頭中的哪些散列層將被選擇用以形成散列輸入。
在一些實施例中,通式化每個協定標頭包括:解析器引擎確定協定標頭的層類型和層類型的變體;解析器引擎基於層類型和變體從協定標頭偵測缺少的欄位;以及基於偵測,解析器引擎將協定標頭擴展成通用格式。
在一些實施例中,擷取一個或者多個欄位包括將一個或者多個通用散列命令應用於經通式化的協定標頭。通用散列命令中的每個通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是位元掩碼,並且hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。
在一些實施例中,在擷取一或多個欄位之後和在級聯一個或者多個所擷取的欄位之前,該方法包括:對位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算,其中位元掩碼由通用散列命令指定。
在一些實施例中,在使用位元向量之前,該方法包括:使用封包的PktID對本地表進行編索引,其中該表儲存用於每個已知協定層組合的位元向量。
在一些實施例中,在接收封包之前,該方法包括經由軟體對一個或者多個通用散列命令中的每個通用散列命令的欄位進行程式化。
在一些實施例中,在接收封包之前,該方法包括:允許協定的通用格式的軟體定義的映射;以及在網路交換機的記憶體中儲存軟體定義的映射。
在又一方面中,提供一種網路交換機。網路交換機包括:輸入埠和輸出埠,用於接收和發送封包。網路交換機也包括:記憶體,用於儲存協定的通用格式的由軟體定義的映射的集合、用於儲存用於擷取欄位的通用散列命令的集合、和用於儲存位元向量表。網路交換機也包括:解析器引擎,用於對封包執行標頭通式化過程,以根據軟體定義的映射中特定於對應協定的一個軟體定義的映射來通式化封包的每個協定標頭,和用於從經通式化的協定標頭選擇內容以應用於散列函數。可以對協定的不同變體、對不同協定或者二者使用標頭通式化過程。
在一些實施例中,在封包由解析器引擎處理之後,封包包括規範化的協定層。規範化的協定層中的每個規範化的協定層是根據用於對應協定的對應通用格式被擴展的協定層。
在一些實施例中,解析器引擎還將來自通用散列命令的集合之一的至少一個通用散列命令應用於經通式化的協定層中的每個經通式化的協定層,以從該經通式化的協定層擷取欄位。在一些實施例中,通用散列命令的集合之一是特
定於對應協定的。在一些實施例中,通用散列命令中的每個通用散列命令的欄位是軟體定義的。
在一些實施例中,至少一個散列命令指定位元掩碼和擷取的欄位的將位元掩碼應用於的位元組位置。在一些實施例中,解析器引擎還對位元掩碼和所擷取的欄位的位元組位置應用邏輯AND運算。在一些實施例中,來自該邏輯AND運算的結果被與來自其它AND運算的其它結果級聯以形成散列輸入層。在一些實施例中,解析器引擎存取本地表以從中檢索位元向量,用以應用於散列輸入層以形成用於散列函數的散列輸入。
在又一方面中,提供一種解析器引擎。解析器引擎包括:電路,配置為:識別封包的協定層;基於協定層中的每個協定層的識別將該協定層擴展成通用格式;以及從已擴展的協定層選擇內容用以應用於散列函數。
在一些實施例中,封包的協定層中的每個協定層基於唯一的層類型編號來識別。在一些實施例中,通用格式定義協定層能夠具有的所有欄位的超集合。
在一些實施例中,電路也被配置為將來自通用散列命令的集合的至少一個通用散列命令應用於已擴展的協定層,以從已擴展的協定層擷取欄位。在一些實施例中,通用散列命令中的每個通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是位元
掩碼,並且hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。在一些實施例中,通用散列命令中的每個通用散列命令的欄位是軟體定義的。
在一些實施例中,電路也被配置:對位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算,其中位元掩碼由至少一個散列命令指定;至少基於邏輯AND運算的結果形成散列輸入層;以及檢索位元向量,位元向量指示已擴展的協定層中的哪些散列輸入層將被用來形成向散列函數的散列輸入。
100‧‧‧封包標頭
200‧‧‧封包標頭
205‧‧‧位元向量
300‧‧‧封包標頭
300’‧‧‧封包標頭
305‧‧‧位元向量
400‧‧‧封包標頭
400’‧‧‧封包標頭
405‧‧‧位元向量
600‧‧‧方法
605-615‧‧‧步驟
650‧‧‧方法
655-670‧‧‧步驟
700‧‧‧方法
705-725‧‧‧步驟
根據如附圖式中所示的本發明的示例實施例的以下更具體描述,前文將是清楚的,在附圖中,相似標號貫穿不同視圖指代相同部分。附圖未必按比例、代之以著重於說明本發明的實施例。
第一圖說明根據本發明的一些實施例的將傳入封包的層進行標頭擴展成通用格式的圖式。
第二A圖與第二B圖說明根據本發明的一些實施例的協定標頭的示例通式化。
第三A圖至第三C圖說明根據本發明的一些實施例的協定標頭的另一示例通式化。
第四A圖至第四C圖說明根據本發明的一些實施例的協定標頭的另一示例通式化。
第五圖說明根據本發明的一些實施例的從已擴展的
層的擷取資料的框圖。
第六A圖與第六B圖說明根據本發明的一些實施例的解析器引擎的方法。
第七圖說明根據本發明的一些實施例的網路交換機的方法。
在以下描述中,出於說明的目的而闡述許多細節。然而,本領域普通技術人員將認識可以在不使用這些具體細節的情況下實現本發明。因此,本發明不旨在于局限於所示實施例、而是將被賦予與本文描述的原理和特徵一致的最寬的範圍。
用於從封包內容形成散列輸入的裝置的實施例涉及一種用於形成散列輸入的可程式化的靈活解決方案。這一解決方案允許基於不同要求的硬體改變,以及和隨著將來定義更新的協定和在將來定義更新的協定時添加對於它們的支持。封包被拆分成個別層。每層被給予有助於識別該層是什麼的唯一的層類型編號。基於層類型,每層被擴展成通用格式。每層具有該層通用的散列命令的集合。每個散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB。這些散列命令允許以封包中的資訊可程式化的方式被擷取。從封包的每個協定層擷取的欄位被級聯以形成散列層。位元向量指示哪些散列層被用來形成散列輸入。
網路設備(例如網路交換機)能夠切換/路由網路流量。網路交換機包括用於接收和發送封包的至少一個輸入/傳
入埠和至少一個輸出/外傳埠。在一些實施例中,網路交換機也包括解析器和重寫器。解析器可以包括用於識別網路封包的內容的一個或者多個解析器引擎,並且重寫器可以包括用於在封包從網路交換機被發送出之前修改它們的一個或者多個重寫引擎。(多個)解析器引擎和(多個)重寫引擎是靈活的並且在可程式化的基礎上操作。
網路交換機也包括用於儲存由網路交換機使用的資料的記憶體。例如記憶體儲存通用散列命令的集合。簡言之,通用散列命令通常被用來從協定標頭擷取欄位,用於形成散列輸入。對於另一示例,記憶體也儲存協定的通用格式的軟體定義的映射。簡言之,根據軟體定義的映射中特定於對應協定的一個軟體定義的映射來表示每個協定標頭。如將變得清楚的,這些映射可以在協定的不同變體上以及在包括新協定的不同協定上被使用。對於又一示例,記憶體也儲存計數器和統計量。
在乙太網中,封包包括多個協定層。每個協定層攜帶不同資訊。習知層的一些實例是:
‧乙太網
‧PBB乙太網
‧ARP
‧IPV4
‧IPV6
‧MPLS
‧FCOE
‧TCP
‧UDP
‧ICMP
‧IGMP
‧GRE
‧ICMPv6
‧VxLAN
‧TRILL
‧CNM
在理論上,協定層可以按照任何順序出現。然而,這些層的僅一些習知的組合出現。這些層的有效組合的一些實例是:
‧乙太網
‧乙太網、ARP
‧乙太網、CNM
‧乙太網、FCoE
‧乙太網、IPV4
‧乙太網、IPV4、ICMP
‧乙太網、IPV4、IGMP
對於封包解析(和重寫)操作,封包被分成層。這一拆分基於習知的層、例如以上列舉的那些層來完成。層中的許多層具有在層內的欄位的不同類型的組合。為了有效地處置不同的可能組合,層被擴展成通用格式。這些通用格式允許使用對層內的具體欄位未知(agnostic)的命令、例如散
列命令。通用格式定義任何已知層能夠具有的所有欄位的超集合。
第一圖說明根據本發明的一些實施例的將傳入封包的層進行標頭100擴展成通用格式之圖式。在第一圖中,傳入封包包括八個標頭協定層。每個協定層通常包括用於它的相應協定的標頭。如以上指示的那樣,更多或者更少協定層是可能的。解析器引擎能夠識別每個層及其變體。如第一圖中所示,解析器引擎基於每個協定層的識別和變體來識別該層。規範層是指已經被擴展成其通用格式的協定層。簡言之,每個規範層包括位元向量,該位元向量具有針對無效欄位標記為0的位元和針對有效欄位標記為1的位元。
假設解析器引擎已經將層識別為乙太網封包標頭。第二A圖至第四C圖說明根據本發明的一些實施例的解析器引擎如何對乙太網協定工作的示例。第二A圖至第四C圖中所示的示例示範了解析器引擎能夠對協定、例如乙太網協定的不同變體工作。每個示例舉例說明了乙太網協定的傳入標頭及其對應的通用格式。雖然未討論其它協定,但是注意,解析器引擎對其它協定類似地工作。
第二A圖說明傳入封包的示例性乙太網封包標頭200的格式。乙太網封包標頭200是22位元組的並且包括五個欄位:源地址(SA)欄位、目的地地址(DA)欄位、服務VLAN標籤欄位、客戶VLAN標籤欄位和乙太類型欄位。SA欄位和DA欄位各自為6位元組。服務VLAN標籤欄位和客戶VLAN標籤欄位各自為4位元組。乙太類型欄位為2位元組。
具有乙太網封包標頭100的封包是乙太網封包的最大變體並且具有最大22位元組的大小。
解析器引擎處理乙太網封包標頭200並且確定沒有任何欄位在乙太網封包標頭200中缺少。乙太網封包標頭200的通用格式因此與乙太網封包標頭200的通用格式相同,因為乙太網封包標頭200包含所有可能欄位。圖2B說明位元向量205,該位元向量205代表第二A圖的乙太網封包標頭200。位元向量205的每個位元對應於乙太網封包標頭200的22位元組之一。位元向量205包含所有1,因為乙太網封包標頭200的所有欄位有效,或者具有值,因為欄位在乙太網封包標頭200中存在。因而,乙太網封包標頭200由通用格式{22'b111111_111111_1111_1111_11}表示。
第三A圖說明傳入封包的另一示例乙太網封包標頭的格式300。乙太網封包標頭300為18位元組並且僅包括四個欄位:SA欄位、DA欄位、客戶VLAN標籤欄位和乙太類型(EtherType)欄位。乙太網封包標頭300缺少服務VLAN標籤欄位。具有乙太網封包標頭300的封包是乙太網封包的另一變化。
解析器引擎處理乙太網封包標頭300並且確定服務VLAN標籤欄位在乙太網封包標頭300中缺少,並且通過在乙太網封包標頭300的通用格式的適當位置包括缺少的服務VLAN標籤欄位來將乙太網封包標頭300擴展到它的最大22位元組大小。第三B圖說明擴展的乙太網封包標頭的通用格式300’。擴展的乙太網封包標頭300’包括乙太網協定的所有
可能欄位,包括缺少的服務VLAN標籤欄位。在擴展的乙太網封包標頭300’中的有效欄位是SA欄位、DA欄位、客戶VLAN標籤欄位和乙太類型欄位,因為它們在乙太網封包標頭300中存在。在擴展的乙太網封包標頭300’中的無效欄位是服務VLAN標籤欄位,因為它在乙太網封包標頭300中不存在、而是被添加在擴展的乙太網封包標頭300’中的。
第三C圖說明表示第三B圖的擴展的乙太網封包標頭300’的位元向量305。位元向量305的每個位元對應於擴展的乙太網封包標頭300’的22位元組之一。位元向量305包含用於所有有效欄位的1,這些有效欄位是SA欄位、DA欄位、客戶VLAN標籤欄位和乙太類型欄位。位元向量305包含用於所有無效欄位的0,該無效欄位僅為服務VLAN標籤欄位。因而,乙太網封包標頭300由通用格式{22'b111111_111111_0000_1111_11}表示。
第四A圖說明傳入封包的另一示例乙太網封包標頭的格式400。乙太網封包標頭400為14位元組並且僅包括三個欄位:SA欄位、DA欄位和乙太類型欄位。乙太網封包標頭400缺少服務VLAN標籤欄位和客戶VLAN標籤欄位。具有乙太網封包標頭400的封包是乙太網封包的最小變體。
解析器引擎處理乙太網標頭400並且確定服務VLAN標籤欄位和客戶VLAN標籤欄位在乙太網封包標頭400中缺少,並且通過在乙太網封包標頭400的通用格式的適當位置處包括缺少的服務VLAN標籤欄位和缺少的客戶VLAN標籤欄位來將乙太網封包標頭400擴展到它的最大22位元組大
小。第四B圖說明擴展的乙太網封包標頭的通用格式400’。擴展的乙太網封包標頭400’包括乙太網協定的所有可能欄位,包括缺少的服務VLAN標籤欄位和缺少的客戶VLAN標籤欄位。擴展的乙太網封包標頭400’中的有效欄位是SA欄位、DA欄位和乙太類型欄位,因為它們在乙太網封包標頭400中存在。擴展的乙太網封包標頭400’中的無效欄位是服務VLAN標籤欄位和客戶VLAN標籤欄位,因為它們在乙太網封包標頭400中不存在、而是被添加在擴展的乙太網封包標頭400’中的。
第四C圖說明表示第四B圖的擴展的乙太網封包標頭400’的位元向量405。位元向量405的每個位元對應於擴展的乙太網封包標頭400’的22位元組之一。位元向量405包含用於所有有效欄位的1,這些有效欄位是SA欄位、DA欄位和乙太類型欄位。位元向量405包含用於所有無效欄位的0,該無效欄位是服務VLAN標籤欄位和客戶VLAN標籤欄位。因而,乙太網封包標頭400由通用格式{22'b111111_111111_0000_0000_11}代表。
如第二A圖至第四C圖中所示,無論傳入乙太網標頭的變化如何,一旦執行將乙太網標頭擴展成通用格式,欄位偏移與最大大小的乙太網標頭(例如,第二A圖的乙太網封包標頭200)相同。標頭擴展有利地允許相同軟體命令集工作,而無論傳入乙太網標頭如何,因為乙太網標頭被擴展成最大大小的乙太網標頭。這樣,例如擷取乙太類型欄位的散列命令將總是指向相同偏移,無論接收到哪個乙太網標頭。
在一些實施例中,壓縮格式被用來表達哪些欄位在任何接收的標頭中存在。緊湊格式由兩個欄位的組合組成、即:‧contBytes:這指示多少位元組在層的開頭有效;以及‧validBytes:這是指示層中的每個位元組的有效性的位元向量。
舉例而言,如果contBytes為8而validBytes為4'h0111,則相應層包括有效的位元組0-7、其後是空位元組和三個有效位元組。使用這一壓縮格式有助於節省為了展示層而需要的位元數。位元組總數可以通過表1中所示的偽代碼來計算。
標頭的通用格式在從封包標頭擷取欄位方面產生硬體和軟體靈活性。硬體能夠從封包標頭擷取欄位,而無論欄位在封包標頭內駐留於何處。硬體可以被軟體程式化用以支援新協定。軟體將通用格式在硬體表中程式化,用於各種標頭協定。
一旦擴展協定標頭,可程式化散列命令允許擷取來自封包的欄位。每層具有對應協定特有的N個散列命令的集
合。表2列出每個散列命令的欄位。這些欄位是軟體定義的。
通用散列命令允許以可程式化方式擷取封包中的資訊。例如與傳統實現方式比較,對於乙太網,為了擷取MAC DA(MAC目的地位址),散列命令將指定偏移0和六個位元組的長度。這將導致攜帶MAC DA的前六個位元組要從層中被擷取。相似地,為了擷取IP DA,散列命令將指定偏移16和四個位元組的長度。這將導致攜帶IP DA的在偏移16處開始的四個位元組將從層中被擷取。
通用散列命令使用hashMask用於位元掩碼運算。具體而言,hashMask掩蔽來自擷取的欄位的一個或者多個位。通用散列命令也可以使用hashMaskMSB。如果hashMaskMSB被設置成1,則hashMask被應用於擷取的欄位的最高有效位
元組。如果hashMaskMSB被設置成0,則hashMask被應用於擷取的欄位的最低有效位元組。
第五圖說明根據本發明的一些實施例的從擴展的層擷取資料的框第五圖00。擴展的層在第五圖中被標注為「層N標頭(規範標頭)」。解析器引擎確定的層類型被參考(referenced)在記憶體中,該層類型指定用於從擴展的層擷取欄位的N個散列命令中的一個或者多個散列命令。每個散列命令包括四個欄位:fieldOffset、fieldLen、hashMask和hashMaskMSB。在第五圖中,第一散列命令擷取欄位0並且對欄位0的一個位元組(欄位0的最高有效位元組或者最低有效位元組,如hashMaskMSB所設置的)和hashMask執行邏輯AND運算,其中hashMaskMSB和hashMask由第一散列命令指定。第二散列命令擷取欄位1並且對欄位1的一個位元組(欄位1的最高有效位元組或者最低有效位元組,如hashMaskMSB所設置的)和hashMask執行邏輯AND運算,其中hashMaskMSB和hashMask由第二散列命令指定。並且第三散列命令擷取欄位15並且對欄位15的一個位元組(欄位15的最高有效位元組或者最低有效位元組,如hashMaskMSB所設置的)和hashMask執行邏輯AND運算,其中hashMaskMSB和hashMask由第三散列命令指定。來自邏輯AND運算的結果被儲存在第五圖中示為「散列輸入層N」的匯流排中。結果被依次地放置於彼此旁邊而在結果之間無任何間隙,以形成散列輸入層。換而言之,來自邏輯AND運算的結果被級聯以形成散列輸入層。
由於並非所有散列輸入層是形成散列輸入所需要的,所以獨立配置指定哪些散列輸入層應當被用於形成散列輸入。具體而言,在網路交換機的記憶體中儲存的本地表被程式化為包括每個已知協定層組合的資料。使用PktID來編索引的表包括用於每個協定層組合的位元向量。位元向量指示應當在散列輸入的形成中使用對應協定層組合或者棧的協定層中的哪些協定層。
在網路交換機接收每個封包時,解析器引擎確定該封包的PktID。這一確定基於該封包的協定層組合或者棧。在形成封包的散列輸入層之後,如以上描述的那樣,本地表被用來基於與對應PktID關聯的位元向量選擇散列輸入層中的一個或者多個散列輸入層。
例如具有值8'b00001111的位元向量指示僅來自散列輸入層3、2、1和0的資料應當被用於形成散列輸入。對於另一示例,具有值8'b10101010的位元向量指示僅來自散列輸入層7、5、3和1的資料應當被用於形成散列輸入。
散列命令和位元向量的組合允許以高度靈活的方式形成散列輸入。散列輸出是識別封包應當取等成本多路徑路由中的哪個等成本多路徑路由的唯一簽名。
第六A圖說明根據本發明的一些實施例的解析器引擎的方法600。解析器引擎是網路交換機的部分並且識別網路封包的內容。通常,解析器引擎先通過協定層拆分封包。在步驟605,識別封包的協定層。封包的協定層中的每個協定層基於協定層的唯一的層類型編號來識別。
在步驟610,基於協定層中的每個協定層的識別將該協定層擴展成通用格式。通用格式定義協定層可以具有的所有欄位的超集合。為已擴展的協定層維持位元向量。位元向量包括用於已擴展的協定層的每個位元組的每位元組的位元。對於每個有效欄位的每個位元組將位元標記為可用,其中每個有效欄位是在封包的協定層中存在的欄位。對於每個無效欄位的每個位元組將位元標記為不可用,其中每個無效欄位是在封包的協定層中不存在的欄位。在一些實施例中,壓縮格式用來表達已擴展的協定層。
在步驟615,來自已擴展的協定層的內容被選擇,以應用於散列函數。
第六B圖說明根據本發明的一些實施例的解析器引擎的另一方法650。通常,解析器引擎在方法600之後執行方法650。在步驟655,來自通用散列命令的集合的至少一個通用散列命令被應用於已擴展的協定層,以從已擴展的協定層擷取欄位。通用散列命令中的每個通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定將被擷取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是位元掩碼,並且hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。通用層命令中的每個通用層命令的欄位是軟體定義的。
在步驟660,對位元掩碼和所擷取的欄位的一個位
元組應用邏輯AND運算。位元掩碼可以被應用於所擷取的欄位的最高有效位元組或者最低有效直接。位元掩碼由至少一個散列命令指定。
在步驟665,至少基於邏輯AND運算的結果形成散列輸入層。
在步驟670,檢索位元向量。從本地表檢索位元向量。位元向量指示已擴展的協定層中的哪些散列輸入層將被用來形成向散列函數的散列輸入。散列輸入隨後被用作向散列函數的輸入。散列函數的輸出是識別封包應當取ECMP路由中的哪個ECMP路由的唯一簽名。
第七圖說明根據本發明的一些實施例的網路交換機的方法700。在一些實施例中,網路交換機允許協定的通用格式的軟體定義的映射,並且在網路交換機的記憶體中儲存軟體定義的映射。在步驟705,在網路交換機的傳入埠接收封包。
在步驟710,根據用於對應協定的通用格式來通式化封包的每個協定標頭。解析器引擎確定協定標頭的層類型和層類型的變體。解析器引擎基於層類型和變體從協定中偵測缺少的欄位。基於偵測,解析器引擎將協定標頭擴展成通用格式。
在步驟715,對於每個通式化的協定標頭,擷取來自通式化的協定標頭的一個或者多個欄位。為了擷取欄位,一個或者多個通用散列命令被應用於通式化的協定標頭。通用散列命令中的每個通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB;fieldOffset指定將被擷
取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是位元掩碼,並且hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。
在步驟720,對於每個通式化的協定標頭,來自通式化的協定標頭的一個或者多個擷取的欄位被級聯以形成散列層。在一些實施例中,在步驟715之後和在步驟720之前,對位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算。位元掩碼由通用散列命令指定。
在步驟725,位元向量被用來確定所有已擴展的協定標頭的哪些散列層被選擇以形成散列輸入。在一些實施例中,在步驟725之前,使用封包的PktID來對本地表進行編索引。該表儲存用於每個已知協定層組合的位元向量。散列輸入被用作向散列函數的輸入。散列函數的輸出是識別封包應當取ECMP路由中的哪個ECMP路由的唯一簽名。
使用散列命令來擷取來自封包的資料。層中的每個層被擴展成通用格式。標頭的通用格式在從封包標頭擷取欄位方面產生硬體和軟體靈活性,因為散列命令對在封包的層內的具體欄位是不知的。不再需要在實施時間進行對將擷取的相關資訊在封包內落在何處的確定。
本領域普通技術人員將認識到其它使用和優點也存在。儘管已經參照許多具體細節描述本發明,但是本領域普通技術人員將認識可以以其它具體形式體現本發明而未脫離本發明的精神實質。因此,本領域普通技術人員將理解本發
明不受前述示例細節限制、而是實際上將由所附申請專利範圍所限定。
100‧‧‧封包標頭
Claims (38)
- 一種實施一解析器引擎的方法,所述方法包括:識別一封包的協定層;基於各所述協定層之識別,將該各所述協定層擴展成一通用格式;以及從已擴展的協定層中選擇內容以應用於一散列函數。
- 如申請專利範圍第1項所述的方法,其中該封包的各所述協定層是基於一唯一層類型編號而予以識別。
- 如申請專利範圍第1項所述的方法,其中所述通用格式定義所述協定層能夠具有的所有欄位之一超集合。
- 如申請專利範圍第1項所述的方法,其中擴展各所述協定層係包括:維持一已擴展協定層之一位元向量,其中所述位元向量包括該已擴展協定層的每一個位元組之每位元組的位元;對於每一個有效欄位的每一個位元組,將一位元標記為可用,其中每一個有效欄位是存在於該封包的所述協定層中之欄位;以及對於每一個無效欄位的每一個位元組,將一位元標記為不可用,其中每一個無效欄位是不存在於該封包的所述協定層中的欄位。
- 如申請專利範圍第4項所述的方法,進一步包括:使用一壓縮格式來表達該已擴展協定層。
- 如申請專利範圍第1項所述的方法,進一步包括:對該已擴展協定層應用一通用散列命令集合中的至少其一,以從所述已擴展協定層中擷取一欄位。
- 如申請專利範圍第6項所述的方法,其中各所述通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是一位元掩碼,而hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。
- 如申請專利範圍第6項所述的方法,其中各所述通用散列命令的欄位是由軟體定義。
- 如申請專利範圍第6項所述的方法,進一步包括:對一位元掩碼和所擷取的欄位的一個位元組應用一邏輯AND運算,其中所述位元掩碼由所述至少一個散列命令指定;至少基於所述邏輯AND運算的結果形成一散列輸入層;以及檢索一位元向量,所述位元向量指示所述已擴展協定層中的哪些散列輸入層將被用來形成對所述散列函數之一散列輸入。
- 如申請專利範圍第9項所述的方法,進一步包括:使用所述散列輸入作為對所述散列函數之一輸入。
- 一種實施網路交換機的方法,所述方法包括: 在所述網路交換機的一傳入埠處接收一封包;根據一對應協定之一通用格式來通式化該封包的每一個協定標頭;對於每一個通式化的協定標頭,從所述通式化的協定標頭中擷取一或多個欄位;對於每一個通式化的協定標頭,級聯來自所述通式化的協定標頭的所述一或多個被擷取的欄位,以形成一散列層;以及使用一位元向量以確定所有已擴展協定標頭中的哪些散列層將被選擇用以形成一散列輸入。
- 如申請專利範圍第11項所述的方法,其中所述網路交換機包括:解析器引擎,配置為通式化每個協定標頭,從通式化的協定標頭擷取一個或者多個欄位,級聯來自所述通式化的協定標頭的所述一個或者多個擷取的欄位以形成散列層,並且使用位元向量以確定所有已擴展的協定標頭中的哪些散列層將被選擇用以形成散列輸入。
- 如申請專利範圍第12項所述的方法,其中通式化每一個協定標頭係包括:所述解析器引擎確認該協定標頭的一層類型和該層類型的一變體;所述解析器引擎基於所述層類型和所述變體,偵測所述協定標頭中缺少的欄位;以及基於所述偵測,所述解析器引擎將所述協定標頭擴展成所述通用格式。
- 如申請專利範圍第11項所述的方法,其中擷取一或多個欄位係包括:將一或多個通用散列命令應用於所述通式化的協定標頭。
- 如申請專利範圍第14項所述的方法,其中各所述通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是一位元掩碼,而hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。
- 如申請專利範圍第14項所述的方法,進一步包括:在接收一封包之前,先經由軟體對各所述一或多個通用散列命令的欄位進行程式化。
- 如申請專利範圍第11項所述的方法,進一步包括:在接收封包之前,先進行:允許協定的通用格式之軟體定義映射;以及在所述網路交換機的一記憶體中儲存所述軟體定義映射。
- 如申請專利範圍第11項所述的方法,進一步包括:在擷取一或多個欄位之後並且在級聯所述一或多個擷取的欄位之前,對一位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算,其中所述位元掩碼是由一通用散列命令所指定。
- 如申請專利範圍第11項所述的方法,進一步包括:在使用一位元向量之前,使用所述封包的一PktID來對一本地表進行編索引,其中該表係儲存用於各已知協定層組合之位元向量。
- 一種網路交換機,包括:一輸入埠和一輸出埠,用於接收和發送封包;一記憶體,用於儲存協定的通用格式之一軟體定義映射集合,用於儲存擷取欄位之通用散列命令集合,以及用於儲存一位元向量表;以及一解析器引擎,用於對所述封包執行一標頭通式化程序,以根據所述軟體定義映射中特定於一對應協定之一個軟體定義映射來通式化一封包的每一個協定標頭,以及用於從已通式化的協定標頭中選擇內容以應用於一散列函數。
- 如申請專利範圍第20項所述的網路交換機,其中該標頭通式化程序係使用於一協定的不同變體。
- 如申請專利範圍第20項所述的網路交換機,其中該標頭通式化程序係使用於不同協定。
- 如申請專利範圍第20項所述的網路交換機,其中在該解析器引擎處理該封包之後,所述封包即包括規範協定層。
- 如申請專利範圍第23項所述的網路交換機,其中各所述規範協定層是根據該對應協定之對應通用格式而擴展的一協定層。
- 如申請專利範圍第20項所述的網路交換機,其中該解析器引擎進一步將來自所述通用散列命令集合中其一的至少一個散列命令應用於各所述通式化的協定層,以從所述通式化的協定層中擷取一欄位。
- 如申請專利範圍第25項所述的網路交換機,其中所述通用散列命令集合中其一是特定於所述對應協定。
- 如申請專利範圍第25項所述的網路交換機,其中各所述通用散列命令的欄位是由軟體定義。
- 如申請專利範圍第25項所述的網路交換機,其中所述至少一個散列命令係指定一位元掩碼以及所擷取欄位的一位元組位置,該位元掩碼係應用至該位元組位置。
- 如申請專利範圍第28項所述的網路交換機,其中該解析器引擎係進一步對所述位元掩碼和所擷取的欄位的所述位元組位置應用一邏輯AND運算。
- 如申請專利範圍第29項所述的網路交換機,其中來自所述邏輯AND運算的結果係與來自其它AND運算的其它結果級聯,以形成一散列輸入層。
- 如申請專利範圍第30項所述的網路交換機,其中所述解析器引擎係存取該本地表,以自其中檢索一位元向量,該位元向量用以應用於散列輸入層以形成所述散列函數之一散列輸入。
- 一種包括一電路之解析器引擎,該電路係經配置以:識別一封包的協定層; 基於各所述協定層之所述識別,將各所述協定層擴展成一通用格式;以及從已擴展的協定層中選擇內容以應用於一散列函數。
- 如申請專利範圍第32項所述的解析器引擎,其中所述封包的各所述協定層是基於一唯一層類型編號而予以識別。
- 如申請專利範圍第32項所述的解析器引擎,其中所述通用格式定義所述協定層能夠具有的所有欄位的一超集合。
- 如申請專利範圍第32項所述的解析器引擎,其中所述電路係亦配置以將來自一通用散列命令集合中至少其一應用於所述已擴展的協定層,以從所述已擴展的協定層中擷取欄位。
- 如申請專利範圍第35項所述的解析器引擎,其中各所述通用散列命令的欄位是fieldOffset、fieldLen、hashMask和hashMaskMSB,其中fieldOffset指定將被擷取的欄位在所述已擴展的層內開始的偏移,fieldLen指定應當從該指定的偏移擷取的位元組的數目,hashMask是一位元掩碼,而hashMaskMSB指示所述位元掩碼是否將被應用於所擷取的欄位的最高有效位元組或者最低有效位元組。
- 如申請專利範圍第35項所述的解析器引擎,其中各所述通用散列命令的欄位是由軟體定義。
- 如申請專利範圍第32項所述的解析器引擎,其中該電路亦配置以: 對位元掩碼和所擷取的欄位的一個位元組應用邏輯AND運算,其中所述位元掩碼是由所述至少一個散列命令所指定;至少基於所述邏輯AND運算的結果形成一散列輸入層;以及檢索一位元向量,所述位元向量指示所述已擴展的協定層中的哪些散列輸入層將被用來形成對所述散列函數之一散列輸入。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/309,739 US9438703B2 (en) | 2014-06-19 | 2014-06-19 | Method of forming a hash input from packet contents and an apparatus thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201603534A true TW201603534A (zh) | 2016-01-16 |
Family
ID=53716287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104110832A TW201603534A (zh) | 2014-06-19 | 2015-04-02 | 從封包內容形成散列輸入之方法及裝置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9438703B2 (zh) |
EP (1) | EP2958284A3 (zh) |
JP (1) | JP6590546B2 (zh) |
KR (1) | KR102337513B1 (zh) |
CN (1) | CN105282133B (zh) |
HK (1) | HK1220830A1 (zh) |
TW (1) | TW201603534A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10474604B2 (en) * | 2016-04-01 | 2019-11-12 | Intel Corporation | Transmitting universal serial bus (USB) data over alternate mode connection |
KR102050828B1 (ko) * | 2018-10-26 | 2020-01-08 | 한국과학기술원 | 병렬 연산을 이용한 오픈 가상 스위치의 가속화 방법 및 이를 이용한 오픈 가상 스위치 |
US11743189B2 (en) | 2020-09-14 | 2023-08-29 | Microsoft Technology Licensing, Llc | Fault tolerance for SDN gateways using network switches |
CN116192730A (zh) * | 2021-11-26 | 2023-05-30 | 苏州盛科通信股份有限公司 | 针对网络负载分担应用的灵活产生hash值的方法和系统 |
JP7220814B1 (ja) | 2022-01-21 | 2023-02-10 | エヌ・ティ・ティ・アドバンステクノロジ株式会社 | データ取得装置及びデータ取得方法 |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805808A (en) | 1991-12-27 | 1998-09-08 | Digital Equipment Corporation | Real time parser for data packets in a communications network |
US6088356A (en) | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US6341129B1 (en) | 1998-04-03 | 2002-01-22 | Alteon Networks, Inc. | TCP resegmentation |
US7333484B2 (en) | 1998-08-07 | 2008-02-19 | Intel Corporation | Services processor having a packet editing unit |
FI106504B (fi) | 1998-10-06 | 2001-02-15 | Nokia Networks Oy | Datan segmentointimenetelmä tietoliikennejärjestelmässä |
US6789116B1 (en) | 1999-06-30 | 2004-09-07 | Hi/Fn, Inc. | State processor for pattern matching in a network monitor device |
CN101312052B (zh) | 1999-12-02 | 2011-04-06 | 松下电器产业株式会社 | 制造光记录媒体的方法以及记录方法、再生方法 |
JP3613102B2 (ja) | 1999-12-14 | 2005-01-26 | 日本電気株式会社 | フレーム構成方法、フレーム構成装置およびフレーム構成転送システム |
JP4099930B2 (ja) | 2000-06-02 | 2008-06-11 | 株式会社日立製作所 | ルータ装置及びvpn識別情報の設定方法 |
GB0023169D0 (en) | 2000-09-20 | 2000-11-01 | Ibm | Message parsing in message processing systems |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
US6904057B2 (en) | 2001-05-04 | 2005-06-07 | Slt Logic Llc | Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification |
US7580408B2 (en) | 2001-11-21 | 2009-08-25 | Alcatel Lucent | Configurable packet processor |
US7236501B1 (en) | 2002-03-22 | 2007-06-26 | Juniper Networks, Inc. | Systems and methods for handling packet fragmentation |
US7187694B1 (en) | 2002-03-29 | 2007-03-06 | Pmc-Sierra, Inc. | Generic packet parser |
JP2003308206A (ja) | 2002-04-15 | 2003-10-31 | Fujitsu Ltd | プロセッサ装置 |
US20050232303A1 (en) | 2002-04-26 | 2005-10-20 | Koen Deforche | Efficient packet processing pipeline device and method |
US7408957B2 (en) | 2002-06-13 | 2008-08-05 | International Business Machines Corporation | Selective header field dispatch in a network processing system |
US20050281281A1 (en) | 2003-01-24 | 2005-12-22 | Rajesh Nair | Port input buffer architecture |
US7415596B2 (en) | 2003-01-24 | 2008-08-19 | Gigafin Networks, Inc. | Parser table/production rule table configuration using CAM and SRAM |
US7706363B1 (en) | 2003-06-11 | 2010-04-27 | Radlan Computer Communications, Ltd | Method and apparatus for managing packets in a packet switched network |
JP4152412B2 (ja) * | 2003-10-10 | 2008-09-17 | 富士通株式会社 | 統計情報採取方法及び装置 |
US7411957B2 (en) | 2004-03-26 | 2008-08-12 | Cisco Technology, Inc. | Hardware filtering support for denial-of-service attacks |
US7822032B1 (en) | 2004-03-30 | 2010-10-26 | Extreme Networks, Inc. | Data structures for supporting packet data modification operations |
US7554978B1 (en) | 2004-03-30 | 2009-06-30 | Extreme Networks, Inc. | System for accessing content-addressable memory in packet processor |
US7568047B1 (en) | 2004-04-30 | 2009-07-28 | Nortel Networks Limited | Method and apparatus for adaptive service label management |
JP4392294B2 (ja) | 2004-06-15 | 2009-12-24 | 株式会社日立製作所 | 通信統計収集装置 |
JP4156568B2 (ja) | 2004-06-21 | 2008-09-24 | 富士通株式会社 | 通信システムの制御方法、通信制御装置、プログラム |
US7474619B2 (en) | 2004-07-22 | 2009-01-06 | International Business Machines Corporation | Method and apparatus for providing fragmentation at a transport level along a transmission path |
US7570661B2 (en) | 2005-06-14 | 2009-08-04 | Microsoft Corporation | Script-based parser |
US7603474B2 (en) | 2005-10-05 | 2009-10-13 | Microsoft Corporation | Efficient endpoint matching using a header-to-bit conversion table |
JP4340653B2 (ja) * | 2005-12-16 | 2009-10-07 | 日本電信電話株式会社 | 通信処理装置及び通信処理方法 |
CN100429617C (zh) * | 2006-05-16 | 2008-10-29 | 北京启明星辰信息技术有限公司 | 一种自动协议识别方法及系统 |
US9143585B2 (en) * | 2006-07-07 | 2015-09-22 | Wi-Lan Inc. | Method and system for generic multiprotocol convergence over wireless air interface |
CN101035131A (zh) * | 2007-02-16 | 2007-09-12 | 杭州华为三康技术有限公司 | 协议识别方法及装置 |
CN101563908B (zh) | 2006-12-19 | 2013-01-09 | 国际商业机器公司 | 分析网络流的装置和方法 |
US7822875B1 (en) | 2006-12-22 | 2010-10-26 | Marvell International Ltd. | Method for flexible modifications to a packet |
US7978700B2 (en) | 2007-03-12 | 2011-07-12 | Marvell Israel (Misl) Ltd. | Apparatus for determining locations of fields in a data unit |
US8825592B2 (en) | 2008-03-12 | 2014-09-02 | Web Access, Inc. | Systems and methods for extracting data from a document in an electronic format |
US7843919B2 (en) * | 2008-03-20 | 2010-11-30 | International Business Machines Corporation | Ethernet virtualization using a network packet alteration |
JP4962394B2 (ja) * | 2008-04-21 | 2012-06-27 | 富士通株式会社 | パケット転送制御装置およびパケット転送制御方法 |
KR101456563B1 (ko) * | 2008-05-14 | 2014-10-31 | 삼성전자주식회사 | 멀티 홉 릴레이 환경에서 대역폭 할당 요청과 할당 방법 및시스템 |
US8234369B2 (en) | 2008-12-23 | 2012-07-31 | Verizon Patent And Licensing Inc. | Web page response monitoring |
US8902886B2 (en) * | 2009-04-23 | 2014-12-02 | International Business Machines Corporation | Canonicalization of network protocol headers |
US8111704B2 (en) | 2009-06-26 | 2012-02-07 | Intel Corporation | Multiple compression techniques for packetized information |
US9008082B2 (en) * | 2009-12-07 | 2015-04-14 | Telefonaktiebolaget L M Ericsson (Publ) | Handling data packets received at a routing node |
US8472438B2 (en) * | 2010-04-23 | 2013-06-25 | Telefonaktiebolaget L M Ericsson (Publ) | Efficient encapsulation of packets transmitted on a packet-pseudowire over a packet switched network |
RU2549159C2 (ru) * | 2010-05-03 | 2015-04-20 | Нокиа Корпорейшн | Сокращение служебной информации протокола |
US8537815B2 (en) | 2010-06-17 | 2013-09-17 | Apple Inc. | Accelerating data routing |
US8705533B1 (en) | 2010-12-10 | 2014-04-22 | Juniper Networks, Inc. | Fast packet encapsulation using templates |
TW201246867A (en) * | 2011-05-06 | 2012-11-16 | Ralink Technology Corp | Packet processing accelerator and method thereof |
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
US8521905B2 (en) | 2011-12-22 | 2013-08-27 | Telefonaktiebolaget L M Ericsson (Publ) | System for flexible and extensible flow processing in software-defined networks |
US8711860B2 (en) | 2011-12-22 | 2014-04-29 | Telefonaktiebolaget L M Ericsson (Publ) | Controller for flexible and extensible flow processing in software-defined networks |
US9282173B2 (en) | 2012-02-17 | 2016-03-08 | Viavi Solutions Inc. | Reconfigurable packet header parsing |
WO2014061488A1 (ja) * | 2012-10-17 | 2014-04-24 | ソニー株式会社 | データ処理装置、データ処理方法、及び、プログラム |
US9438517B2 (en) * | 2012-10-30 | 2016-09-06 | Viavi Solutions Inc. | Method and system for identifying matching packets |
US9219694B2 (en) | 2013-03-15 | 2015-12-22 | Wisconsin Alumni Research Foundation | Content addressable memory with reduced power consumption |
US9769701B2 (en) * | 2013-06-14 | 2017-09-19 | Texas Instruments Incorporated | Header compression for wireless backhaul systems |
US9444914B2 (en) * | 2013-09-16 | 2016-09-13 | Annapurna Labs Ltd. | Configurable parser and a method for parsing information units |
US9628382B2 (en) * | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
-
2014
- 2014-06-19 US US14/309,739 patent/US9438703B2/en active Active
-
2015
- 2015-04-02 TW TW104110832A patent/TW201603534A/zh unknown
- 2015-05-11 CN CN201510236798.4A patent/CN105282133B/zh active Active
- 2015-06-18 JP JP2015122564A patent/JP6590546B2/ja active Active
- 2015-06-19 KR KR1020150087800A patent/KR102337513B1/ko active IP Right Grant
- 2015-06-19 EP EP15173004.1A patent/EP2958284A3/en not_active Withdrawn
-
2016
- 2016-07-26 HK HK16108888.0A patent/HK1220830A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP2958284A3 (en) | 2016-01-27 |
EP2958284A2 (en) | 2015-12-23 |
JP2016005286A (ja) | 2016-01-12 |
CN105282133A (zh) | 2016-01-27 |
KR20150146449A (ko) | 2015-12-31 |
US20150373164A1 (en) | 2015-12-24 |
JP6590546B2 (ja) | 2019-10-16 |
CN105282133B (zh) | 2020-06-23 |
KR102337513B1 (ko) | 2021-12-09 |
HK1220830A1 (zh) | 2017-05-12 |
US9438703B2 (en) | 2016-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9606781B2 (en) | Parser engine programming tool for programmable network devices | |
TW201603534A (zh) | 從封包內容形成散列輸入之方法及裝置 | |
US8867568B2 (en) | Method for parsing network packets having future defined tags | |
WO2017041737A1 (zh) | 报文处理 | |
JP6590545B2 (ja) | パケットからデータを抽出する方法およびその装置 | |
US11258886B2 (en) | Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof | |
TW201603537A (zh) | 使用連續位元組表示通用格式標頭之方法及裝置 | |
JP6678401B2 (ja) | 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置 | |
CN105187330B (zh) | 使用唯一分组标识符来标识分组结构的方法及网络交换机 | |
US10397113B2 (en) | Method of identifying internal destinations of network packets and an apparatus thereof | |
TW201603535A (zh) | 修改封包為可進行可程式化修改之通用格式的方法及裝置 | |
TWI664843B (zh) | 使用位元向量進行封包內標頭層擴展塌縮方法及裝置 | |
CN105282136B (zh) | 使用通用修改指令来实现分组的灵活修改的方法及其装置 |