基于哈希算法的以太網網橋的設計與實現

            2019-05-08 版權聲明 舉報文章

            基于哈希算法的以太網網橋的設計與實現

            摘要:以太網橋可以廣泛的應用于連接兩個或者多個局域網,通過學習接收到數據包的MAC地址, 在本地建立一個以MAC地址和網絡接口對應的網橋表,并根據這張表來轉發幀;通過使用FPGA內的以太網軟核替代MAC芯片,有效的減少了設計難度,降低了應用成本;使用哈希算法對網橋的地址表的維護可以提高網橋處理速度,節省硬件資源。

            關鍵詞:哈希算法 FPGA軟核 以太網網橋

            中圖分類號:TN911.22 文獻標識碼:A 文章編號:1007-9416(2015)05-0000-00

            1 引言

            以太網網橋工作在數據鏈路層,它根據MAC幀的目的地址對收到的幀進行轉發,具有幀過濾功能,通過可配置的策略可以實現以太網數據的通信管理。FPGA已經廣泛應用于電子通信領域,具有豐富的IP核資源,本文中使用了三態以太網軟核,支持IEEE 802.3標準,可以進行靈活的配置,適用于快速的以太網設計。哈希表作為一種快速查找表,在以太網橋的地址表的維護中,效率和處理速度高于MAC地址直接構成的查找表。

            2 設計方案

            網橋用于連接兩個或者多個不同的局域網。當一幀到達時,網橋必須決定將其丟棄還是轉發。如果轉發,則必須決定發往那個LAN接口,在插入網橋之初,由于網橋不知任何目的地的位置,因而采用擴散方式,將每個到來的幀送往除發送該幀的LAN接口外的所有其他LAN接口[1];隨時間的推移,網橋通過收集以太網幀的源MAC地址,創建并完善MAC地址表后,將以太網幀的目的MAC地址在MAC地址表內查找,查找到相同的MAC地址后,該幀將不會被轉發,而直接丟棄處理,當MAC地址表內不能找到相同的MAC地址,則對該幀進行轉發處理。使用哈希算法對地址表內的MAC地址進行運算后將運算所得的哈希值存儲,創建哈希表,可以將原來48位的MAC地址表縮小若干倍,從而減少查找相同MAC地址所需的時間。

            3 硬件設計

            以太網網橋的硬件設計組成由以太網接口電路、FPGA電路以及時鐘、電源等組成。

            以太網接口電路提供設備對外的以太網接口,FPGA電路完成設備的數據處理操作;界面顯示用來顯示設備運行狀態;時鐘電路向其他電路提供工作所需的時鐘信號;電源電路負責設備的供電。以太網網橋的硬件連接圖如下圖1所示。

            4 軟件設計

            本文設計的以太網網橋軟件部分位于FPGA芯片內,采用VHDL編程語言完成。軟件主要由兩部分組成,以太網媒體訪問控制(MAC)模塊設計和數據轉發控制模塊。

            4.1 MAC模塊設計

            MAC模塊負責對以太網數據幀的封裝、解封裝(發送、接收) :包括成幀(幀定界、同步) 、尋址(處理原地址和目的地址) 、校驗(檢測物理層的傳輸錯誤)、介質分配(避免沖突產生) 、和競爭解決(沖突的處理)等功能。

            MAC模塊使用了Altera公司的Triple Speed Ethernet MegaCore軟核作為主體進行了設計。該軟核支持IEEE 802.3標準,可以提供一個10/100/1000Mb的以太網MAC,并支持半雙工和全雙工工作模式[2]。

            Triple Speed Ethernet MegaCore軟核通過GMII/MII接口直接連接外部的PHY芯片進行數據通信,并通過PHY的管理接口對PHY進行配置和管理;使用Quarters軟件的IP核配置向導對軟核進行配置后,再通過VHDL程序模塊根據用戶需求進行初始化配置后,便可正常使用。

            4.2 數據轉發控制模塊設計

            數據轉發控制模塊用來完成以太網數據幀的轉發管理,決定數據幀是否丟棄或者轉發。

            數據轉發控制模塊的實現步驟為:1)當數據幀到達數據轉發控制模塊后,提取出該幀的源MAC地址和目的MAC地址;2)依據哈希函數Hash_SA[n]=SA[n]+SA[n +10]+SA[n +20]+SA[n +30]+SA[n +40] 0≤n≤7;Hash_SA [8]=SA[8]+SA[18]+SA[28]+SA[38];Hash_SA [9]=SA[9]+SA[19]+SA[29]+SA[39];其中SA[0~47]為48為的源目的地址,可以得到10為的Hash_SA[0~9],同理可以得到10位的Hash_DA[0~9][3];3)利用Hash_SA[0~9]創建并更新哈希表;4)遍歷哈希表清楚5分鐘內未更新的MAC地址,以保持哈希表的時效性;5)利用Hash_DA[0~9]進行哈希表的查找;6)當可以哈希值對應的地址區內找到與目的MAC相同的MAC地址時,丟棄該幀,反之將該幀轉發給另一個端口。

            5 結語

            本文設計的以太網網橋在以Altera公司的Cyclone II系列的EP2C35F672C8為平臺的網橋設備上進行了試驗驗證。使用了FPGA內4824個LE(15%)和2.8Mbit(50%)的存儲器資源,經驗證,可以正常完成以太網網橋的設計功能。

            參考文獻

            [1]周明天.TCP/ IP 網絡原理與技術.北京:清華大學出版社,1996.

            [2]周華茂 等.以太網MAC層IP軟核設計方法研究[J].半導體技術,2007,32(8):692-696.

            [3]劉華珠 等.基于哈希算法的網絡橋接器地址維護方法.科學技術與工程,2008,8:17.

            注:本文為網友上傳,不代表本站觀點,與本站立場無關。舉報文章

            0

            好文章需要你的鼓勵

            上一篇:Shell腳本語言在AIX服務器中的應用 下一篇:基于數據包分析的安卓應用軟件網絡故障診斷介...

            你需要文秘服務嗎?

            提供一對一文秘服務,獲得獨家原創范文

            了解詳情
            期刊發表服務,輕松見刊

            提供論文發表指導服務,1~3月即可見刊

            了解詳情

            被舉報文檔標題:基于哈希算法的以太網網橋的設計與實現

            被舉報文檔地址:

            https://wenmi.com/article/pr6i5p03j7lg.html
            我確定以上信息無誤

            舉報類型:

            非法(文檔涉及政治、宗教、色情或其他違反國家法律法規的內容)

            侵權

            其他

            驗證碼:

            點擊換圖

            舉報理由:
               (必填)

            發表評論  快捷匿名評論,或 登錄 后評論
            評論
            九九高清免费视频