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