李 星,張治中
(重慶郵電大學(xué)通信網(wǎng)與測試技術(shù)重點實驗室,重慶 400065)
基于FPGA的IP承載網(wǎng)損傷儀設(shè)計
李 星,張治中
(重慶郵電大學(xué)通信網(wǎng)與測試技術(shù)重點實驗室,重慶 400065)
針對IP承載網(wǎng)的結(jié)構(gòu)和技術(shù)特點,結(jié)合目前網(wǎng)絡(luò)性能測試的現(xiàn)狀和需求,提出了一種基于FPGA的IP承載網(wǎng)損傷儀的系統(tǒng)框架,研究了在FPGA上實現(xiàn)模擬丟包率的方法,闡述了損傷儀硬件模塊的設(shè)計思想。該方案在仿真測試上通過驗證,有著良好的應(yīng)用前景。
IP承載網(wǎng);FPGA;損傷儀;正態(tài)分布;Modelsim仿真
隨著IP承載網(wǎng)的發(fā)展,業(yè)務(wù)的快速增長不斷給網(wǎng)絡(luò)提出更大的挑戰(zhàn),低成本、大容量、傳輸?shù)母呖煽啃院桶踩猿蔀榱薎P承載網(wǎng)追求的主要目標(biāo)[1],因此在IP承載網(wǎng)的建設(shè)中需要對網(wǎng)絡(luò)性能進行一系列的評估和測試,但現(xiàn)有的網(wǎng)絡(luò)性能測試無法對實際情況中出現(xiàn)的網(wǎng)絡(luò)延遲、設(shè)備故障和數(shù)據(jù)丟包等問題進行比較準(zhǔn)確的估計,這在很大程度上阻礙了IP承載網(wǎng)的發(fā)展。為了能夠更好地解決IP承載網(wǎng)建設(shè)中出現(xiàn)的各種問題,避免因?qū)嶋H情況估計不足而導(dǎo)致網(wǎng)絡(luò)建設(shè)的缺陷和漏洞,本文設(shè)計一種基于FPGA的IP承載網(wǎng)損傷儀,能夠模擬在丟包率、時延、抖動和帶寬限制等環(huán)境下的網(wǎng)絡(luò)傳輸情況,對IP承載網(wǎng)的長期發(fā)展具有重要意義。
目前IP承載網(wǎng)的建設(shè)主要處于網(wǎng)絡(luò)轉(zhuǎn)型階段,它的基本結(jié)構(gòu)如圖1所示[2]。
隨著業(yè)務(wù)對網(wǎng)絡(luò)性能的要求越來越高,運營商需要投入更多的資金來保障所承載業(yè)務(wù)的質(zhì)量,包括調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)、降低故障發(fā)生率、降低運行維護成本等,因此在現(xiàn)階段必定要求運營商對IP承載網(wǎng)的性能進行評估[3]。以下幾個方面對IP承載網(wǎng)的運營和維護有著極其重要的影響,主要包括:
圖1 典型的IP承載網(wǎng)架構(gòu)圖
1)吞吐量(Throughput)。測試路由器包轉(zhuǎn)發(fā)的能力。在沒有幀丟失的情況下,設(shè)備能夠接收并轉(zhuǎn)發(fā)的最大數(shù)據(jù)速率。
2)時延(Latency)。一個報文或分組從一個網(wǎng)絡(luò)的一端傳送到另一端所需要的時間。它包括了發(fā)送時延、傳播時延、處理時延、排隊時延。
3)丟包率(Packet Loss Rate)。測試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)包的比率,通常在吞吐量范圍內(nèi)測試,丟包率的大小與數(shù)據(jù)包長度以及包發(fā)送頻率相關(guān)。
4)抖動(Shake)。如果網(wǎng)絡(luò)發(fā)生擁塞,排隊延遲將影響端到端的延遲,并導(dǎo)致通過同一連接傳輸?shù)姆纸M延遲各不相同,抖動就是用來描述分組延遲變化的程度。
參照以上的參數(shù)指標(biāo),設(shè)計損傷儀來模擬不同狀態(tài)下的網(wǎng)絡(luò)傳輸情況,能夠?qū)P承載網(wǎng)的網(wǎng)絡(luò)性能分析提供測試環(huán)境。
IP承載網(wǎng)損傷儀是一個獨立的整體,它由多個模塊構(gòu)成,包括軟件控制和硬件平臺兩大部分,本文主要從FPGA方面來闡述損傷儀的設(shè)計與實現(xiàn)。本節(jié)內(nèi)容詳細分析了如何利用獲取的正態(tài)分布隨機數(shù)來模擬丟包率以及系統(tǒng)各個主要硬件模塊的設(shè)計思想。
傳統(tǒng)的模擬方法是向鏈路中持續(xù)發(fā)送模擬數(shù)據(jù)包,當(dāng)模擬數(shù)據(jù)包占滿鏈路時就可以得到最大可用帶寬,但是這種方法在進行時延、丟包等測量時需要多臺儀表配合,并且由于各臺儀表的時鐘不同步或者路由限制等問題無法得到準(zhǔn)確的測量結(jié)果[4],因此本文設(shè)計利用較少的FPGA硬件資源,通過獲取外部噪聲源中的正態(tài)分布隨機數(shù)來模擬丟包率,類似的方法還可以模擬時延、抖動、帶寬限制等,圖2所示為IP承載網(wǎng)損傷儀的總體框架圖,使用一臺損傷儀就能為IP承載網(wǎng)的性能評估測試提供不同的環(huán)境[5]。
圖2 IP承載網(wǎng)損傷儀總體框架圖
在模擬網(wǎng)絡(luò)損傷環(huán)境時,例如在指定丟包率下,無法確切地知道數(shù)據(jù)包在哪一時間段內(nèi)發(fā)生丟包,但是整個丟包的過程是服從正態(tài)分布的,因此只要得到有效的正態(tài)分布隨機數(shù)就能夠模擬丟包狀態(tài)下的數(shù)據(jù)傳輸情況。利用計算機的算法無法得到真正意義上的隨機數(shù)[6],但是自然環(huán)境中存在的各種各樣的噪聲,如熱量、聲音、電流等,甚至機器中的中斷時間,用戶點擊鼠標(biāo)的時間間隔等都是完全隨機的。因此在已知外部噪聲符合正態(tài)分布的情況下,可以將得到的外部噪聲信號源進行處理變成需要的正態(tài)分布隨機數(shù)。
外部噪聲源在真正意義上完全符合正態(tài)分布,利用傳感器將外部噪聲源的隨機信號進行采樣,經(jīng)過模數(shù)轉(zhuǎn)換后傳入濾波器,濾波器處理后將有效的信號存入熵池,F(xiàn)PGA就能從熵池中讀取隨機數(shù)源。
設(shè)從熵池中得到的多個隨機序列為X1,X2,…,Xn,它們相互獨立且服從正態(tài)分布N(μ,δ2),因此可以得到樣本均值為
樣本方差為
模擬丟包率就是對正態(tài)分布區(qū)間的概率值進行計算,若a和b是x的兩個定值,則可以根據(jù)下式計算區(qū)間(a,b)的概率
對于標(biāo)準(zhǔn)正態(tài)分布,由于它的平均數(shù)μ=0、標(biāo)準(zhǔn)差δ=1,因此很容易得到它在某個區(qū)間內(nèi)的概率值,而對于具有平均數(shù)為μ、標(biāo)準(zhǔn)差為δ的一般正態(tài)分布,只要將它們轉(zhuǎn)化為標(biāo)準(zhǔn)的正態(tài)分布,對照正態(tài)分布概率表就能夠獲得隨機變量x落入在某個區(qū)間內(nèi)的概率[7]。
將式(1)和式(2)代入式(4)可以求得正態(tài)分布任意區(qū)間的概率值,同理若已知丟包率的值就可以根據(jù)正態(tài)分布概率表,求得它在正態(tài)分布中所在的區(qū)間位置。
若已知設(shè)定的丟包率為e,則P(a<x<b)=F(b)-F(a)=e,查表得到它在標(biāo)準(zhǔn)正態(tài)分布中的位置在(-k,k),根據(jù)式(1)和式(2)得到正態(tài)總體X的樣本均值μ和樣本方差δ的值,所以根據(jù)式(4)可以求得b=kδ+μ,a=μ-kδ,即FPGA會在正態(tài)分布區(qū)間(a,b)內(nèi)任意位置隨機模擬丟包的發(fā)生。
通過查標(biāo)準(zhǔn)正態(tài)分布表比較容易得到對稱區(qū)間內(nèi)的概率值,當(dāng)然在其他區(qū)間也可以得到滿足條件的概率值,但依照式(3)比較難得到對概率密度函數(shù)積分的結(jié)果,因此采用上述將一般正態(tài)分布轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布,再通過查表的方式來計算概率值在正態(tài)分布中所處的區(qū)間位置。
2.2.1 FPGA 模塊
FPGA是整個損傷儀系統(tǒng)的核心,完成對網(wǎng)絡(luò)損傷狀態(tài)下如丟包率、時延、抖動等環(huán)境的模擬和數(shù)據(jù)在系統(tǒng)內(nèi)的處理等功能,F(xiàn)PGA的總體設(shè)計框架圖如圖3所示。
圖3 FPGA模塊的總體框架圖
FPGA通過總線接口和GMII接口與ARM和PHY相連接,當(dāng)數(shù)據(jù)從外部網(wǎng)絡(luò)傳入系統(tǒng)后,F(xiàn)PGA會統(tǒng)一協(xié)調(diào)各個模塊的工作狀態(tài),對數(shù)據(jù)進行相關(guān)的處理,根據(jù)相應(yīng)的系統(tǒng)配置與ARM的傳輸指令分配硬件工作資源,最后將處理得到的數(shù)據(jù)結(jié)果傳至上層。
對濾波器傳過來的數(shù)字信號進行處理分析,根據(jù)上述模擬丟包率的方法,模擬指定丟包率下的數(shù)據(jù)傳輸情況,除此之外還可以提供時延、抖動和帶寬限制等網(wǎng)絡(luò)損傷環(huán)境。
根據(jù)FPGA與ARM的命令交互格式對寄存器進行相關(guān)的設(shè)置,包括網(wǎng)絡(luò)訪問地址、基礎(chǔ)狀態(tài)、MAC配置、模擬網(wǎng)絡(luò)損傷環(huán)境和測試結(jié)果等,驅(qū)動程序向寄存器訪問地址配置上相應(yīng)的信息,F(xiàn)PGA根據(jù)配置信息執(zhí)行相關(guān)的操作。
2.2.2 ARM 模塊
ARM模塊是損傷儀系統(tǒng)中上層軟件與底層硬件交互的樞紐,承載提供測試界面的操作系統(tǒng),對數(shù)據(jù)信息進行處理。
ARM通過接口與各個模塊相連,根據(jù)相關(guān)的參數(shù)設(shè)置對其他模塊和系統(tǒng)的工作狀態(tài)進行切換和控制。
ARM與FPGA進行命令交互時的大部分?jǐn)?shù)據(jù)操作在寄存器中完成,只有加載/存儲指令可以訪問存儲器,使得指令執(zhí)行速度更快,效率更高。
ARM的運行模式可以根據(jù)上層傳輸指令進行改變,也可以通過外部中斷或異常處理改變。
2.2.3 PHY 模塊
PHY是與外部信號接口的芯片,在損傷儀系統(tǒng)中將外部網(wǎng)絡(luò)與FPGA模塊進行互聯(lián),是損傷儀與外部連接的重要模塊。
PHY將定義的數(shù)據(jù)傳輸信號類型、線路狀態(tài)、發(fā)送地址信息和數(shù)據(jù)校驗信息等通過RJ45接口發(fā)送到外部網(wǎng)絡(luò),還向網(wǎng)絡(luò)層提供尋址機構(gòu)和標(biāo)準(zhǔn)的數(shù)據(jù)接口。
根據(jù)以上設(shè)計思路,F(xiàn)PGA對從熵池中得到的多個正態(tài)分布隨機樣本進行分析,模擬指定丟包率下的數(shù)據(jù)傳輸情況。圖4為得到的標(biāo)準(zhǔn)正態(tài)分布曲線圖。
圖4 標(biāo)準(zhǔn)正態(tài)分布曲線圖
此法用到多塊RAM,每塊RAM儲存多個隨機信號的采樣數(shù)據(jù),最終輸出速率主要由FPGA的速度決定,如果需要進一步提升運行速度,可以降低采樣精度或者縮短隨機數(shù)的生成周期。設(shè)置指定數(shù)據(jù)(如丟包率30%)傳入FPGA進行模擬測試,根據(jù)上述方法,對照標(biāo)準(zhǔn)正態(tài)分布概率表,損傷儀在標(biāo)準(zhǔn)正態(tài)分布區(qū)間(-0.39,0.39)任意位置隨機模擬丟包發(fā)生。同理若已知隨機樣本為一般正態(tài)分布,它的平均數(shù)為μ=30、標(biāo)準(zhǔn)差為δ=10,則根據(jù)式(4)可以算出損傷儀在正態(tài)分布區(qū)間(26.1,33.9)的任意位置隨機模擬丟包發(fā)生,在其他區(qū)間則按正常情況發(fā)送數(shù)據(jù)包。
根據(jù)以上的設(shè)計方案,基于Xilinx Vertex 6工具,使用Verilog語言對硬件邏輯進行描述,在Modelsim上進行仿真測試[8],模擬指定丟包率下的數(shù)據(jù)傳輸情況。
圖5所示為Ethernet_II的部分?jǐn)?shù)據(jù)幀結(jié)構(gòu)。包括了8 byte長的前導(dǎo)碼,6 byte長接收端的MAC地址,6 byte長發(fā)送端的MAC地址,2 byte長的數(shù)據(jù)包的類型,以及46~1 500 byte長被封裝的數(shù)據(jù)包和4 byte長的錯誤檢驗碼。
圖5 Ethernet_II的部分?jǐn)?shù)據(jù)幀結(jié)構(gòu)
按照上述所示幀格式,在Modelsim上進行丟包率的模擬測試。由圖6可以看出,在120 008~141 438 ns時間段內(nèi)發(fā)出了30個數(shù)據(jù)包,設(shè)置丟包率為1/3,則每發(fā)3個數(shù)據(jù)包就有1個數(shù)據(jù)包被丟棄,例如在128 600~130 510 ns時間段內(nèi)發(fā)送了3個數(shù)據(jù)包,在129 822~130 510 ns時間段內(nèi)丟棄一個數(shù)據(jù)包,其他時間段同樣得到了此結(jié)果。最后測試結(jié)果得到了20個數(shù)據(jù)包,符合1/3的丟包率,此方案達到設(shè)計目的。
圖6 模擬丟包率仿真截圖
本文對當(dāng)前IP承載網(wǎng)性能測試的需求進行分析,提出一種基于FPGA的IP承載網(wǎng)損傷儀系統(tǒng)的設(shè)計方案,研究了利用正態(tài)分布隨機數(shù)模擬丟包率的方法,闡述了各個功能模塊的設(shè)計思想,最終得到了性能較好的正態(tài)分布隨機數(shù),并在仿真測試上通過了驗證。本設(shè)計方案能夠為IP承載網(wǎng)的性能評估測試提供不同的模擬環(huán)境,達到了預(yù)期目的,有著良好的應(yīng)用前景。
:
[1]OHIZE H O,ONWUKA E N.Impact of differentiated service billing on the quality of service of an IP network[C]//Proc.the 2010 2nd International Conference on Computer Technology and Development.Minna,Nigeria:ICCTD,2010:739-743.
[2]LUO Chuanfei,SUN Jun,XIONG Hongkai,et al.Design and implementation of an end-to-end system importing DTV from broadcasting network to broadband IP network[C]//Proc.the 2004 IEEE Asia-Pacific Conference on Circuits and Systems.[S.l.]:IEEE Press,2004:777-780.
[3]SUSUMU Y,TERUMASA A.Simple IP network based on QoS free concept[C]//Proc.the IEEE International Conference on Communications.Tokyo,Japan:IEEE Press,1998:1309-1314.
[4]EIJI O,NATTAPONG K,SHUNICHI T,et al.Scalable network emulator architecture to support IP+optical network management[C]//Proc.2010 IEEE Network Operations and Management Symposium.Tokyo,Japan:IEEE Press,2010:902-905.
[5]MAHADEVAN S,ANGIOLINI F,SPARS SPARSO J,et al.A reactive and cycle-true IP emulator for MPSoC exploration[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and System,2008,27(1):109-122.
[6]BANKS S,BEADING P,F(xiàn)ERENCZ A.FPGA implementation of pseudo random number generators for monte carlo methods in quantitative finance[C]//Proc.the 2008 International Conference on Reconfigurable Computing and FPGAs.Singapore:IEEE Press,2008:271-276.
[7]SHU Haiyan,HUANG Haibin,LI Te,et al.Bit-plane coding for source with generalized Gaussian distribution[C]//Proc.the 11th IEEE International Symposium on Multimedia.[S.l.]:IEEE Press,2009:17-23.
[8]ARSHAK K,JAFER E,IBALA C.Power testing of an FPGA based system using modelsim code coverage capability[C]//Proc.the 2007 IEEE Workshop on Design and Diagnostics of Electronic Circuits and Systems.[S.l.]:IEEE Press,2007:157-160.
Design of FPGA-based IP Carrying Network Emulator
LI Xing,ZHANG Zhizhong
(Key Lab.on Communication Networks and Testing Technology,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
In view of the IP carrying network structure and technical characteristics,firstly,a system framework of the FPGA-based IP carrying network emulator is proposed which combines with the current situation and requirements of network performance testing.Then,a way to emulate the packet loss rate based on the FPGA is researched.Finally,the design idea of the emulator hardware module is discussed in detail.The result of the simulation test shows that the system has a good application foreground.
IP carrying network;FPGA;network emulator;Gaussian distribution;Modelsim simulation
TN919.5
A
【本文獻信息】李星,張治中.基于FPGA的IP承載網(wǎng)損傷儀設(shè)計[J].電視技術(shù),2013,37(3).
國家科技重大專項(2012ZX03005002- 005;2012ZX03005-008);重慶市科委攻關(guān)項目(CSTC 2010AC2147);重慶市教委自然科學(xué)基金項目(KJzh10204)
李 星(1988— ),碩士生,主要研究方向為嵌入式軟件和驅(qū)動開發(fā);
張治中(1972— ),教授,主要研究方向為第三、四代移動通信測試技術(shù)和NGN網(wǎng)絡(luò)測試技術(shù)等。
責(zé)任編輯:任健男
2012-09-20