国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      10g網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法

      文檔序號:7612362閱讀:199來源:國知局
      專利名稱:10g網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于高速網(wǎng)絡(luò)設(shè)備性能測試用的網(wǎng)絡(luò)性能測試技術(shù)領(lǐng)域。
      背景技術(shù)
      網(wǎng)絡(luò)互聯(lián)設(shè)備的性能測試是指測試通過對網(wǎng)絡(luò)互聯(lián)設(shè)備進行測試以達到對其性能進行評價的目的。一個性能測試系統(tǒng)由測試儀和被測設(shè)備組成,測試所關(guān)注的具體性能指標主要有吞吐量、延遲、丟失率、抖動等,其具體含義在IETF(互聯(lián)網(wǎng)工程工作組)的RFC(互聯(lián)網(wǎng)標準草案)中都有明確的規(guī)定。測試的方法主要是通過測試儀向被測設(shè)備發(fā)送流報文,通過觀察流報文經(jīng)過被測設(shè)備后的一些行為參數(shù)進行統(tǒng)計和分析。
      流是性能測試系統(tǒng)里重要的概念。它是指具有相同源地址和目的地址、相同上層協(xié)議,并按照一定順序發(fā)送具有一定的發(fā)送模式的報文序列。測試系統(tǒng)通過設(shè)置不同的流,并發(fā)送給被測設(shè)備,觀察被測設(shè)備的外部特性來評價它的性能。
      流調(diào)度是指當有多條流從同一個端口發(fā)出時,各流發(fā)送時間先后的一個控制。流調(diào)度可以分為串行流調(diào)度和并行流調(diào)度。串行流調(diào)度是指多條流依次發(fā)送,只有發(fā)送完一條流之后,才能發(fā)送下一條流,串行流調(diào)度相對簡單。并行流調(diào)度是指多條流同時從一個端口發(fā)出,調(diào)度方法相對復(fù)雜。本發(fā)明所提出的方法是針對并行流調(diào)度。
      在并行流調(diào)度方法的具體實現(xiàn)中,可以有兩種可行的方法純硬件實現(xiàn)和軟硬件結(jié)合實現(xiàn)。由于純硬件實現(xiàn)方法需要對流進行實時調(diào)度,因而對硬件邏輯運算速度要求比較高,所以低速端口的測試儀可以采用這種方法。但是對于高速端口的測試儀來說,硬件邏輯的運算速度不再比端口速率具有更快的優(yōu)勢,因此難以做到實時調(diào)度,所以需要采用軟硬件結(jié)合的方法提前進行調(diào)度。

      發(fā)明內(nèi)容
      今發(fā)明的目的在于提供一種高速端口測試儀用且易于實時調(diào)度的10G網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法。
      本發(fā)明的特征在于,它是在由監(jiān)控機、測試儀主板和被測設(shè)備依次連接的系統(tǒng)上實現(xiàn)的,所述的10G網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法一次由以下步驟組成步驟1流序列的生成,所述監(jiān)控機軟件根據(jù)用戶配置的待發(fā)送流的屬性生成一個由多個流片組成的流序列,每個流片包含了測試儀主板需要依次發(fā)送的流的類型、流號和一次要發(fā)送的IP報文的個數(shù),即發(fā)送幀數(shù),所述的類型分為SEND即發(fā)送流片,以及IDLE即空流片,或者是測試儀主板處于空閑狀態(tài)的時鐘節(jié)拍數(shù);所述流序列的生成步驟依次含有以下各子步驟步驟1-1監(jiān)控機響應(yīng)用戶的流發(fā)送命令,依次進行下述初始化操作清空發(fā)送流表,該流表的作用是保存當前該端口需要發(fā)送的流信息,所述端口是指監(jiān)控機用戶所選擇的測試端口;清空流序列緩沖區(qū),該緩沖區(qū)的作用是保存上一次流發(fā)送的流序列;監(jiān)控機把本次要發(fā)送的幾條流的流號存儲到所述發(fā)送流表中;監(jiān)控機根據(jù)從流表中讀取的流號,到監(jiān)控機的流配置數(shù)據(jù)結(jié)構(gòu)中讀取每條流的消息,其中包括流的帶寬、突發(fā)長度、每個幀的幀長,對于均勻流,突發(fā)長度為1;監(jiān)控機從內(nèi)存中讀取預(yù)存的測試端口在一個時鐘節(jié)拍內(nèi)允許發(fā)送的字節(jié)數(shù)BT;步驟1-2監(jiān)控機計算第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù),用Pi’表示,所述的時間片是指發(fā)送1000個幀的時間Pi&prime;=PERiPLi&Sigma;i=1nPERiPLi&CenterDot;1000]]>其中,PERi為第i條流的帶寬;PLi為第i條流需要發(fā)送的幀的字節(jié)數(shù);PLi=li·ki,li為第i條流每幀的幀長,ki為第i條流突發(fā)長度;步驟1-3調(diào)整Pi’的值若max{Pi&prime;}min{Pi&prime;}&le;500,]]>則執(zhí)行步驟1-4,否則,按以下各子步驟執(zhí)行步驟1-3-1計算每條流的平均幀數(shù)Pth;Pth=1000/n步驟1-3-2對于Pi’>Pth的流i,計算流i相對Pth的倍數(shù) 使得在發(fā)送第i條流時,一次要發(fā)送PLi=li·ki個字節(jié),其中,ki=ki·ki’;對于Pi’≤Pth的流i,ki’=1;步驟1-3-3轉(zhuǎn)入步驟1-2,重復(fù)計算第i條流在一個時間片內(nèi)發(fā)送幀的個數(shù)Pi’;步驟1-4監(jiān)控機計算每流每幀的發(fā)送時刻第i流第j個幀的發(fā)送時刻為tjitji=jBT&CenterDot;PERiPLi,0&le;j&le;Pi&prime;,1&le;i&le;n;]]>步驟1-5監(jiān)控機模擬流調(diào)度并生成流序列步驟1-5-1監(jiān)控機根據(jù)第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù)Pi’分配流序列鏈表 其中, 是流片數(shù)組的實際長度,每個流片的字節(jié)數(shù)為4;步驟1-5-2模擬流調(diào)度,令當前時刻t=0,流序列鏈表指針指向頭部;步驟1-5-3遍歷每一個流第一個要發(fā)送的幀,檢查發(fā)送時刻tji小于等于t的幀,然后再在所有這樣的幀所屬的流中選擇要發(fā)送的幀的字節(jié)數(shù)PLi最長的流,然后該流的包括類型、流號i、發(fā)送幀個數(shù)k在內(nèi)的信息填寫鏈表所指向的流片,并把t增加一個發(fā)送該幀所需的節(jié)拍數(shù);接著向后移動指針指向下一個流片;若所有的流中沒有發(fā)送時刻tji小于等于t的,表明沒有需要發(fā)送的流,則在流序列鏈表中插入一個空流片,節(jié)拍數(shù)是t減去當前最小的tji的值;步驟1-5-4對于余下的未發(fā)送幀,重復(fù)步驟1-5-3,直到每一條流的每一個幀都發(fā)送完成;步驟1-6遍歷流序列鏈表,把相鄰的兩個類型都為SEND且流號相同的流合并;步驟1-7監(jiān)控機把生成的流序列鏈表,封裝成一個消息,通過監(jiān)控機的消息通訊模塊發(fā)送給測試儀主板;步驟1-8測試儀主板軟件收到監(jiān)控機發(fā)來的“開始”消息后,把流序列發(fā)送到下述硬件中的發(fā)送電路,同時對硬件中的CPU接口電路內(nèi)的流發(fā)送寄存器置“1”;步驟2硬件邏輯發(fā)送,所述硬件是一個用現(xiàn)場可編程邏輯門陣列,即FPGA組成的發(fā)送電路組件,該組件依次從收到的流序列中取出每一個要發(fā)送的流片,完成調(diào)度發(fā)送,所述步驟2依次含有以下步驟步驟2-1該組件把流序列信息存儲在其內(nèi)的流序列信息存儲器內(nèi);步驟2-2該組件內(nèi)的流序列生成電路讀取流序列信息存儲器內(nèi)的所有數(shù)據(jù),轉(zhuǎn)換成以FIFO即先進先出隊列為數(shù)據(jù)結(jié)構(gòu)的流序列,并把所述流序列存儲在流序列緩存存儲器;步驟2-3該組件內(nèi)的流生成和發(fā)送電路檢查CPU接口電路收到該組件內(nèi)的CPU接口電路發(fā)來的“開始”信息后,從流序列緩存存儲器中取出第一個流片的內(nèi)容,讀取流號和發(fā)送的幀數(shù),生成一個幀,逐次把所有要發(fā)送的幀發(fā)送出去;步驟2-4把步驟2-3讀取的流片重新放在流序列緩存存儲器中,成為所述FIFO最后一項,重復(fù)步驟2-3。
      本調(diào)度方法是采用軟件模擬發(fā)送的方法來計算流的發(fā)送序列。該方法不依賴于實際測試系統(tǒng)的芯片運算速度和網(wǎng)絡(luò)發(fā)送速率,可以在10G甚至更高速率的測試系統(tǒng)上使用,可以適用于任何測試系統(tǒng)的流發(fā)送模塊。本方法適用于生成均勻流和多突發(fā)流的模擬,最多可以允許256條測試流并行發(fā)送,對于流發(fā)送的時間長度也沒有任何限制。
      本發(fā)明的核心內(nèi)容是軟件模擬的流調(diào)度策略,監(jiān)控機軟件運行在Microsoft Windows 2000或XP下,用Microsoft Visual Studio 6編程實現(xiàn)了。我們通過配置不同的流,對監(jiān)控機軟件的流調(diào)度結(jié)果進行了分析。測試結(jié)果如下測試例一流的配置情況如下(測試端口在一個時鐘節(jié)拍內(nèi)可以發(fā)送的字節(jié)數(shù)k=16)

      該配置經(jīng)過監(jiān)控機軟件的流調(diào)度算法進行模擬調(diào)度后,生成的流序列的一部分用圖形表示出來如圖9所示(該圖由Microsoft Excel XP根據(jù)調(diào)度結(jié)果的數(shù)據(jù)繪制)。橫軸表示的是時刻。豎長條分別代表A、B、C流的發(fā)送。從圖中可以看出三條流基本上都是可以均勻的被發(fā)送出來,調(diào)度結(jié)果很好。
      測試例二流的配置情況如下(測試端口在一個時鐘節(jié)拍內(nèi)可以發(fā)送的字節(jié)數(shù)k=16)

      該配置經(jīng)過監(jiān)控機軟件的流調(diào)度算法進行模擬調(diào)度后,生成的流序列的一部分用圖形表示出來如圖10所示(該圖由Microsoft Excel XP根據(jù)調(diào)度結(jié)果的數(shù)據(jù)繪制)。橫軸表示的是時刻。豎長條分別代表A、B、C、D流的發(fā)送。從圖中可以看出A、B兩條突發(fā)流被首先發(fā)送,占用帶寬很少。C、D兩條流所占帶寬基本相近,調(diào)度結(jié)果較好。


      圖1測試系統(tǒng)總體結(jié)構(gòu)示意2監(jiān)控機模塊示意3測試儀主板軟件模塊示意4測試儀主板發(fā)送FPGA邏輯5流序列的數(shù)據(jù)結(jié)構(gòu)圖6本發(fā)明所述方法軟件流程7本發(fā)明所述方法停止發(fā)送流的軟件流程8流序列生成電路FPGA邏輯9流調(diào)度模擬結(jié)果一圖10流調(diào)度模擬結(jié)果二具體實施方式
      本發(fā)明是10G網(wǎng)絡(luò)性能測試儀中的一個核心方法。整個測試系統(tǒng)由三部分組成監(jiān)控機(monitor)、測試儀主板(tester)和被測設(shè)備(DUT),連接情況如圖1所示。監(jiān)控機的模塊示意圖如圖2所示。它通過消息通訊完成對測試儀主板的控制。用戶圖形界面GUI負責與用戶的交互,包括測試參數(shù)的設(shè)定、測試結(jié)果的顯示。監(jiān)控機上的數(shù)據(jù)結(jié)構(gòu)都存儲在配置信息存儲模塊中,配置、結(jié)果處理模塊完成以上三個模塊的關(guān)聯(lián),負責進行配置信息的處理和測試結(jié)果的分析。每臺測試儀主板和監(jiān)控機之間通過100M以太網(wǎng)相連,當有多臺測試儀主板參與測試時,各主板同監(jiān)控機使用100M集線器(Hub)進行連接,由監(jiān)控機的級連維護模塊完它們的協(xié)同工作。
      測試儀主板包括軟件模塊和硬件邏輯兩部分,完成測試的基本功能,包括測試流量的實時產(chǎn)生和接收、測試統(tǒng)計量的測量、路由報文的產(chǎn)生和報文截取等。主板軟件示意圖如圖3所示。消息通訊模塊完成同監(jiān)控機的消息收發(fā),該模塊從測試儀主板上的消息端口通過以太網(wǎng)接受來自監(jiān)控機的消息,并交給消息處理模塊進一步處理。消息處理模塊處理后的結(jié)果也會返回給消息通訊模塊,該模塊再通過以太網(wǎng)返回給監(jiān)控機。連接維護模塊負責維護同監(jiān)控機的連接關(guān)系,它的作用是始終保持同監(jiān)控機的連接,一旦鏈路出現(xiàn)故障,可以立刻發(fā)現(xiàn),通知用戶,并重新與監(jiān)控機建立連接。TCP/IP協(xié)議棧包括了TCP、IP、ARP、PPP、BGP等測試所需要的所有互聯(lián)網(wǎng)協(xié)議。所有的這些軟件模塊都通過硬件驅(qū)動接口最終直接和硬件邏輯進行通訊。
      測試儀主板硬件發(fā)送FPGA的示意圖如圖4所示。與本發(fā)明有關(guān)的部分有流序列信息存儲器、流序列生成電路、流序列緩存存儲器和流生成與發(fā)送電路。流序列信息存儲器的輸入端與上述CPU接口電路的流序列輸出端相連,用來保存從軟件得到的流序列。流序列生成電路將流序列轉(zhuǎn)換成流生成與發(fā)送電路可以直接快速訪問的流序列格式,它的一個輸入端與上述流序列信息存儲器的輸出端相連。流序列緩存存儲器保存格式轉(zhuǎn)換后的流序列,它的數(shù)據(jù)、控制信號輸入端與流序列生成電路的相應(yīng)輸出端相連,它的滿信號輸出端與流序列生成電路中相應(yīng)的輸入端相連。流生成與發(fā)送電路通過讀取流序列緩存存儲器的信息進行真正的流調(diào)度發(fā)送,它的流開始或停止發(fā)送命令輸入端與上述CPU接口電路相應(yīng)的輸出端相連,接收來自軟件下達的“開始”或“停止”命令,它的流發(fā)送序列輸入端與上述流序列緩存存儲器的相應(yīng)輸出端相連。
      本發(fā)明的流調(diào)度方法采用了軟件事先計算流發(fā)送序列,硬件實時發(fā)送的方法。監(jiān)控機首先讀取用戶對流的配置信息,生成流發(fā)送序列,然后通過消息機制傳給測試儀主板,主板軟件將這些信息保存在硬件邏輯的存儲器中,并最終由流生成與發(fā)送電路完成流的實時調(diào)度發(fā)送。流調(diào)度方法包含兩個組成部分流序列的生成和硬件邏輯發(fā)送。
      (一).流序列的生成這一部分是本調(diào)度方法的核心部分。它完成的功能主要是監(jiān)控機軟件根據(jù)用戶配置的待發(fā)送流的屬性生成一個序列。該序列由多個流片組成,每個流片包含了測試儀主板需要依次發(fā)送的流和一次發(fā)送的幀個數(shù),或者測試儀主板處于空閑狀態(tài)的時鐘節(jié)拍數(shù),見圖5所示。
      流序列生成方法的基本設(shè)計原則是1.均勻流盡量在一個時間片內(nèi)均勻分布。
      2.多突發(fā)流的每一個突發(fā)周期內(nèi),不能有其它的流。
      3.端口內(nèi)所有要發(fā)送的流在一個時間片內(nèi)至少要發(fā)送一次。
      4.每一個時間片不能太長,也不能太短。
      我們設(shè)計的流的發(fā)送模式只有兩種均勻流和多突發(fā)流。均勻流是指流的一個報文發(fā)送后,需要間隔一段時間再發(fā)送下一個報文,每兩個報文之間的間隔應(yīng)當是一樣的。而多突發(fā)流是指流的發(fā)送以一個突發(fā)周期為單位,每兩個突發(fā)周期的時間間隔是一樣的,但是在突發(fā)周期內(nèi),流的報文是連續(xù)發(fā)出的。每個突發(fā)周期內(nèi)發(fā)送的報文個數(shù)叫做突發(fā)長度。
      流序列生成和流調(diào)度方法的工作如圖6、圖7所示,具體描述如下1.監(jiān)控機響應(yīng)用戶的流發(fā)送命令,進行初始化。
      當用戶在監(jiān)控機上選擇了測試端口以及該測試端口要發(fā)送的流并按下“發(fā)送”按鈕之后,監(jiān)控機響應(yīng)該命令進行初始化。首先監(jiān)控機將發(fā)送流表和流序列緩沖區(qū)清空。發(fā)送流表保存著當前該端口需要發(fā)送的所有流號。流序列緩沖區(qū)保存著上一次流發(fā)送的流序列。其次,監(jiān)控機將本次要發(fā)送的流的流號存儲到流表中。這里設(shè)需要發(fā)送的流有n條。
      監(jiān)控機從流表中讀取要發(fā)送的流號,并到監(jiān)控機的流配置數(shù)據(jù)結(jié)構(gòu)中讀取每條流的配置信息,這些信息包括流的帶寬PERi(每條流的發(fā)送速率占線速的百分比)、突發(fā)長度ki(一個突發(fā)周期內(nèi)該流發(fā)送幀的個數(shù)。因此均勻流的突發(fā)長度為1)、每一個幀的幀長li(幀的字節(jié)數(shù))。
      監(jiān)控機讀取測試端口在一個時鐘節(jié)拍內(nèi)可以發(fā)送的字節(jié)數(shù)BT,這個值是事先從硬件物理端口的參數(shù)中讀取到監(jiān)控機上的。
      如果流發(fā)送已經(jīng)開始,這時用戶可以按下“停止”按鈕,則監(jiān)控機讀取要停止的端口,并將一個“停止”消息發(fā)送給相應(yīng)測試儀主板上的該端口。
      2.監(jiān)控機計算第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù)Pi’。
      假設(shè)物理鏈路上的線速可以認為是每秒MS個字節(jié),則每條流的發(fā)送速率應(yīng)當為MS·PERi。因為每條流要發(fā)送的幀的字節(jié)數(shù)PLi=li·ki,所以每流每秒發(fā)送的幀的個數(shù)應(yīng)當為 個。則每秒發(fā)送的所有流的幀的個數(shù)是 個,即在任何一個時間段內(nèi),流i發(fā)送的幀的個數(shù)占這段時間內(nèi)所有流的發(fā)送幀的個數(shù)總和的百分比為PERiPLi/&Sigma;i=1nPERiPLi]]>在本發(fā)明的設(shè)計中,我們?nèi)“l(fā)送1000個幀的的時間為一個計算周期(稱作一個時間片),則在這個時間片內(nèi)流i發(fā)送的幀的個數(shù)Pi’為Pi&prime;=PERiPLi&Sigma;i=1nPERiPLi&CenterDot;1000]]>3.調(diào)整的Pi’值計算 的值是否大于500,如果否,則跳過此步。否則執(zhí)行下面的操作(1)計算Pth=1000n,]]>對于Pi’>Pth的流i進行計算 其它的流ki′=1。
      即表示在發(fā)送第i條流的報文的時候,一次要發(fā)送原先的ki’倍的個數(shù)。
      (2)對于ki’≠1的流,令ki=ki·ki’;PLi=li·ki。
      (3)轉(zhuǎn)入步驟2,重新計算第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù)Pi’。
      4.監(jiān)控機計算每流每幀的發(fā)送時刻第i流第j個幀發(fā)送時刻tji為tji=jBT&CenterDot;PERiPLi,(0&le;j&le;Pi&prime;)(1&le;i&le;n)]]>5.監(jiān)控機模擬流調(diào)度并生成流序列(1)監(jiān)控機根據(jù)已經(jīng)計算出的Pi’值,分配流序列鏈表,字節(jié)數(shù)為 該鏈表實際上是一個長度為 的流片數(shù)組,每個流片的字節(jié)數(shù)為4。
      (2)模擬流調(diào)度,令當前時刻t=0,流序列鏈表指針指向頭部。
      (3)遍歷每一個流第一個要發(fā)送的幀,檢查發(fā)送時刻tji小于等于t的幀(在t=0的時候,tji不可能小于t,但是當發(fā)送完一個幀后,t會增加,這時就可能出現(xiàn)某些流的某些幀的發(fā)送時刻tji小于t)。在所有這樣的幀中選擇PLi最長的流i。根據(jù)該流的信息填寫鏈表指針所指向的流片,流片的類型是“SEND”,流號是i,發(fā)送的幀的個數(shù)是ki。然后向后移動指針指向下一個流片,并將t增加發(fā)送該幀所需的節(jié)拍數(shù)。如果所有的流中沒有發(fā)送時刻tji小于等于t的,則在流序列鏈表中插入一個空流片。空流片的類型是“IDLE”,節(jié)拍數(shù)是t減去當前最小的tji的值。
      (4)對于剩下的未發(fā)送幀,重復(fù)操作(3)直到每一條流的每一個幀都發(fā)送完成。
      6.遍歷流序列鏈表。如果相鄰的兩個類型為SEND的流片的流號一樣,則需要合并這個兩個流片為一個。新流片的類型和流號不變,幀的個數(shù)是原來兩個流片的幀個數(shù)的和。
      7.監(jiān)控機將生成好的流序列鏈表,封裝成一個消息,通過監(jiān)控機的消息通訊模塊發(fā)送給測試儀主板的軟件。然后監(jiān)控機發(fā)送一個“開始”消息給測試儀主板軟件。
      8.測試儀主板軟件收到流序列消息后,將該消息的內(nèi)容通過硬件驅(qū)動接口函數(shù)發(fā)送給硬件的發(fā)送FPGA。
      9.測試儀主板軟件收到“開始”消息后,將CPU接口電路中的流發(fā)送寄存器置“1”。如果測試儀主板軟件收到的是“停止”消息,則將該寄存器置“0”。
      需要說明的是上面C步驟中,需要判斷 的值是否大于500,該數(shù)值是可以根據(jù)實際情況進行修改的。該數(shù)值越小,流之間的突發(fā)性差異越??;反之則越大。
      (二).硬件邏輯發(fā)送當軟件生成了流序列之后,將這個序列發(fā)送給硬件邏輯,發(fā)送FPGA會根據(jù)這個序列所表示的信息,依次取出每一個要發(fā)送的流片,并根據(jù)流片所代表的含義發(fā)送一個流或者停止若干個時鐘節(jié)拍,完成流的真正調(diào)度發(fā)送。具體的發(fā)送過程描述如下1.硬件發(fā)送FPGA接受來自主板軟件的流序列內(nèi)容,將該序列存儲在流序列信息存儲器內(nèi)。
      2.流序列生成電路讀取流序列信息存儲器內(nèi)的所有數(shù)據(jù),轉(zhuǎn)換成以FIFO為數(shù)據(jù)結(jié)構(gòu)的流序列便于讀取,該序列存儲在流序列緩存存儲器。
      3.流生成和發(fā)送電路檢查CPU接口電路內(nèi)部的一個“流開始寄存器”是否為“1”。如果為1,則從流序列緩存存儲器中取出第一個流片的內(nèi)容,讀取流號和發(fā)送的幀數(shù)k。接著FPGA根據(jù)流號讀取流配置生成一個幀。然后將該幀發(fā)送k次。如果流開始寄存器為“0”,則停止發(fā)送。
      4.將第3步讀取的流片重新放入流序列緩存存儲器中,成為該FIFO的最后一項,重復(fù)第三步。
      在硬件實現(xiàn)邏輯上,流序列生成電路FPGA的設(shè)計如圖8所示,包括E1內(nèi)部狀態(tài)機邏輯電路,它的狀態(tài)變化條件信息輸入端和與門二E9的輸出端相連;E2數(shù)值比較器它的輸入端與上述內(nèi)部狀態(tài)機邏輯電路E1的狀態(tài)值輸出端相連;E3地址寄存器,它的地址清零信號輸入端與或門E11的輸出端相連;E4加1運算的加法器,它的輸入端與上述地址寄存器E3的輸出端相連,并把加1后的值輸回地址寄存器E3;E5數(shù)據(jù)選通器一,它的一個輸入端與上述加1運算的加法器E4的輸出端相連,另一個選通信號輸入端和與門一E8的輸出端相連,它的輸出端與上述流序列信息存儲器B的流序列地址輸入端相連;E6流序列信息寄存器,它的輸入端與流序列信息存儲器的輸出端相連;E7數(shù)據(jù)選通器二,它的流序列信息輸入端與上述流序列信息寄存器E6的輸出端相連,它的選通信號輸入端和與門三E10的輸出端相連;
      E8與門一,它的一個輸入端與上述流序列信息寄存器E6的當前流序列不是流序列鏈表最后一個元素信號輸出端相連,而另一個輸出端與上述數(shù)值比較器E2的內(nèi)部狀態(tài)處于讀流序列階段(即當前狀態(tài)值為3)信號輸出端相連;E9與門二,它的一個輸入端與CPU接口電路的開始發(fā)送流信號輸出端相連,而另一個輸入端與上述流序列緩存存儲器的滿信號反相后的信號輸出端相連;E10與門三,它的一個輸入端與上述數(shù)據(jù)比較器E2的內(nèi)部狀態(tài)處于讀流序列階段(即當前狀態(tài)值為3)信號輸出端相連,而另一個輸入端與上述流序列緩存存儲器的滿信號反相后的信號輸出端相連;E11或門,它的一個輸入端與上述數(shù)值比較器E2的內(nèi)部狀態(tài)處于讀流序列階段(即當前狀態(tài)值為3)信號輸出端相連,而另一個輸入端與上述流序列緩存存儲器的滿信號反相后的信號輸出端相連。
      本發(fā)明中一個重要的數(shù)據(jù)結(jié)構(gòu)是流序列,該序列表示了發(fā)送時,每一刻的硬件邏輯動作,這里講說明流序列在實現(xiàn)時的具體方式。
      流序列中的每一個流片是32比特長度(如圖5所示)。當流片表示要發(fā)送一條流的時候,類型域是8比特,其值的最低比特為1;流號域是8比特,其值是需要發(fā)送的流的流號;幀個數(shù)域是16比特,表示一次需要發(fā)送該流的報文個數(shù)。當流片表示一個空拍時,類型域時8比特,其值的最低比特為0;空拍數(shù)域是24比特,表示空拍的節(jié)拍數(shù)。流序列通過類型字段表示每一個流片的具體含義。最低位表示發(fā)送流或者空拍,次低位表示該流片是否是流序列的最后一項,高6位目前規(guī)定位全0。
      當流序列生成電路處理由CPU接口發(fā)送來的流序列時,硬件邏輯根據(jù)地址依次讀取流序列信息存儲器內(nèi)的數(shù)據(jù)。地址首先指向流序列的第一個流片,讀取該流片。如果類型是00000001或者00000011,則根據(jù)流號和幀個數(shù)的值往流序列緩存存儲器內(nèi)加入該流片一項。如果類型是00000000或者是00000010,則往流序列緩存存儲器內(nèi)加入停止空拍數(shù)個時鐘節(jié)拍這一項。如果類型是00000010或00000011,則表示流序列結(jié)束,流序列生成電路處理完畢。
      權(quán)利要求
      1.10G網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法,其特征在于,它是在由監(jiān)控機、測試儀主板和被測設(shè)備依次連接的系統(tǒng)上實現(xiàn)的,所述的10G網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法依次由以下步驟組成步驟1流序列的生成,所述監(jiān)控機軟件根據(jù)用戶配置的待發(fā)送流的屬性生成一個由多個流片組成的流序列,每個流片包含了測試儀主板需要依次發(fā)送的流的類型、流號和一次要發(fā)送的IP報文的個數(shù),即發(fā)送幀數(shù),所述的類型分為SEND即發(fā)送流片,以及IDLE即空流片,或者是測試儀主板處于空閑狀態(tài)的時鐘節(jié)拍數(shù);所述流序列的生成步驟依次含有以下各子步驟步驟1-1監(jiān)控機響應(yīng)用戶的流發(fā)送命令,依次進行下述初始化操作清空發(fā)送流表,該流表的作用是保存當前該端口需要發(fā)送的流信息,所述端口是指監(jiān)控機用戶所選擇的測試端口;清空流序列緩沖區(qū),該緩沖區(qū)的作用是保存上一次流發(fā)送的流序列;監(jiān)控機把本次要發(fā)送的幾條流的流號存儲到所述發(fā)送流表中;監(jiān)控機根據(jù)從流表中讀取的流號,到監(jiān)控機的流配置數(shù)據(jù)結(jié)構(gòu)中讀取每條流的消息,其中包括流的帶寬、突發(fā)長度、每個幀的幀長,對于均勻流,突發(fā)長度為1;監(jiān)控機從內(nèi)存中讀取預(yù)存的測試端口在一個時鐘節(jié)拍內(nèi)允許發(fā)送的字節(jié)數(shù)BT;步驟1-2監(jiān)控機計算第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù),用Pi’表示,所述的時間片是指發(fā)送1000個幀的時間Pi&prime;=PERiPLi&Sigma;i=1nPERiPLi&CenterDot;1000]]>其中,PERi為第i條流的帶寬;PLi為第i條流需要發(fā)送的幀的字節(jié)數(shù);PLi=li·ki,li為第i條流每幀的幀長,ki為第i條流突發(fā)長度;步驟1-3調(diào)整Pi’的值若max{Pi&prime;}min{Pi&prime;}&le;500,]]>則執(zhí)行步驟1-4,否則,按以下各子步驟執(zhí)行步驟1-3-1計算每條流的平均幀數(shù)Pth;Pth=1000/n步驟1-3-2對于Pi’>Pth的流i,計算流i相對Pth的倍數(shù) 使得在發(fā)送第i條流時,一次要發(fā)送PLi=li·ki個字節(jié),其中,ki=ki·ki’;對于Pi’≤Pth的流i,ki’=1;步驟1-3-3轉(zhuǎn)入步驟1-2,重復(fù)計算第i條流在一個時間片內(nèi)發(fā)送幀的個數(shù)Pi’;步驟1-4監(jiān)控機計算每流每幀的發(fā)送時刻第i流第j個幀的發(fā)送時刻為tjitji=jBT&CenterDot;PERiPLi,0&le;j&le;Pi',1&le;i&le;n;]]>步驟1-5監(jiān)控機模擬流調(diào)度并生成流序列步驟1-5-1監(jiān)控機根據(jù)第i條流在一個時間片內(nèi)發(fā)送的幀的個數(shù)Pi’分配流序列鏈表 其中, 是流片數(shù)組的實際長度,每個流片的字節(jié)數(shù)為4;步驟1-5-2模擬流調(diào)度,令當前時刻t=0,流序列鏈表指針指向頭部;步驟1-5-3遍歷每一個流第一個要發(fā)送的幀,檢查發(fā)送時刻tji小于等于t的幀,然后再在所有這樣的幀所屬的流中選擇要發(fā)送的幀的字節(jié)數(shù)PLi最長的流,然后該流的包括類型、流號i、發(fā)送幀個數(shù)k在內(nèi)的信息填寫鏈表所指向的流片,并把t增加一個發(fā)送該幀所需的節(jié)拍數(shù);接著向后移動指針指向下一個流片;若所有的流中沒有發(fā)送時刻tji小于等于t的,表明沒有需要發(fā)送的流,則在流序列鏈表中插入一個空流片,節(jié)拍數(shù)是t減去當前最小的tji的值;步驟1-5-4對于余下的未發(fā)送幀,重復(fù)步驟1-5-3,直到每一條流的每一個幀都發(fā)送完成;步驟1-6遍歷流序列鏈表,把相鄰的兩個類型都為SEND且流號相同的流合并;步驟1-7監(jiān)控機把生成的流序列鏈表,封裝成一個消息,通過監(jiān)控機的消息通訊模塊發(fā)送給測試儀主板;步驟1-8測試儀主板軟件收到監(jiān)控機發(fā)來的“開始”消息后,把流序列發(fā)送到下述硬件中的發(fā)送電路,同時對硬件中的CPU接口電路內(nèi)的流發(fā)送寄存器置“1”;步驟2硬件邏輯發(fā)送,所述硬件是一個用現(xiàn)場可編程邏輯門陣列,即FPGA組成的發(fā)送電路組件,該組件依次從收到的流序列中取出每一個要發(fā)送的流片,完成調(diào)度發(fā)送,所述步驟2依次含有以下步驟步驟2-1該組件把流序列信息存儲在其內(nèi)的流序列信息存儲器內(nèi);步驟2-2該組件內(nèi)的流序列生成電路讀取流序列信息存儲器內(nèi)的所有數(shù)據(jù),轉(zhuǎn)換成以FIFO即先進先出隊列為數(shù)據(jù)結(jié)構(gòu)的流序列,并把所述流序列存儲在流序列緩存存儲器;步驟2-3該組件內(nèi)的流生成和發(fā)送電路檢查CPU接口電路收到該組件內(nèi)的CPU接口電路發(fā)來的“開始”信息后,從流序列緩存存儲器中取出第一個流片的內(nèi)容,讀取流號和發(fā)送的幀數(shù),生成一個幀,再逐次把所有要發(fā)送的幀發(fā)送出去;步驟2-4把步驟2-3讀取的流片重新放在流序列緩存存儲器中,成為所述FIFO最后一項,重復(fù)步驟2-3。
      全文摘要
      10G網(wǎng)絡(luò)性能測試系統(tǒng)并行流調(diào)度方法屬于網(wǎng)絡(luò)性能測試技術(shù)領(lǐng)域,其特征在于它在由監(jiān)控機、測試儀主板和被測設(shè)備組成的測試系統(tǒng)中,監(jiān)控機依次通過初始化、計算每條流在一個時間片內(nèi)發(fā)送的字節(jié)數(shù)、每條流每幀的發(fā)送時刻,根據(jù)每條流在一個時間片內(nèi)發(fā)送的幀數(shù)形成流序列鏈表各步驟生成流序列信息并把它發(fā)送到測試儀主板;然后再由用FPGA構(gòu)成的硬件邏輯中的互相串接的CPU接口電路、流序列信息存儲器、流序列生成電路、流序列緩存存儲器、流生成和發(fā)送電路完成發(fā)送任務(wù)。它適用于高速端口的測試儀,而且易于實時調(diào)度。
      文檔編號H04L12/26GK1688136SQ20051001175
      公開日2005年10月26日 申請日期2005年5月20日 優(yōu)先權(quán)日2005年5月20日
      發(fā)明者張小平, 曹銳, 趙有健, 徐明偉 申請人:清華大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1