1. 引言
隨著IP網(wǎng)絡(luò)的蓬勃發(fā)展,、新的應(yīng)用不斷涌現(xiàn),用戶對(duì)網(wǎng)絡(luò)帶寬的要求也越來越高,。運(yùn)營(yíng)商采用OC一192(10Gbps)接口的光纖傳輸大大提高了光傳輸網(wǎng)絡(luò)的容量,,而路由器作為網(wǎng)絡(luò)的主要節(jié)點(diǎn)設(shè)備,其處理速度就成為網(wǎng)絡(luò)通信的主要瓶頸之一,。一臺(tái)具有50個(gè)oc一192接口的路由器交換容量將達(dá)到T比特級(jí),,國(guó)外T比特路由器已經(jīng)開始試運(yùn)行,國(guó)內(nèi)開發(fā)T比特路由器也迫在眉睫,。本文所研制的T比特路由器,,系統(tǒng)總吞吐率可達(dá)1.28Tbps,峰值交換能力為2.4Tbps,而每端口可達(dá)到10G的轉(zhuǎn)發(fā)速率;為達(dá)到10G的轉(zhuǎn)發(fā)速率,,本路由器采用了4路2.5GPOS接口,。
2. 硬件總體結(jié)構(gòu)設(shè)計(jì)
本路由器硬件體系結(jié)構(gòu)由線路接口子系統(tǒng)、轉(zhuǎn)發(fā)處理子系統(tǒng),、光背板交換網(wǎng)絡(luò)子系統(tǒng)和內(nèi)部通信子系統(tǒng)四大部分組成,。當(dāng)接口收到數(shù)據(jù)包后,首先判斷該包的目的地址是否為本路由器,,是則上交給單板軟件并由內(nèi)部通信子系統(tǒng)交給主控處理,;否則填充內(nèi)部包頭,注明包類型,,協(xié)議類型,,目的機(jī)架號(hào),,端口號(hào),接口號(hào)等信息,,由同軸電纜交給轉(zhuǎn)發(fā)處理子系統(tǒng),,再由光背板轉(zhuǎn)發(fā)到目的接口。接口把轉(zhuǎn)發(fā)送過來的包和本路由器發(fā)出的包,,進(jìn)行和路處理后再發(fā)送出去,。
2.1 性能需求分析
1)根據(jù)以往路由器的經(jīng)驗(yàn),,通常硬件FPGA 中的高速通道工作在2.5Gbps速率下比較穩(wěn)定,。就A口輸入數(shù)據(jù)速率10Gbps來說,4個(gè)2.5Gbps的高速通道就可以將數(shù)據(jù)傳到轉(zhuǎn)發(fā)處理模塊,。但是,,線路接口模塊的功能實(shí)現(xiàn)要求:數(shù)據(jù)包在經(jīng)過線路接口輸入處理模塊的處理后要加上128 bit即16個(gè)byte的內(nèi)部標(biāo)簽??紤]極限情況,,A口收到的都是40 byte的超短包,那么,,B口輸出的數(shù)據(jù)的極限速率為:[10Gbps×(40 byte+16 byte)]/40 byte=14Gbps.所以,,本設(shè)計(jì)采用兩路2.5Gbps的高速通道來傳A口接收的10Gbps數(shù)據(jù)中的四分之一即2.5Gbps數(shù)據(jù)到轉(zhuǎn)發(fā)處理模塊。那么,,B口的最大輸出速率為2.5Gbps×8=20Gbps,完全滿足B口傳輸帶寬要求,。
2)在均勻輸入業(yè)務(wù)模型和平衡輸出模型條件下,假定定長(zhǎng)分組業(yè)務(wù)強(qiáng)度λ為0.95,為了控制分組的丟失概率小于10-8,可計(jì)算所需要的輸出隊(duì)列分組緩沖容量S約為650個(gè)分組,。統(tǒng)計(jì)意義上IP分組的平均長(zhǎng)度為508字節(jié),。考慮到內(nèi)部分組標(biāo)簽附加的24字節(jié),,平均需要緩沖的IP分組字節(jié)數(shù)為532字節(jié) 總緩沖容量為650×532×8=2766400(Bits),,即近似為2.8MBits。
3)本子系統(tǒng)的接口速度要達(dá)到10Gbps,如果每個(gè)包都是40字節(jié),,那么這時(shí)極限查表速率為:
對(duì)于輸入查表模塊的另一個(gè)指標(biāo)為表項(xiàng)容量,。按照極限容量來算,T比特路由器有8個(gè)機(jī)架,,每個(gè)機(jī)架8個(gè)端口,,每個(gè)端口8個(gè)接口,每個(gè)接口的IPv4單播組播,、IPv6單播組播地址總計(jì)有64個(gè),。那么極限表項(xiàng)容量為8*8*8*64=32768(32k)條。達(dá)到這兩個(gè)設(shè)計(jì)指標(biāo)是本模塊設(shè)計(jì)的一個(gè)難點(diǎn),。最終,,我們選擇了一款CAM,有64K條表項(xiàng),,查表速率能夠達(dá)到100MSPS.這樣的指標(biāo)完全可以達(dá)到本模塊的要求。
2.2 子系統(tǒng)功能劃分和模塊設(shè)計(jì)
如下圖所示,,4 2.5G線路接口子系統(tǒng)可劃分為光電及串并轉(zhuǎn)換模塊,、鏈路層處理模塊、輸出FPGA處理模塊,、輸入FPGA處理模塊,、協(xié)議報(bào)文上交緩存模塊、輸入查表模塊和時(shí)鐘處理模塊,。為描述方便,,將本子系統(tǒng)和路由器外部的接口稱為A口,和轉(zhuǎn)發(fā)處理子系統(tǒng)的接口稱為B口,,和光背板子系統(tǒng)的接口稱為G口,,和單板處理機(jī)的接口稱為F口,和時(shí)鐘子系統(tǒng)的接口稱為J口,。
從路由器外部接收數(shù)據(jù)時(shí),,光電及串并轉(zhuǎn)換模塊負(fù)責(zé)從A口接收4路2.5Gbit/s串行光信號(hào),轉(zhuǎn)換成16路差分622Mhz電信號(hào),;送由鏈路層處理模塊進(jìn)行鏈路層處理,。輸入FPGA處理模塊針對(duì)輸入包的類型,對(duì)輸入查表模塊存儲(chǔ)的本機(jī)IP地址表查表,,進(jìn)行分路處理,,若此報(bào)文的目的為本路由器則上交主控,否則轉(zhuǎn)發(fā)到B口,。輸出FPGA處理模塊負(fù)責(zé)接收主控下發(fā)協(xié)議包和從系統(tǒng)光背板轉(zhuǎn)發(fā)G口數(shù)據(jù)包,,合路后交給鏈路層處理模塊。鏈路層處理模塊把和路后的ppp報(bào)文封裝在SDH幀中,,由光電及串并轉(zhuǎn)換模塊轉(zhuǎn)換成光信號(hào)發(fā)送出去,。時(shí)鐘處理模塊為本模塊提供全局時(shí)鐘和將本模塊從線路上提取的時(shí)鐘輸出到時(shí)鐘板。
3. 軟件總體結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
MPC860是基于PowerPC結(jié)構(gòu)的通信控制器,。MPC860具有存儲(chǔ)控制器,,其存儲(chǔ)控制器的功能很強(qiáng),可以支持各種存儲(chǔ)器,,包括各種新型的DRAM和Flash,并可以實(shí)現(xiàn)與存儲(chǔ)器的無縫接口,。
VxWorks是一套具有微內(nèi)核,高性能,,可伸縮的操作系統(tǒng),,支持廣泛的網(wǎng)絡(luò)通信協(xié)議,并能夠根據(jù)用戶的需求組合,,增減,。再加上其優(yōu)秀的開發(fā)環(huán)境Tornado,使其成了嵌入式操作系統(tǒng)的首選,。選擇MPC860加上嵌入式強(qiáng)實(shí)時(shí)操作系統(tǒng)VxWorks完全可以買足單板處理的性能需求。
上圖展示了單板軟件總體結(jié)構(gòu),。單板操作系統(tǒng)是采用VxWorks,單板處理器是采用MPC860.路由器有不同種類的線路接口板,,每種接口板都需要完成許多相同的功能,可把這些相同的功能放在一個(gè)單獨(dú)的模塊中實(shí)現(xiàn),,減少冗余勞動(dòng),。板級(jí)支撐模塊為單板應(yīng)用提供與主控軟件之間的通信、任務(wù)管理,、內(nèi)存管理和定時(shí)器管理等服務(wù),;而單板應(yīng)用為線路接口單板軟件模塊,完成單板轉(zhuǎn)發(fā)處理,。
單板軟件主要完成的功能有:對(duì)各類型單板硬件的初始化和配置,,接收并處理主控下發(fā)的單板控制命令,完成軟硬件程序加載,,以太網(wǎng)接口板運(yùn)行IPv4 ARP協(xié)議,維護(hù)并向主控通告ARP信息,,協(xié)議數(shù)據(jù)(源/目地址為本路由器的分組)收發(fā),,維護(hù)路由器接口地址信息,差錯(cuò)報(bào)文處理,、記錄報(bào)文上報(bào),,業(yè)務(wù)性能統(tǒng)計(jì)數(shù)據(jù)收集與上報(bào),維護(hù)單板與主控板間的通信連接,。
其數(shù)據(jù)處理流程如下圖:?jiǎn)伟逵布邮盏奖韭酚善靼?,寫入輸入FIFO,收包任務(wù)讀出包,封裝在定義的內(nèi)部數(shù)據(jù)結(jié)構(gòu)中,,調(diào)用板級(jí)支撐模塊中的發(fā)送函數(shù)發(fā)給主控,;主控下發(fā)的包則由消息分發(fā)模塊處理,協(xié)議包交給發(fā)包任務(wù),,再寫入輸出FIFO,然后發(fā)送出去,,控制包則交主控處理模塊處理,完成向?qū)?yīng)的功能,。
由于本接口需要達(dá)到10G的速率,,各任務(wù)之間必須有穩(wěn)定和高速交互機(jī)制。VxWorks操作系統(tǒng)為任務(wù)間通信提供了許多通信方式,,包括共享內(nèi)存,,信號(hào)量,消息隊(duì)列和管道,,Sockets和遠(yuǎn)程調(diào)用等,。消息隊(duì)列允許長(zhǎng)度可變,,數(shù)目可變的消息隊(duì)列,可以滿足多任務(wù)之間通信,。而對(duì)相同優(yōu)先級(jí)的任務(wù)必須預(yù)先設(shè)置各任務(wù)的執(zhí)行時(shí)間,,否則第一個(gè)獲得CPU 的任務(wù)就會(huì)獨(dú)占,阻礙別的人物運(yùn)行,??傊谲浖O(shè)計(jì)中一定要充分了解VxWorks的工作機(jī)制,,否則不但不能設(shè)計(jì)出效益高的程序,,反而會(huì)阻礙VxWorks的有效運(yùn)行。
4. 結(jié)束語(yǔ)
路由器作為Internet 的核心設(shè)備,,對(duì)于Internet 的性能有著重要影響,。歷史上,路由器體系結(jié)構(gòu)的變遷體現(xiàn)了由通用器件向?qū)S闷骷?,由串行處理向并行處理,,從集中式到分布式的趨?shì)。依此可將路由器體系結(jié)構(gòu)劃分為4代:?jiǎn)翁幚砥骷惺娇偩€結(jié)構(gòu),,多處理器分布式共享總線結(jié)構(gòu),,多處理器分布式交換結(jié)構(gòu),多機(jī)互連的可擴(kuò)展集群結(jié)構(gòu),。第一代路由器中,,單一的中央處理器和總線成為系統(tǒng)計(jì)算能力和通信能力的瓶頸。第二代~第四代路由器體系結(jié)構(gòu)逐步解決了這方面的問題:第二代體系結(jié)構(gòu)提高了線卡的報(bào)文轉(zhuǎn)發(fā)能力,,主要貢獻(xiàn)為將中央處理器從報(bào)文轉(zhuǎn)發(fā)中解放出來,;第三代體系結(jié)構(gòu)中采用了交換結(jié)構(gòu)代替總線,通過構(gòu)造"無阻塞"的交換網(wǎng)絡(luò)來大幅度提高交換性能,;第四代體系結(jié)構(gòu)目前仍在不斷發(fā)展的過程中,,通過某種互連方式將多個(gè)路由節(jié)點(diǎn)有機(jī)地結(jié)合在一起的可擴(kuò)展路由器體系結(jié)構(gòu)將是充滿希望的發(fā)展方向。
本文簡(jiǎn)要介紹了吞吐率高達(dá)1.28T比特的高性能路由器,,并研究了其2.5GPOS接口的實(shí)現(xiàn)技術(shù),,首先可以深入對(duì)POS技術(shù)在實(shí)現(xiàn)和應(yīng)用上的研究,其次可以豐富路由器的接口功能,,增加路由器接口的靈活性,,增強(qiáng)路由器的兼容性,以便更為廣泛的利用網(wǎng)絡(luò)資源,,實(shí)現(xiàn)網(wǎng)絡(luò)體系和架構(gòu)的演進(jìn),,為高性能路由器的研制和后續(xù)開發(fā)提供可借鑒的技術(shù)思路。