随着通信技術的(de)快速發展,網絡資源需求的(de)增長以(yǐ)及高質量服務的(de)訴求使的(de)網絡測量尤爲(wéi / wèi)重要(yào / yāo),目前網絡測試儀大(dà)多爲(wéi / wèi)國(guó)外産品且高精度測試儀價格昂貴。基于(yú)現狀本方案設計了(le/liǎo)一種基于(yú)FPGA實現的(de)高精度硬件測量解決方案,本方案通過主動測量的(de)方式實現,其爲(wéi / wèi)針對網絡延時(shí)進行測量,實現結構如圖1所示。其分爲(wéi / wèi)軟件與硬件實現部分,軟件部分用于(yú)實現測試數據的(de)下發以(yǐ)及測試結果顯示功能。硬件包括數據緩存、接收控制、發送控制功能。在(zài)此方案中爲(wéi / wèi)了(le/liǎo)保證軟硬件數據的(de)交互,本方案提供了(le/liǎo)軟件支撐層和(hé / huò)DMA硬件支撐邏輯,同時(shí)爲(wéi / wèi)了(le/liǎo)确保測試的(de)高精度,測試報文的(de)時(shí)間戳使用硬件時(shí)間戳。

圖1 硬件測量解決方案結構圖
本方案中,通過軟件測試報文生成器生成測試報文,通過軟件支撐層下發給硬件存儲,硬件可以(yǐ)支撐多個(gè)數據存儲,并可以(yǐ)根據需求設置每個(gè)報文的(de)發送間隔。發送時(shí)軟件下發開始發送信号,則硬件根據軟件配置的(de)報文以(yǐ)及下發的(de)次序,按時(shí)間發送間隔逐個(gè)進行發送。在(zài)發送時(shí)硬件記錄發送第一個(gè)報文的(de)時(shí)間戳值以(yǐ)及發送的(de)報文個(gè)數。待發送結束後軟件讀取相應的(de)時(shí)間戳和(hé / huò)報文個(gè)數值。
在(zài)報文返回時(shí),接收端記錄接收的(de)報文的(de)達到(dào)時(shí)間戳值,并将接收的(de)報文發送給軟件。軟件的(de)結果顯示模塊根據接收的(de)報文時(shí)間戳以(yǐ)及接收的(de)報文個(gè)數與發送時(shí)間戳及發送的(de)個(gè)數進行比較,從而(ér)可以(yǐ)分析出(chū)網絡的(de)發送延時(shí)以(yǐ)及網絡的(de)擁塞情況。

圖2 硬件測量實現圖
如圖2 展示了(le/liǎo)硬件測量的(de)實現的(de)細節,本方案中硬件不(bù)僅支持測量報文的(de)轉發,同時(shí)也(yě)支持普通報文的(de)處理。測量報文和(hé / huò)普通報文由解析模塊區分,當報文爲(wéi / wèi)普通報文時(shí),則可以(yǐ)正常轉發輸出(chū),當爲(wéi / wèi)測試報文時(shí)則進行緩存。軟件下發每一個(gè)測量報文均攜帶一個(gè)MD信息,其中包含了(le/liǎo)當前報文相比前一個(gè)報文的(de)發送間隔。定時(shí)發送器根據發送信号開始發送第一個(gè)報文,待發送結束後判斷後續報文的(de)發送間隔,根據間隔依次發送後續報文。發送過程中由定時(shí)發送器記錄發送報文的(de)個(gè)數,以(yǐ)及第一個(gè)發送報文的(de)時(shí)間戳值。發送的(de)測量報文經網絡轉發後将返回給測量模塊。接收的(de)測量報文會在(zài)接收控制器添加MD信息,即接收報文的(de)硬件時(shí)間戳值。并将攜帶時(shí)間戳值得報文發送給軟件進行計算處理。接收控制器會記錄接收的(de)測試報文的(de)數量。收發的(de)測試報文計數以(yǐ)及時(shí)間戳供軟件進行分析網絡情況時(shí)讀取。
通過測試驗證本測量方案可以(yǐ)實現納秒級的(de)測量精度,且可以(yǐ)實現延時(shí)的(de)精度測試、網絡擁塞情況測試以(yǐ)及網絡傳輸延時(shí)變化測試。