一種基于匯聚過程的網(wǎng)絡(luò)數(shù)據(jù)流生成方法與裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤指網(wǎng)絡(luò)數(shù)據(jù)流生成方法與裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的快速發(fā)展、網(wǎng)絡(luò)應(yīng)用的多樣化以及新型網(wǎng)絡(luò)應(yīng)用的快速部署,網(wǎng)絡(luò) 系統(tǒng)的規(guī)模、速度、復(fù)雜性日益提高。網(wǎng)絡(luò)設(shè)備,作為現(xiàn)代大型網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ),應(yīng)具有良好 的性能和穩(wěn)定性。所以,網(wǎng)絡(luò)設(shè)備的測試技術(shù)成為了網(wǎng)絡(luò)系統(tǒng)研究的一個重要方向。網(wǎng)絡(luò)數(shù) 據(jù)流生成,是一種向網(wǎng)絡(luò)設(shè)備施加近似于真實網(wǎng)絡(luò)流量行為的測試方法,對網(wǎng)絡(luò)設(shè)備的業(yè) 務(wù)能力分析有著重要的作用。
[0003] 目前,網(wǎng)絡(luò)流量行為已有諸多階段性的研究成果,但缺少較統(tǒng)一的、應(yīng)用于測試的 網(wǎng)絡(luò)流量生成方法,國內(nèi)在網(wǎng)絡(luò)設(shè)備測試技術(shù)領(lǐng)域的研究成果也較少。劃分已有的網(wǎng)絡(luò)流 量生成方法,主要有軟件、FPGA以及專用測試儀三類。
[0004] 軟件實現(xiàn)方案由計算機軟件程序模擬網(wǎng)絡(luò)流量行為,產(chǎn)生數(shù)據(jù)包并發(fā)送至端口輸 出緩存,具有靈活多樣、簡單低廉的優(yōu)勢。但端口線速率受限于軟硬件接口帶寬,不適用于 現(xiàn)代高速網(wǎng)絡(luò)測試。
[0005] FPGA實現(xiàn)方案能顯著降低接口帶寬的限制。一是軟硬件協(xié)同設(shè)計方案,軟硬件接 口采用數(shù)據(jù)生成參數(shù)而非數(shù)據(jù)包,F(xiàn)PGA根據(jù)數(shù)據(jù)生成參數(shù)控制數(shù)據(jù)包的產(chǎn)生與發(fā)送。保留 了軟件靈活多樣的優(yōu)點,但并沒有完全解除接口帶寬的限制。
[0006] 基于FPGA的硬件實現(xiàn)方案能完全回避接口帶寬的問題,通過硬件描述語言實現(xiàn)網(wǎng) 絡(luò)流量行為的數(shù)學(xué)模型,并完成數(shù)據(jù)包的產(chǎn)生與發(fā)送過程,端口線速率只與硬件運行速度 有關(guān)。然而,不同的網(wǎng)絡(luò)流量行為通常具有不同的數(shù)學(xué)模型,采用不同的網(wǎng)絡(luò)流量行為或是 參數(shù)對網(wǎng)絡(luò)設(shè)備進行測試需重新綜合下載。
[0007] 專用測試儀能有效地完成網(wǎng)絡(luò)設(shè)備測試,支持豐富的網(wǎng)絡(luò)協(xié)議,能產(chǎn)生復(fù)雜、高速 的測試網(wǎng)絡(luò)流量。但其價格昂貴,所以多用于成品測試,很難在網(wǎng)絡(luò)設(shè)備的開發(fā)階段對未完 成的設(shè)計或是單獨的模塊進行評估。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明針對【背景技術(shù)】中傳統(tǒng)網(wǎng)絡(luò)流量生成方案的不足,提供一種基于匯聚過程的 網(wǎng)絡(luò)數(shù)據(jù)流生成方法與裝置,能夠完全解除軟硬件接口帶寬限制,切換不同的網(wǎng)絡(luò)流量模 型也不用重新綜合下載,從而達到擴展性好,靈活性高,方便測試的目的。
[0009] 本發(fā)明的解決方案為一種基于匯聚過程的網(wǎng)絡(luò)數(shù)據(jù)流生成方法;該方法包括:
[0010] 步驟1:產(chǎn)生數(shù)據(jù)包請求信息;
[0011] 步驟2:請求信息排隊等候;
[0012] 步驟3:數(shù)據(jù)包封裝;
[0013] 所述步驟1具體方法為:利用多個數(shù)據(jù)源同時產(chǎn)生數(shù)據(jù)包請求信息,其中各數(shù)據(jù)源 采用相同的流量模型產(chǎn)生數(shù)據(jù)包請求信息;
[0014] 所述步驟2具體方法為:同時接收所有數(shù)據(jù)源產(chǎn)生的請求信息,并對各產(chǎn)生的請求 信息按照產(chǎn)生的先后順序進行排序;
[0015] 步驟3為:按照請求信息排列的順序產(chǎn)生相應(yīng)的數(shù)據(jù)包。
[0016] 進一步的,所述步驟1中的數(shù)據(jù)源模塊采用伯努利分布流量模型或0N/0FF流量模 型產(chǎn)生數(shù)據(jù)包請求信息。
[0017] 所述伯努利分布是一種離散分布,有兩種可能的結(jié)果。1表示成功,出現(xiàn)的概率為p (其中〇〈P〈l)』表示失敗,出現(xiàn)的概率為q = l-p。
[0018]所述自相似分布流量模型中,0N/0FF源由嚴格交替的ON和OFF狀態(tài)構(gòu)成。在ON狀 態(tài),數(shù)據(jù)源以固定的速率發(fā)送數(shù)據(jù)包;在OFF狀態(tài),數(shù)據(jù)源不發(fā)送任何數(shù)據(jù)包。0N狀態(tài)和OFF 狀態(tài)的時長獨立地服從于不同參數(shù)下的重尾分布。
[0019] 所述重尾分布是一種概率分布模型,它的尾部比指數(shù)分布要厚。
[0020] -種基于匯聚過程的網(wǎng)絡(luò)數(shù)據(jù)流生成裝置;該裝置包括:產(chǎn)生數(shù)據(jù)包請求信息部 分,請求信息排隊等候部分,數(shù)據(jù)包封裝模塊;其中產(chǎn)生數(shù)據(jù)包請求信息部分包括多個數(shù)據(jù) 源模塊,每個數(shù)據(jù)源模塊同時產(chǎn)生數(shù)據(jù)包請求信息;請求信息排隊等候部分包括:仲裁模 塊,請求緩存模塊;其中仲裁模塊是對多個數(shù)據(jù)源模塊產(chǎn)生的數(shù)據(jù)包請求信息進行控制,將 數(shù)據(jù)包請求信息分別鎖存,然后按順序存入請求緩存模塊中;最后數(shù)據(jù)包封裝模塊根據(jù)請 求緩存模塊中的請求信息按順序產(chǎn)生數(shù)據(jù)包。
[0021 ]進一步的,所述產(chǎn)生數(shù)據(jù)包請求信息部分中數(shù)據(jù)源模塊的數(shù)量為20。
[0022]進一步的,所述數(shù)據(jù)源模塊包括:伯努利源、0N/0FF源、多路選擇器;數(shù)據(jù)源模塊是 由多路選擇器選擇伯努利源或0N/0FF源產(chǎn)生數(shù)據(jù)包請求信息。
[0023]所述伯努利源,包括一個M序列的線性反饋移位寄存器LFSR、一個數(shù)值比較單元和 一個參考值ref;由二十個獨立的伯努利源匯聚能產(chǎn)生服從泊松分布的流量行為;
[0024] M序列線性反饋移位寄存器LFSR,Linear Feedback Shifting Register,能夠產(chǎn) 生除全零外的二進制偽隨機值rand,每個時鐘周期隨LFSR的改變而改變,M序列是指LFSR的 輸出序列周期達到最大值的序列;
[0025]數(shù)值比較單元,通過比較M序列LFSR中的偽隨機值rand和ref值,決定伯努利源是 否產(chǎn)生一個數(shù)據(jù)包請求。當(dāng)rancK ref?時,伯努利源產(chǎn)生一個數(shù)據(jù)包請求。這樣產(chǎn)生數(shù)據(jù)包 請求的概率便近似服從泊松分布;
[0026]參考值ref,通過接口寄存器可以由用戶設(shè)置,其值大小會影響數(shù)據(jù)包請求的產(chǎn) 生。
[0027] 所述0N/0FF源,包括0N狀態(tài)擬合器、OFF狀態(tài)擬合器、狀態(tài)控制器、多路選擇器、比 較器以及計數(shù)器。由二十個獨立的0N/0FF源匯聚能產(chǎn)生服從自相似分布的流量行為;
[0028] 0N狀態(tài)擬合器,產(chǎn)生0N狀態(tài)的時間長度;
[0029] OFF狀態(tài)擬合器,產(chǎn)生OFF狀態(tài)的時間長度;
[0030] 狀態(tài)控制器,根據(jù)比較器的比較結(jié)果判斷是否改變狀態(tài);
[0031] 多路選擇器,根據(jù)狀態(tài)控制器所指示的當(dāng)前狀態(tài)信息(0N或OFF狀態(tài)),從0N狀態(tài)擬 合器和OFF狀態(tài)擬合器中選擇一個時間長度;
[0032] 比較器,用于將計數(shù)器的值與狀態(tài)時間長度進行比較:在0N狀態(tài)內(nèi),若計數(shù)器的值 未達到0N狀態(tài)的時長,則生成器每個時鐘周期產(chǎn)生一個數(shù)據(jù)包產(chǎn)生請求;當(dāng)計數(shù)器的值到 達ON狀態(tài)的時長時,使?fàn)顟B(tài)控制器控制狀態(tài)由ON狀態(tài)切換到OFF狀態(tài),OFF狀態(tài)不產(chǎn)生請求; 反之亦然;
[0033]計數(shù)器,用于統(tǒng)計0N或者OFF狀態(tài)已經(jīng)持續(xù)的時長。
[0034] 所述數(shù)據(jù)包封裝模塊包括:多路選擇器,狀態(tài)控制器,接口寄存器;
[0035] 多路選擇器,是產(chǎn)生符合網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包的最終輸出端,根據(jù)不同時刻的狀態(tài)產(chǎn) 生不同段位的數(shù)據(jù)來構(gòu)成滿足協(xié)議的數(shù)據(jù)包;
[0036] 狀態(tài)控制器,產(chǎn)生符合網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包的格式控制器,控制當(dāng)前數(shù)據(jù)在包中的位 置;
[0037] 接口寄存器,提供網(wǎng)絡(luò)協(xié)議中目的地址、源地址、數(shù)據(jù)負載的設(shè)置。
[0038] 本發(fā)明提出的一種基于匯聚過程產(chǎn)生網(wǎng)絡(luò)數(shù)據(jù)流的方法與裝置,由硬件描述語言 實現(xiàn)流量行為,而并非靠軟件計算流量模型的關(guān)鍵參數(shù)以控制硬件生成流量,完全解除了 軟硬件接口帶寬的限制,使得端口線速率只與硬件運行速度有關(guān),大大提升流量速率。而 且,基于匯聚過程的流量生成方法能對具有典型網(wǎng)絡(luò)特性的泊松、自相似流量模型進行模 擬,每次切換流量模型無需重新綜合下載,只需通過修改軟件進行配置,具有良好的擴展性 和靈活性。
【附圖說明】
[0039] 圖1為基于匯聚過程的流量產(chǎn)生模型的示意圖;
[0040] 圖2為基于匯聚過程的流量產(chǎn)生裝置的結(jié)構(gòu)圖;
[0041]圖3為一個伯努利源原理示意圖;
[0042]圖4為線性反饋移位寄存器流程圖;
[0043]圖5為重尾分布的0N/0FF源模型圖;
[0044]圖6為自相似模型0N/0FF源結(jié)構(gòu)圖;
[0045]圖7為0N或者OFF狀態(tài)擬合器原理圖;
[0046] 圖8為請求緩存模塊裝置內(nèi)仲裁模塊的內(nèi)部結(jié)構(gòu)圖;
[0047] 圖9為數(shù)據(jù)包封裝模塊裝置內(nèi)部結(jié)構(gòu)圖;
[0048]圖10為數(shù)據(jù)包封裝模塊中狀態(tài)控制器具體處理流程圖;
【具體實施方式】
[0049] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實例僅僅用以解釋本發(fā)明,并不 用于限定本發(fā)明。
[0050] 在本發(fā)明一實例中,一種基于匯聚過程的流量產(chǎn)生模型的示意圖如圖1所示,將流 量產(chǎn)生過程分為數(shù)據(jù)包請求生成,排隊等候和數(shù)據(jù)封裝三個部分,分別對應(yīng)于實際網(wǎng)絡(luò)中 單個源的數(shù)據(jù)流產(chǎn)生,獨立數(shù)據(jù)流的匯聚以及流量到達網(wǎng)絡(luò)設(shè)備端口。
[0051] 具體地,本發(fā)明實例中基于匯聚過程的流量產(chǎn)生裝置的結(jié)構(gòu)圖如圖2所示,主要包 括20個數(shù)據(jù)源模塊1,1個仲裁模塊2,1個請求緩存模塊3和1個數(shù)據(jù)包封裝模塊4。
[0052]數(shù)據(jù)源模塊1,按照一定的概率產(chǎn)生1位的數(shù)據(jù)包生成請求,將請求發(fā)送給仲裁模 塊2,每個請求能夠使能產(chǎn)生一個完整的數(shù)據(jù)包。
[0053]仲裁模塊2,對數(shù)據(jù)源模塊1產(chǎn)生的數(shù)據(jù)請求進行仲裁管理,并將這些請求依次寄 存到請求緩存模塊3。
[0054]請求緩存模塊3,為寬度為1位、深度為1024的共享FIFO隊列,用于存放數(shù)據(jù)源模塊 1產(chǎn)生的數(shù)據(jù)請求。
[0055] 數(shù)據(jù)包封裝模塊4,根據(jù)請求緩存模塊3的狀態(tài)進行完整數(shù)據(jù)包的生成過程。當(dāng)請 求緩存模塊3為非空時,從請求緩存模塊3中取出一個生成請求,按照特定的協(xié)議類型和包 格式,填充實際的有效載荷,進而封裝產(chǎn)生一個完整的數(shù)據(jù)包。
[0056] 所述數(shù)據(jù)源模塊1,主要包括一個伯努利源11、一個0N/0FF數(shù)據(jù)源12和一個多路選 擇器13。
[0057] 伯努利源11,