一、 應用(yòng)背景
随着互聯網技術的飛(fēi)速發展,網絡相關的軟硬件應用(yòng)也(yě)越來(lái)越多。但(dàn)是應用(yòng)的開(kāi)發、測試大(dà)部分是在一些(xiē)網絡性能(néng)較好(hǎo)的局域網中進行的,但(dàn)是現(xiàn)實中的網絡是不可靠的,數據傳輸和(hé)交互可能(néng)存在丢包,亂序等問題,導緻整個系統出現(xiàn)故障,因此模拟在廣域網中存在的不确定問題,對(duì)應用(yòng)的部署運行是必要的。
二、 方案概述
湖南新實自(zì)主研發的廣域網硬件仿真平台,基于FPGA+CPU的FAST架構下(xià)實現(xiàn),廣域網仿真功能(néng)在硬件中實現(xiàn),可模拟廣域網中丢包,亂序,延時(shí)的情形。具體實現(xiàn)方式是在硬件中的五級流水(shuǐ)線中插入廣域網仿真模塊。
三、 FAST五級流水(shuǐ)線(FAST UM)
UM是FAST架構中硬件中最基礎的模塊,包含5個主要的子模塊,可實現(xiàn)對(duì)網絡分組的分組解析、查表匹配、動作(zuò)轉發,輸出統計(jì)功能(néng)。
用(yòng)戶定義的解析(UDP)
根據用(yòng)戶特定的處理(lǐ)需求,解析分組的協議(yì)以及分組是否滿足用(yòng)戶定制的屬性分類,生成後續控制分組處理(lǐ)的分組特征向量(PFV)以及生成MD信息。
用(yòng)戶定義關鍵字提取(UKE)
根據分組的特征向量,提取分組查表得關鍵字并将查找關鍵字(Key)、PFV及MD送給GME模塊。
通用(yòng)查表引擎(GME)
根據産生的關鍵字查表,獲取控制分組處理(lǐ)動作(zuò)和(hé)輸出控制的信息。
用(yòng)戶定義動作(zuò)(UDA)
實現(xiàn)用(yòng)戶定義的對(duì)分組的特定處理(lǐ),如修改分組頭,分組分片與重組,添加二層分組頭等。
通用(yòng)輸出引擎(GOE)
基于令牌桶實現(xiàn)對(duì)分組輸出的整形,如限制發往特定CPU 軟件UA或協議(yì)棧的流量,限制特定流發往特定端口的流量等。
四、 廣域網仿真模塊(MMM)
丢包模塊
根據配置的丢包率對(duì)輸入的包進行計(jì)數,即根據輸入的百分比,将報(bào)文(wén)中的指定比例的包丢掉,如5%即在配置成效時(shí)将每接收到(dào)的100個報(bào)文(wén)中的前5個報(bào)文(wén)丢棄。
亂序模塊
亂序模塊是數據通過乒乓的方式存儲在兩個FIFO内。在輸出時(shí)根據亂序的比例來(lái)實現(xiàn)對(duì)兩個FIFO控制。
即輸入時(shí)按1:1的方式将數據存儲在兩個FIFO中,在輸出時(shí)則根據丢包比例進行亂序,即若亂序率爲1%即輸出時(shí)每輸出99個數據後輸出在對(duì)應FIFO多輸出一個報(bào)文(wén),即每個FIFO接2:2輸出兩個,以保證出現(xiàn)亂序。
延時(shí)模塊
延時(shí)模塊是對(duì)需要延時(shí)的數據在FIFO中進行緩存,直到(dào)達到(dào)延時(shí)确定的時(shí)間爲止。即當第一個報(bào)文(wén)到(dào)達後開(kāi)始記時(shí),到(dào)指定時(shí)間輸出數據報(bào)文(wén)。