流量發生器中幀間隔演算法實現

2021-08-18 21:44:39 字數 1415 閱讀 8858

寫完畢業**,覺得其中有幾個點值得記錄下來並進行進一步的思考和探索,主要是關於概率論和隨機過程方面的。

**主要是實現了乙個流量發生器,按照數學模型生成乙太網幀分組,用於軟體或者rtl級**使用。流量發生器是用軟體實現的,依據數學模型比如泊松模型、on/off模型來生成乙太網幀資料和幀間隔資料,將資料寫入本地檔案中,**時通過介面比如verilog的testbench讀入幀資料和幀間隔進行**。幀長可配置為固定幀長或者隨機幀長,根據不同的業務需求建立不同的數學模型生成符合業務特性的網路流量,因此,在不同的數學模型下確定幀間隔大小將是網路流量生成的核心步驟。

圖1首先簡要介紹一下幀間隔。如圖1所示,網路裝置在接收到乙個乙太網幀之後,需要短暫的一段時間讓節點從傳送狀態切換到接收狀態為下一幀的接收做好準備,相鄰兩幀之間需要時間間隔,即幀間隔(interframe gap,ifg)。規定以太幀的最小幀間隔為96位元時,在不同的鏈路速率下幀間隔最小值不一樣。

圖2在建立泊松模型生成網路流量時,假設泊松過程到達強度為a,則到達間隔服從引數為1/a的指數分布,對應於資料報的到達過程,表示為當前幀的第一位元到下一幀的第一位元之間的時間服從指數分布,如圖2所示。由圖易知幀間隔的計算方法:產生服從指數分布的時間序列,減去幀長及前導碼和幀開始符的傳輸時延即為幀間隔。然而乙太網幀的幀長範圍64byte~1518byte,前導碼7byte以及幀開始符1byte,最小幀間隔12byte,那麼所產生的指數分布是有約束的,即存在最小值。固定幀長時,最小值為幀長加上20byte對應的傳輸時延;隨機幀長時,最小值為最大幀長1518byte加上20byte對應的傳輸時延,這樣才能保證所產生的指數分布序列內可以傳輸任意合法長度的幀。若服從指數分布的序列存在最小值,即資料存在左截斷的情況(參考肖爭艷的《精算模型》),此時並不是標準的指數分布,標準的指數分布隨機變數從0開始。設隨機變數x服從指數分布,分布函式

假設f(d)=p,將

利用反函式法反解出x,

對在固定幀長及隨機幀長兩種情況下先分別計算出截斷點d,根據以上步驟求出截斷指數分布的隨機變數序列,進而計算出幀間隔。這種演算法可以保證產生的指數分布的時間序列內可以傳輸指定的合法幀長的幀,但是在隨機幀長時,為了保證能夠傳輸所有的幀,截斷點是大於最大幀長的傳輸時延的,因此,在實際使用時會導致幀間隔過大,速率較低。為了解決這個問題,以及設計乙個通用的模型來滿足任何流量模型下的幀間隔計算,最好的方式是設幀間隔服從分布b,幀長傳輸時延服從分布c,那麼到達間隔服從分布(b+c),在任何流量模型下(b+c)都有對應的分布,在設定不同幀長分布的情況下,計算幀間隔分布。

用OpenCV實現隨機發生器與文字

目標 學習使用隨機數發生器類 rng 並從乙個均勻分布中得到乙個隨機數。利用puttext函式來展現文字 將使用隨機數作為繪畫的引數,並用大量的幾何圖形來組成影象。既然會隨機初始化,這個過程會使用loop來自動實現。在opencv的sample資料夾中 一般是 your opencv folder ...

基於FPGA實現DDS正弦波發生器

名言 學無止境。1 開發環境 作業系統 win7 開發軟體 ise14.7 硬體平台 xilinx fpga spartan6 2 dds簡介 dds direct digital synthesizer 直接數字合成器。dds也稱訊號發生器,用它來產生一定頻率的正弦波。3 dds設計方案 基於fp...

演算法課 貪心 W12自學2密碼發生器

在對銀行賬戶等重要許可權設定密碼的時候,我們常常遇到這樣的煩惱 如果為了好記用生日吧,容易被破解,不安全 如果設定不好記的密碼,又擔心自己也會忘記 如果寫在紙上,擔心紙張被別人發現或弄丟了 這個程式的任務就是把一串拼音字母轉換為6位數字 密碼 我們可以使用任何好記的拼音串 比如名字,王喜明,就寫 w...