<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 網(wǎng)絡(luò)處理器的發(fā)展及應(yīng)用

          網(wǎng)絡(luò)處理器的發(fā)展及應(yīng)用

          作者:北京郵電大學(xué)繼續(xù)教育學(xué)院,竇忠輝 時間:2003-07-14 來源:電子設(shè)計應(yīng)用 收藏
          引言

          我們所熟悉的通信網(wǎng)的基本結(jié)構(gòu)是由傳統(tǒng)的電路交換系統(tǒng)和基于分組的交換系統(tǒng)構(gòu)成,整個都是由一系列小的、傳輸和終端設(shè)備組成, 之間互通性差、可管理性不強,網(wǎng)絡(luò)業(yè)務(wù)不靈活。隨著電子商務(wù)、多媒體業(yè)務(wù)和VoIP等業(yè)務(wù)的出現(xiàn)對帶寬的要求越來越高,同時,對網(wǎng)絡(luò)業(yè)務(wù)流量的控制能力和網(wǎng)絡(luò)安全也提出了更高的要求。

          為適應(yīng)這些網(wǎng)絡(luò)需求,當(dāng)今網(wǎng)絡(luò)正在向NGN(Next Generation Network)的方向發(fā)展,下一代網(wǎng)絡(luò)是可以提供包括話音,數(shù)據(jù)和多媒體等各種業(yè)務(wù)的綜合開放性網(wǎng)絡(luò)構(gòu)架,采用開放的網(wǎng)絡(luò)構(gòu)架體系、業(yè)務(wù)驅(qū)動的網(wǎng)絡(luò)、基于統(tǒng)一協(xié)議的基于分組的網(wǎng)絡(luò)。這就要求各設(shè)備、芯片制造商開發(fā)生產(chǎn)出適應(yīng)性更強、功能更強大的相關(guān)設(shè)備以滿足網(wǎng)絡(luò)發(fā)展的需求。而具有可編程性、強大處理能力的網(wǎng)絡(luò)處理器NP(Network Processor)正是適合成為這些設(shè)備的核心功能單元。

          網(wǎng)絡(luò)處理器的發(fā)展

          網(wǎng)絡(luò)設(shè)備如路由器和交換機的體系結(jié)構(gòu)的發(fā)展基本上經(jīng)歷了基于通用處理器的體系結(jié)構(gòu)和基于ASIC、RISC的體系結(jié)構(gòu)兩個階段。

          基于網(wǎng)絡(luò)處理器的體系結(jié)構(gòu)是在以上兩種體系結(jié)構(gòu)的基礎(chǔ)上,綜合了雙方優(yōu)點推出的一種新型的體系結(jié)構(gòu)。網(wǎng)絡(luò)處理器是一種可編程ASIC,不但可為系統(tǒng)提供類似ASIC的處理速度,而且可以提供類似通用處理器的靈活性。網(wǎng)絡(luò)處理器主要被用于處理線速(wire-speed)數(shù)據(jù),進行協(xié)議分析和數(shù)據(jù)分類,位于物理接口處理器和交換架構(gòu)之間。

          圖1 兩個網(wǎng)絡(luò)處理器擴充的配置圖

          網(wǎng)絡(luò)處理器的功能特性

          網(wǎng)絡(luò)處理器具備完全的可編程能力,可以實現(xiàn)OSI網(wǎng)絡(luò)協(xié)議棧2~7層的處理,對諸如信元、分組數(shù)據(jù)流等多種協(xié)議數(shù)據(jù)類型的支持滿足了邊緣設(shè)備的需要;同時簡單高效的編程開發(fā)特征為網(wǎng)絡(luò)處理器走向市場奠定了基礎(chǔ);強大的處理能力可以實現(xiàn)高帶寬的線速處理;開放的高度集成的體系結(jié)構(gòu)使得基于網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)設(shè)備易于系統(tǒng)擴展。網(wǎng)絡(luò)處理器的主要任務(wù)是數(shù)據(jù)包的分析、處理及轉(zhuǎn)發(fā),因而其主要的功能包括以下幾部分:

          協(xié)議識別和分類:根據(jù)數(shù)據(jù)包的協(xié)議類型、端口號、目的地址、以及其它特定于協(xié)議的信息對數(shù)據(jù)包進行識別。

          拆裝和重組:數(shù)據(jù)包的拆分,處理,以及為轉(zhuǎn)發(fā)而重組。

          排隊和接入控制: 識別出數(shù)據(jù)包之后,將這些數(shù)據(jù)包送往相應(yīng)的隊列中以進行下一步處理,如優(yōu)先處理,流量整形等。同時,可根據(jù)某些安全接入策略進行數(shù)據(jù)包過濾,確定是繼續(xù)轉(zhuǎn)發(fā),還是丟棄。

          流量整形和流量工程: 某些協(xié)議或應(yīng)用要求對流量進行整形以使之在進入輸出線或輸出光纖時滿足時延和時延抖動的要求。

          QoS(Quality of Service)和CoS(Class of Service):除了對數(shù)據(jù)包進行流量整形外,數(shù)據(jù)包還可以被打上標(biāo)簽送往下一網(wǎng)絡(luò)節(jié)點進行更加有效的處理。

          修正數(shù)據(jù)包 :編輯數(shù)據(jù)包并添加額外的信息。

          差錯檢測 :正確檢測來自數(shù)據(jù)鏈路層的有差錯的數(shù)據(jù)包并能采取有效的處理措施。

          網(wǎng)絡(luò)處理器的體系結(jié)構(gòu)

          隨著Intel 和IBM等公司大舉進入網(wǎng)絡(luò)處理器市場,采用基于處理器體系結(jié)構(gòu)的網(wǎng)絡(luò)處理器得到迅速發(fā)展,下面以Intel和IBM公司推出的網(wǎng)絡(luò)處理器家族中主流產(chǎn)品作一簡單介紹。

          IXP1200網(wǎng)絡(luò)處理器是Intel 公司推出的互聯(lián)網(wǎng)交換架構(gòu)的網(wǎng)絡(luò)處理器之一,它由一個StrongARM處理器、六個微引擎(Microenginer)、存儲器接口和高速總線接口組成。IXP1200的主要功能模塊和體系結(jié)構(gòu)的主要特征:

          并行處理器結(jié)構(gòu): StrongARM核和6個微引擎均為RISC處理器,并行工作,StrongARM核主要負(fù)責(zé)協(xié)議控制平面和上層應(yīng)用程序的處理,6個微引擎是32位的可編程RISC,有各自獨立的控制存儲器和局部寄存器,訪問外部資源(SRAM、SDRAM和IXBUS等)的機會均等,提供大于2倍外部帶寬的內(nèi)部總線帶寬。Intel 推出的微碼(Microcode)運行在微引擎上,微碼的可重載性為系統(tǒng)升級提供了極大的方便。

          硬件多線程 : 微碼指令的運行采用5級流水線機制,同時考慮訪存延遲,為提高微引擎的利用效率,采用硬件多線程,即每個微引擎同時運行4個線程,采用內(nèi)部線程通信機制實現(xiàn)線程同步,提高了系統(tǒng)效率。

          分布式數(shù)據(jù)存儲和內(nèi)存組織優(yōu)化:IXP1200提供了多個存儲單元接口,利用專用的讀寫寄存器實現(xiàn)對SRAM和SDRAM的訪問,簡化了編程模型,提高了存儲效率。同時SDRAM和SRAM均支持多個讀寫隊列進行優(yōu)先級排隊以優(yōu)化帶寬。

          可擴充的體系結(jié)構(gòu):IXP1200的IXBUS總線接口可以實現(xiàn)多個IXP1200的系統(tǒng)擴充。

          Ixp1200網(wǎng)絡(luò)處理器提供了適應(yīng)下一代網(wǎng)絡(luò)設(shè)備的開放的體系機構(gòu),IX BUS總線不僅作為數(shù)據(jù)通道外接Ethernet MAC 、ATM、E1 等器件,還可實現(xiàn)多個IXP1200的系統(tǒng)擴展。

          PCI標(biāo)準(zhǔn)接口為系統(tǒng)開發(fā)調(diào)試提供了方便。多種存儲器接口為內(nèi)部存儲訪問、數(shù)據(jù)表查找效率的提高提供了硬件基礎(chǔ)。

          IBM公司在網(wǎng)絡(luò)處理器的開發(fā)上也推出了PowerNP 系列產(chǎn)品,如PowerNP 4GS3,能夠提供10/100 Ethernet、Gigabit Ethernet、POS等多個端口的連接,可以配置成40個10/100 Ethernet或者4個Gigabit 的端口,也可以配置成OC-48、4個OC-12端口,最高達到4Gbit的帶寬。IBM的網(wǎng)絡(luò)處理器同樣采用了基于處理器的結(jié)構(gòu),主要由以下幾部分組成:

          EPC(Embedded Processor Complex)嵌入式處理器組:具備可編程能力的16個微處理器主要負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā)處理。

          入口EDS:對來自以太網(wǎng)物理層設(shè)備的幀進行入隊、出隊和調(diào)度,送往交換組織。

          出口EDS:對來自交換組織幀進行入隊、出隊和調(diào)度,送往物理層設(shè)備。

          入口和出口交換接口:完成中間交換或者與其他網(wǎng)絡(luò)處理器的內(nèi)部連接。

          入口、出口PMM(Physical MAC Multiplexer):分別接收、發(fā)送來自Ethernet、POS物理層設(shè)備的幀。

          嵌入式PowerPC:作為控制CPU,主要負(fù)責(zé)整個網(wǎng)絡(luò)處理器的管理和控制,同時負(fù)責(zé)協(xié)議幀的處理。

          IBM網(wǎng)絡(luò)處理器同樣具有可擴充能力,多個網(wǎng)絡(luò)處理器組成一個交換和路由系統(tǒng),實現(xiàn)2、3層直至更高層幀的線速轉(zhuǎn)發(fā)處理(見圖1)。

          圖2 網(wǎng)絡(luò)硬件的功能框圖

          網(wǎng)絡(luò)處理器的應(yīng)用

          基于其強大功能,網(wǎng)絡(luò)處理器可以被用于實現(xiàn)從邊緣網(wǎng)絡(luò)至核心網(wǎng)絡(luò)的一系列應(yīng)用,如:

          WAN/MAN 邊緣路由器;
          多業(yè)務(wù)接入平臺:支持IP、ATM和MPLS;
          企業(yè)網(wǎng)骨干交換機;
          DSLAM和其他寬度應(yīng)用設(shè)備,如3G無線基站、CMTS;
          VPN網(wǎng)管/路由器;
          防火墻和安全路由器;
          IP 吉比特/太比特路由器;
          IPv6路由器。

          從概念上來看,以上所有的應(yīng)用都是基于如圖2的體系結(jié)構(gòu),物理層把來自物理介質(zhì)的光、電信號轉(zhuǎn)換成一定格式的比特流幀,幀轉(zhuǎn)交到網(wǎng)絡(luò)處理器,網(wǎng)絡(luò)處理器通過兩條通道處理數(shù)據(jù)幀,快速通道,如數(shù)據(jù)通道或者轉(zhuǎn)發(fā)通道,實現(xiàn)線速處理轉(zhuǎn)發(fā)數(shù)據(jù)幀,這部分是由微引擎完成的;慢通道,如控制通道,完成小部分?jǐn)?shù)據(jù)幀(如控制、信令、路由幀)的處理,這是由通用微處理器完成的。在采用背板交換的網(wǎng)絡(luò)設(shè)備中,由交換背板完成系統(tǒng)擴展和數(shù)據(jù)幀的交換。

          下面以網(wǎng)絡(luò)處理器在IPv6核心路由器中的應(yīng)用作一探討。IPv6路由器和IPv4路由器相比,主要的區(qū)別在硬件和軟件的實現(xiàn)方面。硬件需要支持IPv6的網(wǎng)絡(luò)處理器,以及更快速和更高容量的CAM(根據(jù)內(nèi)容訪問的存儲器)存儲芯片,而這方面目前還缺乏成熟的產(chǎn)品。軟件方面需要對原有的協(xié)議棧進行重新實現(xiàn),這將涉及大量的程序修改和編譯、調(diào)試工作,此外還需要增加一些新的協(xié)議和功能,如IDRP(域間路由協(xié)議)、即插即用支持、QoS的全面支持等。其中的難點和關(guān)鍵是網(wǎng)絡(luò)處理器。NPU在路由器中的角色相當(dāng)于CPU在PC中的角色,它專門為網(wǎng)絡(luò)處理量身定制,以線速處理和轉(zhuǎn)發(fā)每個數(shù)據(jù)包,并且具有可編程能力,因此可以隨技術(shù)的發(fā)展而進行現(xiàn)場升級。

          IBM網(wǎng)絡(luò)處理器同樣具有可擴充能力,多個網(wǎng)絡(luò)處理器組成一個交換和路由系統(tǒng),實現(xiàn)2、3層直至更高層幀的線速轉(zhuǎn)發(fā)處理。圖2給出了兩個網(wǎng)絡(luò)處理器擴充的配置圖,兩個網(wǎng)絡(luò)處理器之間擁有全雙工的快速通道,可以配置成提供80個10/100 Mbps以太網(wǎng)端口,或者是60個10/100 Mbps以太網(wǎng)端口加上2個千兆口,同樣也可配置成8個千兆口。

          核心路由器主要有百兆、千兆線卡、交換背板、交換板和主控模塊板組成,從圖3中看出4個線卡支持96個10/100Mbps以太網(wǎng)口,一個千兆的線卡支持6個千兆以太網(wǎng)口,其中交換模塊通過背板直接和各個線卡相連,另外加上一個控制模塊。

          其中百兆的交換線卡模塊主要有2個IXP1200構(gòu)成,其交換模塊為IXE2424,每個端口都有IPv6路由功能,千兆模塊主要有Intel第二代網(wǎng)絡(luò)處理器IXP2400構(gòu)成,其交換模塊為IXE5416。

          圖3 IPv6核心路由器系統(tǒng)構(gòu)成圖

          另外一個典型應(yīng)用是開發(fā)基于網(wǎng)絡(luò)處理器的防火墻,利用網(wǎng)絡(luò)處理器的可編程能力可以容易實現(xiàn)防火墻的數(shù)據(jù)包過濾、訪問控制、入侵檢測、地址轉(zhuǎn)換等功能,并且可以在同一硬件平臺上對軟件升級以滿足不同用戶的需要?;诰W(wǎng)絡(luò)處理器的防火墻是硬件防火墻,因此有線速處理能力。目前國外的廠商已經(jīng)推出了基于網(wǎng)絡(luò)處理器的防火墻產(chǎn)品,我們國內(nèi)的一些公司也正在加快這方面的開發(fā)與研究,相信很快就會有相應(yīng)的產(chǎn)品問世。

          結(jié)語

          網(wǎng)絡(luò)處理器通過十分靈活的體系結(jié)構(gòu)和強大的處理能力,將可編程能力和ASIC的處理能力有機的結(jié)合在一起,從而帶來更為智能的網(wǎng)絡(luò)設(shè)備、更短的產(chǎn)品研發(fā)周期以及更便捷的系統(tǒng)升級方式。各大廠商均推出了10Gbps的網(wǎng)絡(luò)處理器和其他的編程模型,40G 的網(wǎng)絡(luò)處理器正在逐步推向市場。網(wǎng)絡(luò)處理器論壇(Network Processing Forum, NPF)在公共交換接口協(xié)會和公共編程接口論壇的基礎(chǔ)上成立,加快了網(wǎng)絡(luò)處理器的發(fā)展步伐。在今后幾年里網(wǎng)絡(luò)處理器將迅速得以普及應(yīng)用,代表著下一代網(wǎng)絡(luò)設(shè)備的核心功能單元,將有著非常巨大的發(fā)展空間。

          參考文獻
          1 Intel,Inc. Intel IXP1200(r) HW Ref Maunel.2001.8
          2 IBM Network Processor product overview.www.ibm.com
          3 System Requirement for Terbit Router Mehrdad Nourani.2001 IEEE
          4 Architectures for Network Processing Joseph Williams.2001 IEEE
          5 Agere,Inc. White Paper: Challenge for Next Generation Network Processors. 1999.9
          6 PMC Inc. White Paper A New Architecture of Switch and Router Design.1999.12



          關(guān)鍵詞: 網(wǎng)絡(luò)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();