TWI789169B - 向量包處理轉發方法 - Google Patents
向量包處理轉發方法 Download PDFInfo
- Publication number
- TWI789169B TWI789169B TW110147810A TW110147810A TWI789169B TW I789169 B TWI789169 B TW I789169B TW 110147810 A TW110147810 A TW 110147810A TW 110147810 A TW110147810 A TW 110147810A TW I789169 B TWI789169 B TW I789169B
- Authority
- TW
- Taiwan
- Prior art keywords
- classification
- data packet
- packet
- entry
- quintuple
- Prior art date
Links
Images
Classifications
-
- 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/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- 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/42—Centralised routing
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- 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/7453—Address table lookup; Address filtering using hashing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明提供一種向量包處理轉發方法。所述方法適用於轉發路徑。所述轉發路徑包括乙太網路入口、DPDK輸入端、入口標記分類插件、一或多個中間節點、Tx輸出端、出口標記分類插件、及乙太網路出口。所述向量包處理轉發方法包括:對先前數據包執行學習記錄模式以得到學習結果,在所述學習記錄模式中,使所述先前數據包通過整個所述轉發路徑;及對後續數據包執行優化加速模式,在所述優化加速模式中,基於所述學習結果使所述後續數據包繞過所述轉發路徑的所述一或多個中間節點的其中幾個中間節點。
Description
本發明是關於一種向量包處理(Vector Packet Processing,VPP)轉發方法,其可提高VPP轉發性能。
隨著疊加(overlay)網路協定(例如虛擬擴展局域網(Virtual Extensible LAN,VxLAN))的不斷引入,基於服務的網路數據(data,又稱為資料)急劇增加,網路設備需要不斷更新換代來支持複雜的協定需求,尤其各種隧道(tunnel)協定對網路邊緣設備的要求更甚,網路功能的智能擴展日益重要。
另一方面,隨著虛擬化(virtualization)的爆發,對頻寬的需求不斷倍增,這意味著由軟體執行網路協定站會給中央處理器(CPU)資源造成難以承受的負載,留給各應用程序的CPU資源將很少或所剩無幾,網路功能的硬體卸載勢在必行。
由此可見,現有的網路設備問題同時涉及軟體、硬體兩個層面,其中,前者面臨的是網路數據平面複雜化,後者面臨的則是網路接口頻寬摩爾化。
對於上述問題,現有的解决方法主要在於,關於軟體加速,具體作法有VPP結合數據面開發套件(Data Plane Development Kit,DPDK)的軟體優化加速方法,以及網路卡的高速串行計算機擴展總線標準(Peripheral Component Interconnect Express,PCIE)單根I/O虛擬化(Single Root Input/Output Virtualization,SR-IOV)技術;關於硬體加速,具體作法有專用積體電路(Application Specific Integrated Circuit,ASIC)實現常用的網路功能,以及現場可程式化門陣列(Field Programmable Gate Array,FPGA)的網路接口控制器(Network Interface Controller,NIC)可程式化網路功能。
然而,通過軟體優化實現,提升效果有限,仍會占用大量CPU的珍貴資源;通過硬體優化實現,通用網路卡受成本限制,難以實現ASIC與FPGA NIC。
綜合來說,軟體需要智能化,而由此達成靈活可程式化;硬體需要高性能的處理能力。因此,兼顧智能化與高性能,儼然已成為網路擴展需要解决的問題。
因此,本發明的技術即問題在於,通用網路卡在智能化前提下,要如何兼顧智能與性能。
有鑑於此,本發明旨在提供一種加入標記分類插件(plug-in,又稱為外掛程式)的向量包轉發優化方法,來達到智能化與高性能的兩全其美。
為達此目的,具體而言,根據本發明的一種觀點,提出一種向量包處理轉發方法。所述方法適用於轉發路徑。所述轉發路徑包括乙太網路入口、DPDK輸入端、入口標記分類插件、一或多個中間節點、Tx輸出端、出口標記分類插件、及乙太網路出口。所述向量包處理轉發方法包括:
對先前數據包(data packet)執行學習記錄模式以得到學習結果,在所述學習記錄模式中,使所述先前數據包通過整個所述轉發路徑;及
對後續數據包執行優化加速模式,在所述優化加速模式中,基於所述學習結果使所述後續數據包繞過所述轉發路徑的所述一或多個中間節點的其中幾個中間節點。
可選地,或較佳地,所述學習記錄模式包括:
由所述乙太網路入口接收所述先前數據包,所述先前數據包包括五元組;及
由所述DPDK輸入端基於所述先前數據包增加入口訊息,其中所述學習結果包括所述五元組及所述入口訊息。
可選地,或較佳地,所述學習記錄模式還包括:
由所述入口標記分類插件基於所述先前數據包的所述五元組產生所述先前數據包的雜湊(hash)值,其中所述學習結果包括所述雜湊值。
可選地,或較佳地,所述學習記錄模式還包括:
由所述入口標記分類插件儲存入口標記分類訊息至記憶體,其中所述入口標記分類訊息包括所述五元組、所述入口訊息及所述雜湊值,其中所述學習結果包括所述入口標記分類訊息。
可選地,或較佳地,所述學習記錄模式還包括:
由所述一或多個中間節點中的其中幾個中間節點處理所述先前數據包,並產生經處理數據包,所述經處理數據包包括出口標記分類訊息,其中所述學習結果包括所述出口標記分類訊息;
由所述出口標記分類插件儲存所述經處理數據包的所述出口標記分類訊息至所述記憶體;及
由所述出口標記分類插件將所述經處理數據包輸出至所述Tx輸出端。
可選地,或較佳地,所述出口標記分類訊息包括輔助訊息及下一跳節點訊息。
可選地,或較佳地,所述向量包處理轉發方法還包括:
由所述乙太網路入口接收後續數據包,所述後續數據包包括另一五元組;
由所述DPDK輸入端基於所述後續數據包增加另一入口訊息;及
由所述入口標記分類插件基於所述後續數據包產生所述後續數據包的另一雜湊值,並基於所述另一雜湊值存取所述記憶體。
可選地,或較佳地,若所述後續數據包的另一雜湊值不同於所述先前數據包的所述雜湊值,則所述入口標記分類插件要求所述後續數據包通過整個所述轉發路徑。
可選地,或較佳地,所述向量包處理轉發方法還包括:
由所述入口標記分類插件比對所述另一五元組與所述五元組,及比對所述另一入口訊息與所述入口訊息,其中,若所述五元組相等於所述另一五元組且所述入口訊息相等於所述另一入口訊息,則執行所述優化加速模式。
可選地,或較佳地,所述優化加速模式還包括:所述入口標記分類插件依照所述出口標記分類訊息的所述輔助訊息,將所述後續數據包修改成所述經處理數據包,並依據所述出口標記分類訊息的所述下一跳節點訊息將所述經處理數據包直接輸出至所述轉發路徑中的下一跳節點。
可選地,或較佳地,所述下一跳節點是所述Tx輸出端或所述一或多個中間節點中所述處理所述先前數據包的所述幾個中間節點後的一節點。
可選地,或較佳地,若所述另一五元組不等於所述五元組,或所述另一入口訊息不等於所述入口訊息,則所述入口標記分類插件要求所述後續數據包通過整個所述轉發路徑。
可選地,或較佳地,所述出口標記分類插件設定一段超時訊息,並將超時訊息連同所述出口標記分類訊息儲存至所述記憶體,所述超時訊息指出儲存在所述記憶體中的所述入口標記分類訊息及所述出口標記分類訊息的存活時間。
總的來說,在本發明的向量包轉發優化方法中,插入標記分類插件,通過執行學習記錄模式及執行優化模式,能够改善現有技術的不足,達到智能化與高性能的兩全其美。
下文將配合圖式並詳細說明,使本發明的其他目的、優點、及新穎特徵更明顯。
下提供本發明的不同實施例。這些實施例是用於說明本發明的技術內容,而非用於限制本發明的權利範圍。一實施例的一特徵可透過合適的修飾、置換、組合、分離以應用於其他實施例。
應注意的是,在本文中,除了特別指明者之外,具備“一”組件不限於具備單一的所述組件,而可具備一或更多的所述組件。
此外,在本文中,除了特別指明者之外,“第一”、“第二”等序數,只是用於區別具有相同名稱的多個組件,並不表示它們之間存在位階、層級、執行順序、或制程順序。一“第一”組件與一“第二”組件可能一起出現在同一構件中,或分別出現在不同構件中。序數較大的一組件的存在不必然表示序數較小的另一組件的存在。
所謂的“包括”、“包含”、“具有”、“含有”,是指包括但不限於此。
此外,在本文中,“系統”、“設備”、“裝置”、“模組”、或“單元”等用語,是指一電子組件或由多個電子組件所組成的一數位電路、一類比電路、或其他更廣義電路,且除了特別指明者之外,它們不必然有位階或層級關係。
此外,終端機或伺服器皆可包括上述組件,或以上述方式來實現。
(參考例)
圖1顯示一種簡化後向量包處理(Vector Packet Processing,VPP)轉發路徑圖。
向量包處理是由多個節點組成的包處理系統,其網路功能由所述多個節點實現,所述多個節點相互連接,並在當前節點决定下一跳節點,從而確定整個處理流程,亦即轉發路徑。
如圖1所示,向量包處理根據不同的協定類型與網路策略,數據包由乙太網路入口(eth01)10接收,依序通過數據面開發套件(DPDK)輸入端11、中間節點(如圖1中所示為X節點14)、Tx輸出端16,最後由乙太網路出口(eth02)20轉發出去,此即數據包的轉發路徑,其中,中間節點代表一種網路協定,當數據包通過中間節點時,由中間節點對數據包依據協定(protocol)進行、匹配、修改或過濾等操作。
在本參考例中,一般性地,X節點14可例如是濾波器、訪問控制列表(Access Control List,ACL)、L3、網路地址轉換(Network Address Translation,NAT)、隧道、IPSec或VxLAN等節點。而在下文中,將以X節點14為VxLAN節點的例子作說明,來與本參考例進行對照。此外,應注意的是,一般而言,向量包處理轉發路徑可能包含多個中間節點,而不僅只有一個,在圖1中只呈現一個X節點14,在此,中間節點的數目只是舉例而已,而不限於此。
圖2顯示本發明的一實施例的向量包處理轉發路徑圖。
本實施例是將上述圖1的參考例的簡化後轉發路徑(乙太網路入口10、DPDK輸入端11、X節點14、Tx輸出端16,乙太網路出口20)進行增修而得,在乙太網路入口10後定義包入口,在乙太網路出口20前定義包出口。接著,於包入口或包出口可分別插入入口標記分類插件(在圖2中顯示為分類In-Node)30及出口標記分類插件(在圖2中顯示為分類Out-Node)50。
入口標記分類插件30及出口標記分類插件50的功能及作用,在下文中會進一步闡述,在此,要特別說明的是,入口標記分類插件30較佳是盡可能設置於鄰近包入口,出口標記分類插件50較佳是盡可能設置於鄰近包出口,藉以達成本發明的減少數據包處理開銷,提高數據包轉發性能。因此,在圖2至圖5的例子中,入口標記分類插件30是設置在DPDK輸入端11之後,且出口標記分類插件50是設置在Tx輸出端16之前。
承上,如圖2所示,在本實施例的向量包處理轉發路經中,硬體架構包括乙太網路口10、DPDK輸入端11、入口標記分類插件30、作為中間節點的X節點14、出口標記分類插件50、Tx輸出端16及乙太網路出口20。
請繼續參考圖2,在圖2所示的向量包處理轉發路徑圖中,向量包處理轉發路經包括路徑Path1及路徑Path2,其中,路徑Path1是學習記錄模式的數據包處理路徑,路徑Path2則是優化加速模式的數據包處理路徑,這兩種模式的數據包處理路徑在下文中也會進一步闡述。
(學習記錄模式)
圖3顯示本發明的一實施例的向量包處理的學習記錄模式的路徑圖,及其分類訊息標記示意性範例。
請參考圖3,在學習記錄模式,最初,數據包DP1由乙太網路入口10接收,並被輸出至DPDK輸入端11,其中數據包DP1包括五元組(x1,y1,z1,p1,q1)的訊息。接著,DPDK輸入端11對數據包DP1打印(或廣義而言,增加)入口訊息IN_IF1,因此,在圖3中DPDK輸入端11輸出數據包DP1及入口訊息IN_IF1(圖中標識為“DP1+IN_IF1”)。入口訊息IN_IF1指出數據包DP1是經由哪個乙太網路入口輸入。在本實施例中,入口訊息IN_IF1的訊息為“eth01”。
雖然本實施例是使用五元組來實現,但這只是用於說明,並不用於限縮本發明。所屬技術領域人員可將五元組替換為三元組,或其他類似的通信訊息。
在本實施例中,在DPDK輸入端11之後提供有入口標記分類插件30,入口標記分類插件30會基於數據包DP1的五元組(x1,y1,z1,p1,q1)產生數據包DP1的雜湊值,例如,在本實施例中為“220”。數據包DP1的五元組(x1,y1,z1,p1,q1)、入口訊息IN_IF1及雜湊值合起來可作為本發明的“入口標記分類訊息”。
接著,入口標記分類插件30會儲存數據包DP1的入口標記分類訊息至分類訊息記憶體40。入口標記分類訊息如圖3左下邊表格所示。將數據包DP1的五元組(x1,y1,z1,p1,q1)轉換成雜湊值的益處是方便快速搜尋分類訊息的條目。但是,在其他實施例中,可不使用雜湊值而是直接使用數據包DP1的五元組(x1,y1,z1,p1,q1),同樣可找到分類訊息的條目;若其他類型的值可方便找到分類訊息的條目,則將數據包DP1的五元組(x1,y1,z1,p1,q1)轉換成所述其他類型的值亦無不可。
接著,數據包DP1與入口訊息IN_IF1被送往中間節點,在圖3中僅以一個X節點14為例,以便與圖1的參考例進行對照,並由X節點14對數據包DP1進行處理,如前所述,處理可包括依據協定(protocol)進行匹配、修改或過濾等操作,並產生經處理數據包DP1’。不過,經處理數據包DP1’依然伴隨著入口訊息IN_IF1,因此,在圖3中X節點14輸出經處理數據包DP1’及入口訊息IN_IF1(圖中標識為“DP1’+IN_IF1”)。此時,經處理數據包DP1’包括出口標記分類訊息,其中出口標記分類訊息包括隧道、轉發數據包修改、下一跳節點及輸出訊息(圖中標識為OUT_IF),且其中所述隧道及所述轉發數據包修改是輔助訊息。出口標記分類訊息如圖3中右下邊表格所示。
在此,將一個具體例子套用至本實施例,以數據包DP1為VxLAN的上行數據包,X節點14為VxLAN節點作為一種示意性說明。當VxLAN上行數據包被輸出至VxLAN節點,VxLAN節點通過VxLAN網路協定對VxLAN上行數據包進行處理,來產生經處理數據包VxLAN上行數據包。針對VxLAN上行數據包,一般需要加上多個位元組的VxLAN頭,所述多個位元組大於或等於50個位元組;此外,會經過隧道。因此,所述轉發數據包修改的訊息是所述多個位元組的VxLAN頭,及所述隧道的訊息為“是”。
本實施例是以X節點14為VxLAN節點作說明,因此輔助訊息包括所述隧道的訊息及所述轉發數據包修改的訊息。但,這只是用於說明,並不用於限縮本發明。所屬技術領域人員可視轉發路徑上的節點的網路協定類型使用不同的輔助訊息。
下一跳節點指出緊接在出口標記分類插件50後的第一個節點。據此,在本實施例中,下一跳節點的訊息為“Tx輸出端16”。輸出訊息OUT_IF指出數據包DP1是經由哪個乙太網路入口輸出。在本實施例中,輸出訊息OUT_IF的訊息為“eth02”。在其他實施例中,下一跳節點為想要繞過的節點的下一個節點,舉例來說,若X節點14與出口標記分類插件50之間存在另一節點,下一跳節點可以是所述另一節點,而不限於是Tx輸出端16。
回到圖3,數據包DP1在經由X節點14處理後,經處理數據包DP1’與入口訊息IN_IF1被輸出至出口標記分類插件50。出口標記分類插件50儲存經處理數據包DP1’的出口標記分類訊息至分類訊息記憶體40。
最後,出口標記分類插件50將經處理數據包DP1’輸出至Tx輸出端16,接著由乙太網路出口20轉發出去。
在一些實施例中,X節點14可具有出口標記分類插件50的功能,也就是,X節點14可提供出口標記分類訊息,並儲存出口標記分類訊息至分類訊息記憶體40。在此實施例中,可省略掉出口標記分類插件50。
另一方面,在一些實施例中,考慮到每段時間會接收到不同類型的流,且須有效利用分類訊息記憶體40的資源,出口標記分類插件50設定一段超時訊息(可先參考圖7),並將超時訊息連同出口標記分類訊息儲存至分類訊息記憶體40,超時訊息指出儲存在分類訊息記憶體中40的數據包DP1相關的訊息的存活時間。加入超時訊息能避免當節點拓樸結構改變時,仍採用與以往相同的加速方式的情况。舉例而言,超時時間可設置為30秒,如此,當停流超過30秒時,分類訊息記憶體40中的分類訊息會自動失效;此時,若再重啟數據包流,則會重新進行學習紀錄。
當收到數據包時,若分類訊息記憶體40沒有相關分類訊息,則須進行學習紀錄;反之,若分類訊息記憶體40有可用的相關分類訊息,則可進行優化加速。
(優化加速模式)
圖4顯示本發明的一實施例的向量包處理的優化加速模式的路徑圖,及其分類訊息標記示意性範例。
請參考圖4,由乙太網路入口10接收另一數據包DP2,有別於在圖3的實施例中的數據包DP1,另一數據包DP2包括另一五元組(x2,y2,z2,p2,q2)的訊息。接著,DPDK輸入端11對另一數據包DP2增加另一入口訊息IN_IF2,因此,在圖4中DPDK輸入端11輸出數據包DP2及入口訊息IN_IF2(圖中標識為“DP2+IN_IF2”)。
對於另一數據包DP2而言,實際情形可分成“可加速”及“不可加速”兩種情形,以下將先以圖4來說明“可加速”的情形。
當另一數據包DP2來到入口標記分類插件30時,入口標記分類插件30會基於另一數據包DP2的另一五元組(x2,y2,z2,p2,q2)產生數據包DP2的雜湊值,例如,在本實施例中為“220”。入口標記分類插件30基於數據包DP2的雜湊值“220”對分類訊息記憶體40進行存取。由於分類訊息記憶體40存有雜湊值“220”,入口標記分類插件30從分類訊息記憶體40取得與雜湊值“220”相關的數據包DP1的五元組(x1,y1,z1,p1,q1)及入口訊息IN_IF1。入口標記分類插件30會比對另一數據包DP2的另一五元組(x2,y2,z2,p2,q2)與數據包DP1的五元組(x1,y1,z1,p1,q1),同時也比對另一入口訊息IN_IF2與入口訊息IN_IF1。若五元組(x1,y1,z1,p1,q1)相等於另一五元組(x2,y2,z2,p2,q2)且所述入口訊息IN_IF1相等於所述另一入口訊息IN_IF2,則另一數據包DP2由入口標記分類插件30依照出口標記分類訊息的輔助訊息,將數據包DP2修改成經處理數據包DP1’,並依據出口標記分類訊息的下一跳節點將經處理數據包DP1’經由路徑Path2直接輸出至下一跳節點(即,Tx輸出端16)。在本實施例中,由於下一跳節點就是Tx輸出端16,故緊接著由乙太網路出口20轉發出去。
上文提到,入口標記分類插件30對五元組及入口訊息進行匹配,且基於出口標記分類訊息對匹配的另一數據包DP2做必要處理,必要處理例如包括隧道的加頭或去頭、NAT修改數據包、服務質量(Quality of Service,QoS)流分類等,藉此將數據包DP2修改成經處理數據包DP1’,並依據出口標記分類訊息所記載的下一跳節點將經處理數據包DP1’直接輸出至下一跳節點。
反之,針對“不可加速”的情形,若入口標記分類插件30判斷另一數據包DP2的雜湊值不同於先前數據包DP1的雜湊值,則入口標記分類插件30已可得知另一數據包DP2為不可加速,不會執行五元組及入口訊息的判斷,而直接判斷另一數據包DP2須執行學習記錄模式的完整步驟,呼應如上所述,將數據包的五元組轉換成雜湊值的益處是方便快速搜尋分類訊息的條目。
無論有無引進雜湊值,若後續數據包DP2的另一五元組(x2,y2,z2,p2,q2)不等於先前數據包DP1的五元組(x1,y1,z1,p1,q1),或者,另一入口訊息IN_IF2不等於入口訊息IN_IF1,則入口標記分類插件30同樣判斷另一數據包DP2須執行學習記錄模式的完整步驟。
雜湊值不同、五元組不匹配或入口訊息不匹配的情形即“不可加速”情形。由此可見,本發明的要旨在於,若另一數據包DP2的入口標記分類訊息不同於先前學習記錄的數據包DP1的入口標記分類訊息而進入優化加速模式,則另一數據包DP2就必須執行學習記錄模式的完整步驟。
圖5顯示本發明的另一實施例的向量包處理轉發路徑圖。圖6顯示本發明的另一實施例的向量包處理的學習記錄模式的路徑圖。圖7顯示本發明的另一實施例的分類訊息標記示意性範例。圖8顯示本發明的另一實施例的向量包處理的優化加速模式的路徑圖。
在先前圖1的參考例、以及圖2、圖3及圖4的實施例中,處理數據包的中間節點示意性地顯示為一個;然而,一般而言,向量包處理轉發路徑可能包括多個處理數據包的中間節點。因此,在本發明如圖5至圖8的另一實施例中,向量包處理轉發路徑包括更多中間節點。
具體而言,如圖5所示,本實施例的向量包處理的轉發路經中,架構包括乙太網路口10、DPDK輸入端11、入口標記分類插件30、乙太網路節點12、L2節點13、X節點14、Y節點15、出口標記分類插件50、Tx輸出端16及乙太網路出口20。在此,X節點、Y節點僅是代稱,舉例來說,X節點、Y節點可例如是濾波器、訪問控制列表(Access Control List,ACL)、L3、網路地址轉換(Network Address Translation,NAT)、隧道、IPSec、或VxLAN等節點。中間節點的數目亦可能視實際應用再增加或減少,而不限於是圖5所顯示的節點12至15。在圖5中,向量包處理轉發路經包括路徑Path1及路徑Path2,其中,路徑Path1是學習記錄模式的數據包處理路徑,路徑Path2則是優化加速模式的數據包處理路徑。
請參考圖6,圖6與圖5類似,但只顯示向量包處理的學習記錄模式的路徑以便觀察。
要注意的是,在學習記錄模式,數據包DP1將通過所有中間節點12至15,可能所有中間節點12至15都對數據包DP1進行處理,但也可能僅有其中某幾個中間節點對數據包DP1進行處理。例如,在數據包DP1是VxLAN上行數據包,而X節點14是VxLAN節點的情况中,VxLAN上行數據包仍然會通過乙太網路節點12、L2節點13、X節點14及Y節點15,然而僅有X節點14對VxLAN上行數據包進行處理,其他中間節點並不會對其進行處理,VxLAN上行數據包僅只是通過這些中間節點而已。
接著,請參考圖8,圖8與圖5類似,但只顯示向量包處理的優化加速模式的路徑以便觀察。在向量包處理的優化加速模式的路徑中,當另一數據包DP2來到入口標記分類插件30時,入口標記分類插件30會基於另一數據包DP2的另一五元組(x2,y2,z2,p2,q2)產生另一數據包DP2的雜湊值。由於另一數據包DP2的雜湊值與先前學習記錄的數據包DP1的雜湊值都是220,入口標記分類插件30會再比對另一數據包DP2的另一五元組(x2,y2,z2,p2,q2)與數據包DP1的五元組(x1,y1,z1,p1,q1)及另一數據包DP2的入口訊息與數據包DP1的入口訊息,而判斷皆為匹配(相等)後,進入優化加速模式。
在優化加速模式中,另一數據包DP2即可在入口標記分類插件30的引導下,經由路徑Path2,繞過多個中間節點直接輸出至Tx輸出端16。
如此一來,根據本發明,對通過本發明向量包處理流程的優化加速模式的數據包而言,其可繞過多個可繞過中間節點,從而減少數據包處理開銷,故可提高數據包轉發性能。
最後說明圖7的分類訊息,分類訊息可包括但不限於雜湊值、入口訊息(IN_IF)、五元組、隧道、轉發數據包修改、下一跳節點、輸出訊息(OUT_IF)、超時等訊息。作為特定五元組的雜湊值可快速找到分類訊息的條目。下一跳節點表示從入口標記分類插件30可直接到下一跳節點,而繞過中間多個節點。五元組可包括但不限於是源地址、目的地址、協定號、源埠、目的埠,亦可擴展包括更多訊息,例如可支持乙太網路層訊息等等。
總的來說,在本發明的向量包轉發優化方法中,插入標記分類插件,通過執行學習記錄模式及執行優化模式,能够改善現有技術的不足,達到智能化與高性能的兩全其美。
儘管本發明已透過多個實施例來說明,應理解的是,只要不背離本發明的精神及申請專利範圍所主張者,可作出許多其他可能的修飾及變化。
10:乙太網路入口
11:DPDK輸入端
12:乙太網路節點
13:L2節點
14:X節點
15:Y節點
16:Tx輸出端
20:乙太網路出口
30:入口標記分類插件
40:分類訊息記憶體
50:出口標記分類插件
Path1:路徑
Path2:路徑
圖1顯示一種簡化後向量包處理的路徑圖。
圖2顯示本發明的一實施例的向量包處理轉發路徑圖。
圖3顯示本發明的一實施例的向量包處理的學習記錄模式的路徑圖,及其分類訊息標記示意性範例。
圖4顯示本發明的一實施例的向量包處理的優化加速模式的路徑圖,及其分類訊息標記示意性範例。
圖5顯示本發明的另一實施例的向量包處理轉發路徑圖。
圖6顯示本發明的另一實施例的向量包處理的學習記錄模式的路徑圖。
圖7顯示本發明的另一實施例的分類訊息標記示意性範例。
圖8顯示本發明的另一實施例的向量包處理的優化加速模式的路徑圖。
10:乙太網路入口
11:DPDK輸入端
12:乙太網路節點
13:L2節點
14:X節點
15:Y節點
16:Tx輸出端
20:乙太網路出口
30:入口標記分類插件
40:分類訊息記憶體
50:出口標記分類插件
Path1:路徑
Path2:路徑
Claims (13)
- 一種向量包處理轉發方法,其特徵在於,所述方法適用於轉發路徑,所述轉發路徑包括乙太網路入口、DPDK輸入端、入口標記分類插件、一或多個中間節點、Tx輸出端、出口標記分類插件、及乙太網路出口,所述向量包處理轉發方法包括: 對先前數據包執行學習記錄模式以得到學習結果,在所述學習記錄模式中,使所述先前數據包通過整個所述轉發路徑;及 對後續數據包執行優化加速模式,在所述優化加速模式中,基於所述學習結果使所述後續數據包繞過所述轉發路徑的所述一或多個中間節點的其中幾個中間節點。
- 如請求項1所述的向量包處理轉發方法,其中,所述學習記錄模式包括: 由所述乙太網路入口接收所述先前數據包,所述先前數據包包括五元組;及 由所述DPDK輸入端基於所述先前數據包增加入口訊息,其中所述學習結果包括所述五元組及所述入口訊息。
- 如請求項2所述的向量包處理轉發方法,其中,所述學習記錄模式還包括: 由所述入口標記分類插件基於所述先前數據包的所述五元組產生所述先前數據包的雜湊值,其中所述學習結果包括所述雜湊值。
- 如請求項3所述的向量包處理轉發方法,其中,所述學習記錄模式還包括: 由所述入口標記分類插件儲存入口標記分類訊息至記憶體,其中所述入口標記分類訊息包括所述五元組、所述入口訊息及所述雜湊值,其中所述學習結果包括所述入口標記分類訊息。
- 如請求項4所述的向量包處理轉發方法,其中,所述學習記錄模式還包括: 由所述一或多個中間節點中的其中幾個中間節點處理所述先前數據包,並產生經處理數據包,所述經處理數據包包括出口標記分類訊息,其中所述學習結果包括所述出口標記分類訊息; 由所述出口標記分類插件儲存所述經處理數據包的所述出口標記分類訊息至所述記憶體;及 由所述出口標記分類插件將所述經處理數據包輸出至所述Tx輸出端。
- 如請求項5所述的向量包處理轉發方法,其中,所述出口標記分類訊息包括輔助訊息及下一跳節點訊息。
- 如請求項6所述的向量包處理轉發方法,其中,所述向量包處理轉發方法還包括: 由所述乙太網路入口接收後續數據包,所述後續數據包包括另一五元組; 由所述DPDK輸入端基於所述後續數據包增加另一入口訊息;及 由所述入口標記分類插件基於所述後續數據包產生所述後續數據包的另一雜湊值,並基於所述另一雜湊值存取所述記憶體。
- 如請求項7所述的向量包處理轉發方法,其中,若所述後續數據包的所述另一雜湊值不同於所述先前數據包的所述雜湊值,則所述入口標記分類插件要求所述後續數據包通過整個所述轉發路徑。
- 如請求項7所述的向量包處理轉發方法,其中,所述向量包處理轉發方法還包括: 由所述入口標記分類插件比對所述另一五元組與所述五元組,及比對所述另一入口訊息與所述入口訊息,其中,若所述五元組相等於所述另一五元組且所述入口訊息相等於所述另一入口訊息,則執行所述優化加速模式。
- 如請求項9所述的向量包處理轉發方法,其中,所述優化加速模式還包括:所述入口標記分類插件依照所述出口標記分類訊息的所述輔助訊息,將所述後續數據包修改成所述經處理數據包,並依據所述出口標記分類訊息的所述下一跳節點訊息將所述經處理數據包直接輸出至所述轉發路徑中的下一跳節點。
- 如請求項10所述的向量包處理轉發方法,其中,所述下一跳節點是所述Tx輸出端或所述一或多個中間節點中所述處理所述先前數據包的所述幾個中間節點後的一節點。
- 如請求項9所述的向量包處理轉發方法,其中,若所述另一五元組不等於所述五元組,或所述另一入口訊息不等於所述入口訊息,則所述入口標記分類插件要求所述後續數據包通過整個所述轉發路徑。
- 如請求項5所述的向量包處理轉發方法,其中,所述出口標記分類插件設定一段超時訊息,並將超時訊息連同所述出口標記分類訊息儲存至所述記憶體,所述超時訊息指出儲存在所述記憶體中的所述入口標記分類訊息及所述出口標記分類訊息的存活時間。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110147810A TWI789169B (zh) | 2021-12-21 | 2021-12-21 | 向量包處理轉發方法 |
US17/843,454 US20230198899A1 (en) | 2021-12-21 | 2022-06-17 | Method for fowarding vector packet processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110147810A TWI789169B (zh) | 2021-12-21 | 2021-12-21 | 向量包處理轉發方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI789169B true TWI789169B (zh) | 2023-01-01 |
TW202327316A TW202327316A (zh) | 2023-07-01 |
Family
ID=86670003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110147810A TWI789169B (zh) | 2021-12-21 | 2021-12-21 | 向量包處理轉發方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230198899A1 (zh) |
TW (1) | TWI789169B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326532B2 (en) * | 2016-08-05 | 2019-06-18 | Nxgen Partners Ip, Llc | System and method providing network optimization for broadband networks |
TW202034737A (zh) * | 2018-08-23 | 2020-09-16 | 美商阿爾克斯股份有限公司 | 在網路運算環境中的路由最佳化 |
US20210117360A1 (en) * | 2020-05-08 | 2021-04-22 | Intel Corporation | Network and edge acceleration tile (next) architecture |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837275B2 (en) * | 2006-02-09 | 2014-09-16 | International Business Machines Corporation | System, method and program for re-routing internet packets |
WO2009132578A1 (en) * | 2008-04-28 | 2009-11-05 | Huawei Technologies Co., Ltd. | Transparent bypass and associated mechanisms |
JP5621781B2 (ja) * | 2009-10-06 | 2014-11-12 | 日本電気株式会社 | ネットワークシステムとコントローラと方法とプログラム |
US9935829B1 (en) * | 2014-09-24 | 2018-04-03 | Amazon Technologies, Inc. | Scalable packet processing service |
US10218629B1 (en) * | 2014-12-23 | 2019-02-26 | Juniper Networks, Inc. | Moving packet flows between network paths |
US10873636B2 (en) * | 2018-07-09 | 2020-12-22 | Cisco Technology, Inc. | Session management in a forwarding plane |
US11252040B2 (en) * | 2018-07-31 | 2022-02-15 | Cisco Technology, Inc. | Advanced network tracing in the data plane |
US11044191B2 (en) * | 2019-04-24 | 2021-06-22 | Cisco Technology, Inc. | Coupling reactive routing with predictive routing in a network |
US20230116163A1 (en) * | 2021-09-29 | 2023-04-13 | Juniper Networks, Inc. | Opportunistic mesh for software-defined wide area network (sd-wan) |
-
2021
- 2021-12-21 TW TW110147810A patent/TWI789169B/zh active
-
2022
- 2022-06-17 US US17/843,454 patent/US20230198899A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326532B2 (en) * | 2016-08-05 | 2019-06-18 | Nxgen Partners Ip, Llc | System and method providing network optimization for broadband networks |
TW202034737A (zh) * | 2018-08-23 | 2020-09-16 | 美商阿爾克斯股份有限公司 | 在網路運算環境中的路由最佳化 |
US20210117360A1 (en) * | 2020-05-08 | 2021-04-22 | Intel Corporation | Network and edge acceleration tile (next) architecture |
Also Published As
Publication number | Publication date |
---|---|
US20230198899A1 (en) | 2023-06-22 |
TW202327316A (zh) | 2023-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811735B2 (en) | Use of stateless marking to speed up stateful firewall rule processing | |
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
US10778612B2 (en) | Variable TCAM actions | |
CN111371779B (zh) | 一种基于dpdk虚拟化管理系统的防火墙及其实现方法 | |
US8913613B2 (en) | Method and system for classification and management of inter-blade network traffic in a blade server | |
US11729300B2 (en) | Generating programmatically defined fields of metadata for network packets | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
US10397116B1 (en) | Access control based on range-matching | |
JP2000156713A (ja) | ネットワ―クスイッチング装置におけるコンテントベ―スの転送/フィルタリング方法 | |
US10616105B1 (en) | Extending virtual routing and forwarding using source identifiers | |
US10547547B1 (en) | Uniform route distribution for a forwarding table | |
US10819640B1 (en) | Congestion avoidance in multipath routed flows using virtual output queue statistics | |
US9819587B1 (en) | Indirect destination determinations to forward tunneled network packets | |
US11700202B2 (en) | Port extender with local switching | |
US9906443B1 (en) | Forwarding table updates during live packet stream processing | |
US9985885B1 (en) | Aggregating common portions of forwarding routes | |
US11126249B1 (en) | Power reduction methods for variable sized tables | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
US9055005B2 (en) | Virtual-port network switch fabric | |
US9258254B2 (en) | Virtual router and switch | |
US9232028B2 (en) | Parallelizing packet classification and processing engines | |
TWI789169B (zh) | 向量包處理轉發方法 | |
US10608937B1 (en) | Determining destination resolution stages for forwarding decisions | |
CN116319510A (zh) | 矢量包处理转发方法 | |
US6654372B1 (en) | Algorithm to bypass L4 processing in an internet protocol forwarding processor |