瀏覽人次:【4963】
封包處理(Packet Processing)是指針對在數位通訊與網路設備上傳送的資料封包進行處理。它是我們目前經常聽到的網路處理的重要項目。市面上有許多種半導體元件具有處理封包的能力。封包處理不僅發生在網路的核心,亦出現在存取/端點如(圖一)。網路設備的位置及服務供應商的需求,會影響需要的處理數量與種類、線路速度以及功能內容。這些因素成為判斷封包處理適切與否的關鍵,同時也是選擇半導體元件的依據。
《圖一 網路資料封包傳遞流程》 |
處理封包作業
業界所認定網路處理涵蓋極多的作業,其定義亦不斷衍生與變更。在這種前提下,為避免在討論時對封包處理的定義產生混淆,我們對網路處理暫時採用以下定義。網路處理(封包處理)包括以下五種在典型介面卡上常見的基本功能如(圖二):(1)封包拆裝與組裝;(2)封包分類;(3)封包修改;(4)流量管理;(5)排程與策略管理。另外,安全處理控制這兩項功能亦被視為網路處理的一部份。
《圖二 典型介面卡上網路處理的基本功能》 |
設計人員通常認為封包處理(Packet Processing)的定義僅涵蓋前五項功能,而所有七項功能則是網路處理(Network Processing)的定義。在本文中我們將不採取上述這種區分法,並將網路處理與封包處理等同視之,兩者皆涵蓋所有七項功能。但我們須將網路處理與網路處理器(Network Processors;NPs)加以區別。網路處理是指上述的功能,而網路處理器是指執行網路處理作業的半導體元件。
數據平面與控制平面處理
封包處理包括數據平面處理以及控制平面處理(Data Plane & Control Plane Processing)。數據平面處理是處理一般的數據封包,而控制平面處理則涉及例外狀況處理以及常式演算、監視統計、供應策略規則以及處理各種網路管理功能。
數據平面處理有不同的模式,而半導體元件在進行這些作業時亦有不同的方法;我們將詳細地加以介紹。在現今大多數的數據平面處理半導體都含有一或多組嵌入型處理器,負責控制處理與管理的作業。
像是PowerPC與MIPS處理器之類的原生型RISC架構在控制平面處理方面,其優點是能運用結合多年使用者經驗所開發的先進軟體工具。但這些處理器若沒有多重處理器或硬體加速方案的支援,在面臨許多非正常封包或複雜的管理功能時,就會很快產生過載的窘境。
封包處理的多種模式
在持續演進的網路市場中,由新技術與商業創新所構成的變化是唯一永久不變的常數。因此,爭逐市場的業者須迅速因應變化的腳步,維持低成本以維持高獲利水準。業者欲達到這項目標,必須從固定式解決方案轉為改用可編程解決方案,支援網路設備所需的封包處理作業如(圖三) 所示,封包處理有多種模式,依半導體使用情形而言,這些模式大致可區分為固定功能型解決方案以及可編程解決方案。
《圖三 網路設備封包處理作業》 |
固定與可編程裝置在封包處理上的優點與處理應用程式時的優點是相同的。(圖四)顯示每種固定功能/可編程元件在效能/產品上市時效方面的各種優點。所有市面上的可編程方案中,可分為兩種主要類型-網路處理器(Network Processors)與FPGA。NP與FPGA都具備可編程的特性。NP提供以軟體為中心的編程能力,而FPGA則提供以硬體為中心的編程能力。
《圖四 封包處理裝置上市時程/效能比》 |
除了以上三種主要分類外,還有三種特殊記憶體(SDRAM、SRAM、CAM以及最新的FCRAM)與ASSPs(Application Specific Standard Products;特殊應用標準產品)被用來支援各種裝置。市場上亦出現多種立即可用的ASSP,提供各種協同處理功能協助提升效能並解決封包處理的效率瓶頸。網路處理ASSP市場中有許多屬於上述三種模式的裝置,分別提供不同的效能組合。當系統中增加協同處理器的數量以及支援元件時,應用的彈性就成為重要的考量因素。然而,若要儘快將產品推入市場,就無法避免須使用協同處理器。關鍵在於如何在不犧牲上市時效的條件下,儘可能減少協同處理器的數量並延長產品在市場上的存活時間。
ASIC
ASICs能為所有固定的功能提供充裕的效能,但須犧牲部份的彈性與擴充性。它們有較高的非重置成本(NRE)以及較長的設計週期,導致上市速度較緩慢並影響產品的獲利能力。然而,ASIC在量產型產品方面擁有成本效益,若產品不會受市場變化的影響,則ASIC是相當理想的選擇方案。不幸的是,市場上唯一不變的就是變化。在控制平面處理上,ASIC閘路在處理封包例外狀況(極少發生的狀況)時須付出相當昂貴的成本。ASIC已逐漸被全面取代,網路業界正改用各種可編程方案。
RISC(網路處理器)
在這類模式中,RISC處理器架構負責封包處理的工作。支援這種模式的裝置稱為網路處理器,其功能可透過軟體進行編程。網路處理器可發展成各種立即可用的裝置,應用在網路設備時可提供充裕的彈性、擴充性以及效能。許多不同規模的半導體廠商皆已搶攻這塊市場,推出各種支援全線速(wire speed)的最佳化嵌入RISC CPU,如(圖五)所示,達到可編程以及類似ASIC的固定型電路,提供各項常見的封包處理功能。最理想的模式是以固定式電路處理常見的Layer 2/Layer 3功能,而由RISC引擎負責主要的處理作業。
《圖五 RISC網路處理器架構》 |
內建於網路處理器中的多組處理器引擎會根據廠商的需求建置成不同的架構,以降低關鍵通道的延遲。這些配置如(圖六)所示。
管線化(Pipelined):多組最佳化的處理器以序列模式配置,各自負責處理一組子作業。
超純量(Superscalar):多組最佳化的處理器以平行模式配置,各自處理一組完整的作業。
混合式(Hybrid):有一種稱為Hybrid的架構模式,結合管線化以及超純量架構。
《圖六 三種網路處理器配置模式》 |
在這些組態中,每組RISC引擎皆經最佳化調校,能負責一組特定的封包處理功能。然而,這些最佳化的結果僅支援特定的RISC引擎,不能再以高階語言進行編程,迫使使用者必須採用微程式碼/組譯語言。這種模式不僅費時,且與彈性以及上市時效的目標背道而馳,因此業者開始採用網路處理器。網路處理器廠商瞭解這方面的缺點,並提供多功能的現成軟體,所以能根據最終使用者對每套方案的需求調整產品的設計,以提高網路處理器的可用性。
FPGAs
FPGAs一般說來適合支援高速平行資料處理,且具備充裕的彈性與擴充性。FPGA也能擴充許多網路設備的功能,因此逐漸受到市場的採納。FPGA的各種基本功能已能滿足網路系統的各項基本需求,因此已成為網路處理器的主要競爭對手。這使得它們成為WAN/MAN/LAN網路中客製化網路處理的理想方案,並讓使用者能自行在彈性與效能之間做取捨。OEM廠商在橋接三種不同的Layer 2/Layer 3資料流以及建置像是安全防護等高速功能時,FPGA是較理想的選擇方案。然而,FPGA不像網路處理器一樣,本身並沒有內建的網路處理功能,必須由使用者以硬體描述語言(HDL)、IP核心以及C語言進行硬體編程,建置各項資料通道以及控制通道的功能。
正確元件的選擇
該如何為系統選擇正確的元件?必須先找出系統的各項需求,並排定這些需要的優先次序。以下將介紹應考量的九大因素:
選擇正確的解決方案
1.選擇任何封包處理解決方案時,應考量多項因素方能選出正確的解決方案。有些因素對特定的應用有關,而有些因素則適用於所有的狀況。
2.網路位置(Network Location)
封包處理設備在網路中的設置位置不同,所面對的處理與線路速度也有所差異。核心設備介面卡須支援極高的線路速度(40 Gbps,有時為10 Gbps),故須在極有限的時間內進行處理與傳輸。相對地,端點設備的線路速度就較低(約1Gbps),通常須運用具備密集處理能力的元件進行內容感知與深層封包的處理作業。此外,端點設備通常需要支援TCP/IP終端處理(termination)的作業。一般而言,設備愈接近消費者,就愈需要密集的處理功能。
包括網路處理器與FPGA在內的可編程解決方案是核心以及端點設備的理想解決方案。它們應用在網路核心時能串連各種處理器並提供所需的效能。FPGA運用本身的多重通訊協定能力以及感測封包內容的處理機制,支援端點設備與儲存網路之間的互動。
3.產品上市時程與生命週期(Time-to-Market;Time-in-Market)
在眾多廠商搶攻市場下,率先進入市場的產品能爭取較多的利潤。(圖七)顯示產品上市時程以及獲利之間的關係。但業者在搶先上市時,不應讓彈性作為阻礙-若為了追求彈性而導致設計時間延長以及降低效能,如此就失去提高上市速度的意義。
《圖七 產品上市時程與獲利關係》 |
產品生命週期(time-in-market)是另一項重要因素。可編程解決方案的擴充性能在日後將產品功能進行升級,延長產品在市場上的存活時間。這讓廠商的產品能長時間在市場上爭取利潤,甚至透過為顧客提供新的服務以創造新的獲利機制。FPGA與網路處理器雖都能提供相似的彈性,但FPGA能在不犧牲效能下提供充裕的擴充性。這是因為FPGA具備以硬體為中心的編程能力。
4.深層封包處理(Deep Packet Processing)
雖然Layer 2與Layer 3的處理可輕易透過ASIC完成,但在Layer 4或Layer 5所進行的深層封包處理作業就須針對類似的流量種類進一步分辨出不同的優先等級。例如,若使用者根據資料流的種類提供不同的服務等級,更深層的封包處理就成為關鍵的功能。服務供應商不僅須排定各種影片與資料封包的優先傳輸順序,亦須決定兩組影片封包流的優先次序-一組來自支付較低費率的"A"公司,另一組來自支付較高費率的"B"公司。
可編程解決方案可深入檢查每個封包。ASIC由於無法處理其它持續變化的參數,因此無法進行更深層的封包處理作業。例如,若須處理新型的資料流,ASIC就無法進行調整支援這方案的需要。在網路處理器與FPGA之間,網路處理器能以低廉的成本處理偶發性的深層處理作業,而FPGA較適合用來以高效能模式進行較上層的層深封包處理作業。此外,系統需要多組網路處理器方能執行深層封包處理,但卻可用單一FPGA完成相同的工作。網路處理器在處理特殊封包時可進行深層解析,這方面的流程需要密集的處理器運算。例外封包處理的速度僅能運用多組網路處理器方能改進。這是由於網路處理器採用RISC型處理元件,而FPGA則以硬體為處理元件。運用多組網路處理器亦會形成硬體與軟體分隔的技術挑戰、提高軟體的複雜度、系統延遲以及較高耗電率等缺點。
5.介面標準(Interface Standards)
網路產業幾乎每天都有新的通訊協定與介面標準問市。回顧最近五年,我們已從歷經共用式匯流排介面、來源同步式平行介面,一直演進到時脈-資料回復型序列介面,有效改進頻寬與效能。此外,電子與光學系統介面與通訊協定亦持續演進。事實上,每隔幾個月就會有一套新標準問市。這些變化大幅影響設備的生命週期。
ASIC解決方案則無法因應介面與通訊協定的變化。雖然網路處理器能應付小幅度的通訊協定變動,卻無法配合持續變遷的介面標準。Platform FPGA則能支援極多的平行與序列標準,例如像RapidIO、HyperTransport、XSBI、SFI-4、SPI-4、XAUI、Serial RapidIO、以及Infiniband 等。這種彈性讓系統廠商能將現有的標準與未來的標準相互串連,提供更長的產品壽命以及擴充性。
6.軟體(Software)
在數據平面與控制平面處理上,軟體是網路設備的整合元件。專為網路設備設計的ASIC通常內含嵌入型PowerPC或MIPS處理器。使用任何以處理器為中心的設計,其主要優點就是軟體的彈性。控制平面軟體對許多代工廠商而言是一項主要的加值功能,協助廠商突顯自己的競爭特色。因此,能重覆使用的程式碼就成為及時上市以及支援舊有產品的必要條件。C語言程式碼可快速撰寫並輕易地擴充/移植至新的處理器。DSP(數位訊號處理)設計師與工程師相當瞭解這項觀念,在考量程式碼重覆使用的能力時,運用DSP處理器比效能更為重要。
不幸地是,網路處理器不具備程式碼重覆使用的能力,針對網路處理器研發的軟體大多數不具備可移植性,通常都採用專利型的組合語言或移植性不高的精簡型C語言。組合語言的程式碼亦屬於以處理器為中心的模式,須耗費更長的研發時間,讓代工廠商不僅須承擔更高的風險,且受到特定的網路處理器廠商的束縛。
事實上,專為特定一家廠商的網路處理器所研發的程式碼,甚至可能無法移植至該廠商未來推出的新款網路處理器。網路處理器產業已深切體會這項問題,並積極進行標準化工作,以追回設計業者的信賴。另一方面,FPGA雖能提供軟體的擴充性,但亦須面對HDL或C語言在資料面處理以及在控制面處理所產生的技術挑戰。採用專利型組合語言程式碼提供這方面的功能,不僅風險極高,且困難度比採用業界標準的HDL與C語言還更高。
7.功耗(Power Consumption)
設備在網路中配置的位置會決定功耗的重要程度。線路介面卡上的元件數量逐漸增多,其中包括網路處理器、FPGA、協同處理器ASSPs以及高速記憶體等,這些元件所累積的耗電率亦持續增加。這點對系統擴充性與效能有相當不利的影響。ASIC可針對特定的環境提供最佳化的功耗,沒有任何可編程解決方案能與之匹敵。然而,考量ASIC有其它方面的限制,我們仍須尋找一種較為可行的可編程方案。網路處理器所組成的系統需要多組協同處理器ASSP以及超高速記憶體,支援以處理器為中心的模式,如此卻會提高裝置的耗電量。FPGA型解決方案使用最少的協同處理器以及最低功率的SDRAM記憶體,可滿足大多數系統的效能需求,同時維持較低的系統耗電量。
8.資料安全(Data Security)
加密是安全資料網路的關鍵功能,在現今強調安全的環境中更顯重要。IPSec是虛擬封包網路(VPN)所採用的網路安全技術,需要控制面與資料面的支援。控制通道與金鑰交換可建置在像是PowerPC處理器等RISC引擎中的軟體內部。資料通道需要的Gbps級全線速的AES 與Triple-DES 加密/解碼機制可透過軟體來達成。
雖然資料防護功能可建置在ASIC中,但重點在於如何跟上持續演進的金鑰機制以及新的演算法。網路處理器能支援安全功能但處理速度極為緩慢。由於網路處理器無法支援高效能的網路安全功能,市面上出現許多安全協同處理器(ASSP),僅增加元件數量,卻無法達到要求的效能或彈性。
9.防範恐怖份子與駭客(Protection from Terrorists & Hackers)
ASIC解決方案具備相當高的防護能力,而可編程解決方案就較容易受到駭客的攻擊。若恐怖份子與駭客能以軟體設定所有網路處理器的功能,其後果將難以估計。像是Virtex-II Pro元件這類的Platform FPGA提供內建的triple-DES防護機制,能保護編程後的傳輸資料。這項技術讓可編程FPGA免於遭到各種破壞性的攻擊。
結論
整體來說,網路封包處理三大解決方案的特色如下:ASIC模式具有固定的功能、高效能以及高成本。RISC模式為立即可用的可編程元件,搭載性能最佳化的處理器引擎,提供充裕的彈性與效能。以軟體為中心的使用者編程彈性。網路處理器就屬於這種模式。FPGA模式亦為立即可用的可編程元件,搭載高度平行化的邏輯結構,提供由使用者自行搭配的效能與彈性。它亦提供程式碼安全機制,防範駭客的攻擊。在選擇合適的封包處理方案時,必須同時考量上述的議題以及系統的特殊需求。正確的裝置組合才能滿足設備與最終顧客的需求。(作者為Xilinx Virtex解決方案部門行銷經理)
|