網路處理器
網路處理器
網路處理器(Network Processor,簡稱NP),根據國際網路處理器會議(Network Processors Conference)的定義:網路處理器是一種可編程器件,它特定的應用於通信領域的各種任務,比如包處理、協議分析、路由查找、聲音/數據的匯聚、防火牆、QoS等。
網路處理器器件內部通常由若干個微碼處理器和若干硬體協處理器組成,多個微碼處理器在網路處理器內部并行處理,通過預先編製的微碼來控制處理流程。而對於一些複雜的標準操作(如內存操作、路由表查找演演算法、QoS的擁塞控制演演算法、流量調度演演算法等)則採用硬體協處理器來進一步提高處理性能,從而實現了業務靈活性和高性能的有機結合。
基於X86架構的防火牆,由於CPU處理能力和PCI匯流排速度的制約,在實際應用中,尤其在小包情況下,這種結構的千兆防火牆遠遠達不到千兆的轉發速度(64位元組包長時,雙向轉發速率一般為百分之二十以下),難以滿足千兆骨幹網路的應用要求。
採用NP架構的防火牆,各種演演算法可以通過硬體實現,在實現複雜的擁塞管理、隊列調度、流分類和QoS功能的前提下,還可以達到極高的查找、轉發性能,實現“硬轉發”。
純硬體的ASIC防火牆缺乏可編程性,這使得它缺乏靈活性從而跟不上防火牆功能的快速發展。雖然現代的ASIC技術提高了可編程性,但從開發難度、開發成本和開發周期方面看,仍然困難重重。
NP完全支持編程,編程模式簡單,一旦有新的技術或者需求出現,可以很方便地通過微碼編程進行實現。提供了更快的技術、功能跟進和更加靈活的擴展能力,特別是在新規格、新標準的支持上。
網路處理器(NP)是專門為處理數據包而設計的可編程處理器,能夠直接完成網路數據處理的一般性任務。硬體體系結構大多採用高速的介面技術和匯流排規範,具有較高的I/O能力,包處理能力得到了很大提升。網路處理器一般具有以下特點:
● 并行處理器: 採用多內核并行處理器結構。片內處理器按任務大致分為核心處理器和轉發引擎。
● 專用硬體協處理器: 對要求高速處理的通用功能模塊採用專用硬體實現以提高系統性能。
● 專用指令集: 轉發引擎通常採用專用的精簡指令集,並針對網路協議處理特點優化。
● 分級存儲器組織: NP存儲器一般包含多種不同性能的存儲結構,對數據進行分類存儲以適應不同的應用目的。
● 高速I/O介面: NP具有豐富的高速I/O介面,包括物理鏈路介面、交換介面、存儲器介面、PCI匯流排介面等。通過內部高速匯流排連接在一起,提供很強的硬體并行處理能力。
● 可擴展性: 多個NP之間還可以互連,構成網路處理器簇,以支持更為大型高速的網路處理。從網路處理器以上特點可以看出,與通用處理器相比,網路處理器在網路分組數據處理上具有明顯的優勢。
NP晶元都是由國外廠商設計製造的,從體系結構上主要分為兩大類:
Intel
一類是以Intel 的IXP系列產品為代表,分為控制和處理(或稱數據)兩個平面。如Intel公司的IXP1200,控制平面是一個ARM CORE,負責維護系統信息和協調處理部分工作,處理平面由多個微引擎(Micro Engine)和其他專用硬體組成,負責利用控制平面下發的微代碼和命令,直接處理網路數據。這類產品在對數據包進行簡單過濾時性能較好,但是由於體系結構限制,尤其是微代碼的開發相對複雜,導致靈活性較差,難以滿足複雜多變的市場需求,一般適合3層(IP層)及以下網路數據的處理。
SiByte
另一類產品以 SiByte的Mercurian系列產品為代表,它基於MIPS CPU設計,如SB1250。它一方面保持了基於通用CPU設計的靈活性,另一方面通過SOC(System On Chip)的方式消除了傳統CPU、匯流排、設備之間帶寬的瓶頸問題。這類產品靈活性較強,易於開發、升級和維護,適於構建速度可與專用ASIC相媲美的、完全可編程的網路處理平台。
提供NP晶元的廠家有很多,基本上都符合NPF指定的規範。國內使用比較廣泛的則是Intel公司的 IXP xxx系列,主要包括IXP4xx、IXP12xx、IXP24xx、IXP28xx等。
IXP系列NP處理器從體系結構上看基本上都一樣,都是由一個RISC處理器加一個微引擎構成的。其中,RISC處理器主要用於控制微引擎的運行,所以又稱為控制層面;微引擎完成對網路數據包的處理,以實現高性能,所以又稱為數據層面。不同IXP系列處理器的RISC型號和主頻不同,微引擎的個數也有所不同,在性能上也有很大差別。
IXP4xx 的市場定位主要在中低端市場,因此基於IXP4xx晶元做出的防火牆也主要定位在中低端市場中。這裡需要特別提一下IXP425,它內嵌了一個加密引擎,支持一些公開的密碼演演算法,如3DES、AES、MD5、SHA1,因此,許多安全廠商會使用它生產低端的VPN或防火牆。不過,4xx系列晶元產品並不能進行微碼編程,而Intel預置的微碼又沒有完成FW/VPN的處理,使得該晶元所對應的產品對IP報文的處理要通過 533MHz的Xscale來處理的,因而在性能上並沒有什麼優勢。這可能也是一些國內廠商採取變產品不變價格的策略的原因。
IXP12xx 從12xx系列開始已經可以讓軟體開發人員根據不同的應用定製微引擎上的微碼,以實現不同的功能。不過由於IXP12xx其微引擎只有6個,每個微引擎上可以存儲條2k×32位的指令,所以該系列NP晶元只能用來做簡單的包轉發處理和QoS處理,如果用作較為複雜的防火牆處理則會顯得力不從心了。因此,基於該系列NP晶元的防火牆要麼性能不高,要麼功能簡單。
IXP24xx 從2003年開始,Intel公司推出了IXP24xx系列的網路處理器,它在性能上有了質的變化,開發起來也要複雜得多。使用它們做出的防火牆可能在單純包轉發上到達線速。
IXP28xx IXP28xx的NP處理器從性能上比IXP24XX的性能又增加了很大,單從晶元的性能指標上看,IXP28xx比IXP24xx更有可能做出千兆線速的網路安全設備。不過,由於IXP2800板卡的設計要比IXP2400板卡設計要更加複雜,市場上還沒有能夠支持它得工板。
國內有不少廠商推出了低端基於INTEL IXP 425晶元的NP防火牆,面向百兆級用戶。但NP最大的優點在於在高端,425晶元百兆上的處理能力沒有同級別X86防火牆性能高。具體可以參考 INTEL官方網站的425晶元的技術白皮書規格。而基於2400晶元的高端NP產品代表了業界的最高性能。國內最先推出的神州數碼DCFW-1800E -NP產品在千兆環境下的小包雙向吞吐率可以達到93%以上,真正的實現了骨幹網路的高速安全。