基於FPGA硬體並行流水線的報文解析方法及其裝置與流程
2023-07-20 06:25:41
本發明屬於網絡通信技術領域,特別涉及一種基於fpga硬體並行流水線的報文解析方法及其裝置。
背景技術:
龐大的網際網路用戶、新應用的不斷湧現及快速增長的網絡帶寬導致ip骨幹網內網絡業務急劇增加,骨幹路由器每秒需要轉發的報文數量也隨之劇增,如何提高路由器的ip轉發處理能力直接影響著我國網際網路的發展狀況。作為路由器進行ip轉發處理的基礎,靈活的報文解析技術可以方便地構建底層異構物理網絡拓撲的連接,實現不同協議承載的數據報文能夠在網際網路中快速的傳輸,打破傳統網絡固化封閉的模式,提升鏈路資源的利用率,降低基礎網絡建設成本,進而有力推進網絡基礎設施建設。
為了能夠實時線速地處理海量的業務,高轉發性能的路由器是必不可少的。例如,現今骨幹網絡互聯的核心路由器的接口速率已經達到了40gbps(oc-768),100gbps(oc-1920),甚至400gbps(oc-7680)。這樣的鏈路速率要求路由器等網絡節點設備每秒鐘解析並轉發處理千萬個以上的數據報文,同時由於網絡流量工程(trafficengineering)、虛擬專用網技術(virtualprivatenetwork,vpn)的發展,大量可嵌套夾層協議出現,極大加劇了高速路由器解析數據報文的難度。針對這一情況,cisco設計了可以線速處理40gbps鏈路速率的高速路由器,支持至少2層虛擬區域網協議(virtuallocalareanetwork,vlan)和4層多協議標籤交換協議(multi-protocollabelswitching,mpls)的協議解析;juniper也生產了可以支持2層vlan和5層mpls協議解析的高速路由器,但是在遇到複雜的多層協議嵌套時,兩者都無法通過可編程或可重構技術實現報文協議的靈活解析。而且隨著新技術和新應用的不斷湧現,用戶對網絡的應用需求也更加多樣化,無論公有或是私有網絡的構建,都需要路由器的報文解析能力能夠隨著網絡需求的變化動態調整,進而滿足各種網絡服務對基礎網絡的需求。因此,面向核心路由器ip轉發的高速報文解析技術已經逐漸發展成為網際網路發展的新瓶頸。在報文解析中,頻率越高解析能力越強,頻率較低則報文解析能力越弱。在不同環境,不同時間段,網絡流量大小也不同,但是設備報文解析是卻仍按照特定的頻率來進行解析,不能根據網絡中實際傳輸報文的大小進行動態調整,造成大量的資源和功率浪費。
技術實現要素:
針對現有技術中的不足,本發明提供一種基於fpga硬體並行流水線的報文解析方法及其裝置,以高速並行流水線結構為基礎,提高報文解析處理的速率,以流量檢測來動態改變工作頻率,大大降低系統功耗開銷。
按照本發明所提供的設計方案,一種基於fpga硬體並行流水線的報文解析方法,fpga硬體並行流水線包含多級fpga可編程硬體流水線,每級fpga可編程硬體流水線包含存儲單元和邏輯處理單元,存儲單元用於存放具備協議解析能力的標準化的協議解析樹節點,邏輯處理單元用於控制數據報文順序的查找並完成數據報文的協議解析,其中,協議解析節點中包括協議識別規則及子節點指針;基於fpga硬體並行流水線的報文解析方法包含如下內容:
測量網絡接口下實時數據流的流量參數;並將數據報文分配到並行fifo隊列中等待處理;
根據流量參數動態選取解析時鐘頻率;並提取前端五元組信息,包含源ip、目的ip、源埠、目的埠及協議欄位;
根據選取的解析時鐘頻率進行多級流水線報文解析,若協議報文解析正常,則通過依次輪詢各個流水線進行協議報文輸出,否則,將未能識別的協議報文進行異常分析,並調整調度後進行協議報文輸出。
上述的,多級流水線報文解析,包含如下內容:首先,查找存儲單元中的協議識別規則,根據協議識別規則判定協議類型;然後,邏輯處理單元通過控制數據報文順序進行報文解析,子節點指針中的子節點用來標識下一個待處理的協議解析節點在流水線中的位置。
上述的,將未能識別的協議報文進行異常分析,還包含:通過在線編程解析對流水線解析能力進行調整。
優選的,在線編程解析,包含如下內容:根據未能識別的協議報文的解析過程,生成具備協議識別能力的協議節點,將該協議節點均衡映射到流水線上,同時建立報文解析關聯;將指針節點標識下一個待處理的協議解析節點。
上述的,通過網絡流量速率檢測器測量網絡接口下實時數據流的流量大小。
上述的,將數據報文按照均勻概率分配到並行fifo隊列中等待處理,並行fifo隊列之間相互獨立完成數據報文到達速率與解析速率的匹配。
上述的,按照與到達次序一致的協議報文輸出順序進行協議報文輸出。
一種基於fpga硬體並行流水線的報文解析裝置,包含:流量測評模塊、並行隊列處理模塊、解析頻率選取模塊、五元組提取模塊、報文解析模塊、異常分析模塊及報文輸出模塊,
流量測評模塊,用於測量網絡接口下實時數據流的流量參數,並將該流量參數反饋至解析頻率選取模塊;
並行隊列處理模塊,用於將數據報文按照均勻概率分配到並行fifo隊列中等待處理,並行fifo隊列之間相互獨立完成數據報文到達速率與解析速率的匹配;
解析頻率選取模塊,用於根據流量測評模塊反饋的流量參數動態選取解析時鐘頻率;
五元組提取模塊,用於提取前端五元組信息,包含源ip、目的ip、源埠、目的埠及協議欄位;
報文解析模塊,包含多級fpga可編程硬體流水線單元,多級fpga可編程硬體流水線單元根據解析頻率選取模塊選取的解析時鐘頻率進行多級流水線報文解析,並將解析結果相應反饋至異常分析模塊或報文輸出模塊;
異常分析模塊,用於根據報文解析模塊的反饋對未能識別協議報文進行異常分析,並將異常分析後的協議報文推送至報文輸出模塊;
報文輸出模塊,用於接收報文解析模塊及異常分析模塊反饋的報文數據,通過依次輪詢報文解析模塊中的各個流水線單元,按照與報文到達次序一致的順序進行協議報文輸出。
上述的報文解析裝置中,多級fpga可編程硬體流水線單元中,每級fpga可編程硬體流水線均包含存儲單元和邏輯處理單元,存儲單元用於存放具備協議解析能力的標準化的協議解析樹節點,邏輯處理單元用於控制數據報文順序的查找並完成數據報文的協議解析,其中,協議解析節點中包括協議識別規則及子節點指針,協議識別規則用於判定協議類型,子節點指針中的子節點用於標識下一個待處理的協議解析節點在流水線中的位置。
上述的報文解析裝置中,所述的異常分析模塊還包含在線編程單元,所述的在線編程單元用於根據未能識別協議報文的解析過程,生成具備協議識別能力的協議節點,將該協議節點映射到流水線中並同時建立解析關聯,指針節點標識下一個待處理的協議解析節點。
本發明的有益效果:
本發明基於fpga並行流水線查找實現高速報文解析處理,並通過實時檢測系統中流量的大小,動態改變系統工作頻率,進而提供低功耗的高速報文解析功能;解決現有的傳統報文解析技術中頻率越高解析能力越強,頻率較低報文解析能力越弱;及在不同環境,不同時間段,網絡流量大小不同,但是設備報文解析是卻仍按照特定的頻率來進行解析,不能根據網絡中實際傳輸報文的大小進行動態調整而造成大量的資源和功率浪費等問題,可以方便地構建底層異構物理網絡拓撲的連接,實現不同協議承載的數據報文能夠在網際網路中快速的傳輸,打破傳統網絡固化封閉的模式,提升鏈路資源的利用率,降低基礎網絡建設成本,進而有力推進網絡基礎設施建設。
附圖說明:
圖1為本發明的方法流程示意圖;
圖2為本發明實施例中報文解析實現原理圖;
圖3為本發明實施例中流水線解析流程示意圖;
圖4為本發明實施例中在線編程示意圖;
圖5為本發明的裝置示意圖。
具體實施方式:
為使本發明的目的、技術方案和優點更加清楚、明白,下面結合附圖和技術方案對本發明作進一步詳細的說明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中的特徵可以相互任意組合。
實施例,參見圖1和2所示,一種基於fpga硬體並行流水線的報文解析方法,fpga硬體並行流水線包含多級fpga可編程硬體流水線,每級fpga可編程硬體流水線包含存儲單元和邏輯處理單元,存儲單元用於存放具備協議解析能力的標準化的協議解析樹節點,邏輯處理單元用於控制數據報文順序的查找並完成數據報文的協議解析,其中,協議解析節點中包括協議識別規則及子節點指針;該報文解析方法實現過程包含如下內容:
101、測量網絡接口下實時數據流的流量參數;並將數據報文分配到並行fifo隊列中等待處理;
102、根據流量參數動態選取解析時鐘頻率;並提取前端五元組信息,包含源ip、目的ip、源埠、目的埠及協議欄位;
103、根據選取的解析時鐘頻率進行多級流水線報文解析,若協議報文解析正常,則通過依次輪詢各個流水線進行協議報文輸出,否則,將未能識別的協議報文進行異常分析,並調整調度後進行協議報文輸出。
所述方法還可以包括下述特點:
進一步地,多級流水線報文解析,參見圖3所示,包含如下內容:首先,查找存儲單元中的協議識別規則,根據協議識別規則判定協議類型;然後,邏輯處理單元通過控制數據報文順序進行報文解析,子節點指針中的子節點用來標識下一個待處理的協議解析節點在流水線中的位置。
進一步地,將未能識別的協議報文進行異常分析,還包含:通過在線編程解析對流水線解析能力進行調整。
進一步地,在線編程解析,參見圖4所示,包含如下內容:根據未能識別的協議報文的解析過程,生成具備協議識別能力的協議節點,將該協議節點均衡映射到流水線上,同時建立報文解析關聯;將指針節點標識下一個待處理的協議解析節點。
進一步地,通過網絡流量速率檢測器測量網絡接口下實時數據流的流量大小。
進一步地,將數據報文按照均勻概率分配到並行fifo隊列中等待處理,並行fifo隊列之間相互獨立完成數據報文到達速率與解析速率的匹配。
進一步地,按照與到達次序一致的協議報文輸出順序進行協議報文輸出。
本發明實施例還提供一種基於fpga硬體並行流水線的報文解析裝置,包含:流量測評模塊、並行隊列處理模塊、解析頻率選取模塊、五元組提取模塊、報文解析模塊、異常分析模塊及報文輸出模塊,
流量測評模塊,用於測量網絡接口下實時數據流的流量參數,並將該流量參數反饋至解析頻率選取模塊;
並行隊列處理模塊,用於將數據報文按照均勻概率分配到並行fifo隊列中等待處理,並行fifo隊列之間相互獨立完成數據報文到達速率與解析速率的匹配;
解析頻率選取模塊,用於根據流量測評模塊反饋的流量參數動態選取解析時鐘頻率;
五元組提取模塊,用於提取前端五元組信息,包含源ip、目的ip、源埠、目的埠及協議欄位;
報文解析模塊,包含多級fpga可編程硬體流水線單元,多級fpga可編程硬體流水線單元根據解析頻率選取模塊選取的解析時鐘頻率進行多級流水線報文解析,並將解析結果相應反饋至異常分析模塊或報文輸出模塊;
異常分析模塊,用於根據報文解析模塊的反饋對未能識別協議報文進行異常分析,並將異常分析後的協議報文推送至報文輸出模塊;
報文輸出模塊,用於接收報文解析模塊及異常分析模塊反饋的報文數據,通過依次輪詢報文解析模塊中的各個流水線單元,按照與報文到達次序一致的順序進行協議報文輸出。
所述裝置還可以包含下述特點:
進一步地,多級fpga可編程硬體流水線單元中,每級fpga可編程硬體流水線均包含存儲單元和邏輯處理單元,存儲單元用於存放具備協議解析能力的標準化的協議解析樹節點,邏輯處理單元用於控制數據報文順序的查找並完成數據報文的協議解析,其中,協議解析節點中包括協議識別規則及子節點指針,協議識別規則用於判定協議類型,子節點指針中的子節點用於標識下一個待處理的協議解析節點在流水線中的位置。
進一步地,所述的異常分析模塊還包含在線編程單元,所述的在線編程單元用於根據未能識別協議報文的解析過程,生成具備協議識別能力的協議節點,將該協議節點映射到流水線中並同時建立解析關聯,指針節點標識下一個待處理的協議解析節點。
以在線視頻直播應用為例,具體的來說明報文解析的工作過程,首先使用流量測評模塊測得網絡接口下視頻數據流的速率為500mbps,同時將將數據流按照均勻的概率分配到並行fifo中等待處理,並將測得的參數反饋給解析頻率選取模塊,即頻率選擇器。然後,頻率選擇器根據反饋來的參數判斷該參數所對應報文解析的頻率,該流量參數在300-600mbps的取值範圍中,對應的報文解析頻率為200mhz。若流量參數在600-900mbps,則對應的報文解析頻率為220mhz。同時提取出前段數據流中的五元組信息,包含源ip、目的ip、源埠、目的埠及協議欄位。接著,所選取的報文解析時鐘頻率200mhz進行多級流水線報文解析,具體如下:(1)若報文解析正常,則通過依次輪詢的各個流水線進行協議報文輸出。其中每級fpga可編程硬體流水線均包含存儲單元和邏輯處理單元,存儲單元用於存放具備協議解析能力的標準化的協議解析樹節點,邏輯處理單元用於控制數據報文順序的查找並完成數據報文的協議解析,其中,協議解析節點中包括協議識別規則及子節點指針,協議識別規則用於判定協議類型,子節點指針中的子節點用於標識下一個待處理的協議解析節點在流水線中的位置。(2)若報文解析不正常,將未能識別的協議報文進行異常分析,生成具備協議識別能力的協議節點,將該協議節點均衡映射到流水線上,同時建立報文解析關聯,將指針節點標識下一個待處理的協議解析節點,並調整調度後進行協議報文輸出。最後,接收多級流水線報文解析後的報文數據,通過依次輪詢報文解析模塊中的各個流水線單元,按照與報文到達次序一致的順序進行協議報文輸出。
本發明基於fpga並行流水線查找來實現高速報文解析處理,並通過實時檢測系統中流量的大小,動態改變系統工作頻率,進而提供低功耗的高速報文解析功能。流量測評模塊用來檢測進入系統中流量的大小;解析頻率選取模塊根據流量測評模塊中實時流量的大小來動態調整解析工作的頻率;並行隊列處理模塊把報文概率均勻的分配到並行fifo中等待處理,並行fifo之間相互獨立,共同完成報文到達速率和報文解析處理速率的匹配;五元組提取模塊在前端處理等待隊列模塊中提取五元組(源ip,目的ip,源埠,目的埠,協議欄位);報文解析模塊通過多級並行流水線進行報文解析;異常分析模塊處理報文解析模塊中未能識別的協議報文,並將進一步分析後的報文推送回報文輸出模塊,在報文輸出模塊中進行報文輸出的調度調整後輸出,同時將未識別報文的解析結果反饋到在線編程單元中,通過在線可編程解析控制對流水線解析能力進行實時調整;報文輸出模塊是報文解析模塊與異常分析模塊的後級處理單元,通過依次輪詢並行流水線的各個窗口並輸出報文,盡力保證解析後報文輸出順序和進入時一致。與傳統的報文解析技術進行對比分析,發現傳統的報文解析技術無法實時動態的調整系統工作頻率,導致功耗的浪費;本發明以高速並行流水線結構設計為研究基礎,進一步提高報文解析處理的速率,以流量檢測來動態改變工作頻率,大大降低系統功耗開銷。
本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬體完成,所述程序可以存儲於計算機可讀存儲介質中,如:只讀存儲器、磁碟或光碟等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現,相應地,上述實施例中的各模塊/單元可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。本發明不限制於任何特定形式的硬體和軟體的結合。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本申請。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或範圍的情況下,在其它實施例中實現。因此,本申請將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。