曾小寶,李曉鋒,宋 銳,葉 倩
(張家界航空工業職業技術學院,張家界 427000)
傳統的基于通用CPU的軟件方式處理方法已無法滿足當前快速發展的網絡帶寬需求。FPGA是一種現場可編程的邏輯陣列,一種硬件電路,并非軟件。FPGA硬件的并行性、可編程性、高速性等特征,能滿足高速網絡處理的需求。例如它的可編程性可以靈活的滿足實時改變的要求,為更新升級帶來便利。部分FPGA芯片內部還集成了嵌入式軟核和硬核,FPGA不但可以處理高速的邏輯運算還可實現較為復雜的軟件功能,采用FPGA將對下一代網絡的研究提供一個重要的手段,現在較火熱的SDN技術的底層部分就需要FPGA硬件的支撐,FPGA在下一代網絡的自適應性、可控性、可管性等方面都將發揮重要的作用,在網絡流量分類用FPGA處理將是一個發展方向。
基于多片FPGA的高速網絡流量分類方法的設計框圖如圖1所示,首先從網絡流數據的采集,送給流量轉發策略模塊,此模塊根據最后分類結果經機器學習模塊來高速轉發策略。轉發策略根據數據流字節長度不同轉發到不同的分類器,所有的分類器、轉發策略模塊、機器學習模塊都是基礎于FPGA硬件實現,可以線速處理需求。

圖1 多片FPGA分類器實現框圖
(1)網絡數據采集模塊:負責從網絡上采集網絡數據,接收到以太網幀數據,先在幀數據前端添加前導碼,如果需要則向幀末添加填充字節以保證滿足最小幀長的要求,然后添加幀校驗序列,相反接收引擎需要移去前導碼,另外需要進行差錯檢測。
(2)網絡流量轉發策略模塊:接收網絡數據采集模塊的網絡流以及機器學習模塊給出的調整參數去更新轉發策略表,再對調整后的策略下發到各個分類器,各個分類器之間也可以相互通信,以達到負載均衡的目的,有效的調整各個分類器的工作任務,各分類器利用FPGA實現可達線速處理。
(3)分類器組模塊:各分類器是工作在并行方式下,可有效提高處理效率,各分類器接收的流量依據數據流長度,字節長度等進行調配。各分類器都是采用FPGA來實現,由于FPGA硬件的并行性,可滿足線速處理要求。
(4)機器學習模塊:首先在機器學習模塊中建立有最優參數庫,在累積學習的過程中不斷的優化,經驗不斷的累積,與分類器組構成一個閉環控制系統,開環控制是FPGA實現的分類器組的硬件加速,反饋環節是由機器學習模塊實現的軟件處理方式,采用這種軟硬件協同工作方式,可達到較好的分類效果。
本文設計了基于機器學習的多片FPGA的網絡流量分類系統,采用多片FPGA分別實現多個分類器,各分類器是硬件并行工作方式,有利于滿足萬兆網需求。采用軟硬件協同方式,硬件負責線速處理,軟件方式負責數據量較大,需要存儲空間大的模塊,機器學習不斷累積達到最優的分類效果。隨著FPGA性能的提升完全能夠適應帶寬的不斷升級,將達到較好的分類效果。