国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

萬兆以太網(wǎng)TCP/IP 傳輸系統(tǒng)設(shè)計

2022-03-02 08:35宋海聲李先勤趙承心楊海波孫文健李承飛
現(xiàn)代電子技術(shù) 2022年5期
關(guān)鍵詞:服務器端以太網(wǎng)報文

宋海聲,彭 鵬,,李先勤,趙承心,楊海波,孫文健,,李承飛,

(1.西北師范大學 物理與電子工程學院,甘肅 蘭州 730070;2.中國科學院近代物理研究所,甘肅 蘭州 730000)

0 引 言

隨著近年來物理學家對核物理實驗要求的提升,現(xiàn)代核物理實驗裝置在規(guī)模、能級以及事件率上快速提升。我國目前核物理實驗裝置的數(shù)據(jù)傳輸系統(tǒng)多基于商用平臺開發(fā),存在數(shù)據(jù)帶寬有限、成本較高、系統(tǒng)構(gòu)建復雜、穩(wěn)定性較差等問題。為了達到高性能、高穩(wěn)定的數(shù)據(jù)傳輸需求,需要設(shè)計一種滿足實驗要求的數(shù)據(jù)傳輸系統(tǒng)。在考慮了高帶寬、低成本和高通用性的要求之后,本文擬在FPGA 平臺下實現(xiàn)對萬兆以太網(wǎng)TCP/IP 傳輸系統(tǒng)的設(shè)計,并對設(shè)計進行測試驗證。

1 系統(tǒng)設(shè)計方案

1.1 整體設(shè)計

如圖1 所示,萬兆以太網(wǎng)TCP/IP 傳輸系統(tǒng)設(shè)計主要由TCP/IP 協(xié)議棧模塊、介質(zhì)訪問控制子層(MAC)模塊和物理層接口(PHY)模塊三部分組成。TCP/IP 協(xié)議棧模塊通過用戶接口(AXIS)與介質(zhì)訪問控制子層(MAC)模塊相連接,介質(zhì)訪問控制子層(MAC)模塊通過XGMII接口連接到物理層接口(PHY)模塊,最后通過10G SFP+光纖與外界進行數(shù)據(jù)傳輸。本文MAC 模塊和PHY模塊分別調(diào)用了Xilinx 官方的10 Gbit Ethernet MAC IP核與10 Gbit Ethernet PCS/PMA IP 核來實現(xiàn)對應模塊的功能。下面將主要介紹TCP/IP 協(xié)議棧模塊的設(shè)計,對MAC 模塊和PHY 模塊將不再過多闡述。

圖1 系統(tǒng)設(shè)計框圖

1.2 TCP/IP 協(xié)議棧模塊設(shè)計

如圖2 所示,TCP/IP 協(xié)議棧模塊設(shè)計包含了協(xié)議報文的接收、解析、緩存、控制、組幀、發(fā)送等過程。在本設(shè)計中,調(diào)用Xilinx 官方RAM 緩存IP 核作為TCP/IP 協(xié)議棧在數(shù)據(jù)接收和發(fā)送過程中的數(shù)據(jù)緩存。

圖2 TCP/IP 協(xié)議棧模塊設(shè)計框圖

1.2.1 地址解析協(xié)議模塊設(shè)計

ARP 模塊設(shè)計主要分為兩個模塊:一個是ARP 接收模塊,另一個是ARP 發(fā)送模塊。如圖3 所示為ARP 接收模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。當接收信號為有效時,該模塊將持續(xù)從介質(zhì)訪問控制子層模塊接收ARP幀。隨后將ARP 幀進行解析并對操作類型進行判斷:當ARP 操作類型為0001 時,則進入ARP 請求狀態(tài),本地客戶端進行廣播尋找目標IP,直至目標IP 與本地IP 相匹配;當ARP 操作類型為0002 時,則進入ARP 應答狀態(tài),記錄下目標MAC 地址并緩存至RAM。這時發(fā)送模塊將ARP 的首部與ARP 的應答報文組幀成ARP 報文,封裝完畢后,發(fā)送ARP 報文。

圖3 ARP 接收模塊狀態(tài)轉(zhuǎn)移圖

1.2.2 網(wǎng)際協(xié)議模塊設(shè)計

IP 模塊設(shè)計主要分為兩個模塊:一個是IP 接收模塊,另一個是IP 發(fā)送模塊。如圖4 所示為IP 接收模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。當接收模塊的接收信號為有效時,該模塊將持續(xù)從介質(zhì)訪問控制子層模塊接收IP幀并解析。首先解析IP 首部,再根據(jù)IP 字段進行協(xié)議分層:當IP 協(xié)議字段為01,則解析出ICMP 數(shù)據(jù)報文;當IP 協(xié)議字段為17,則解析出UDP 數(shù)據(jù)報文;當IP 協(xié)議字段為06,則解析出TCP 數(shù)據(jù)報文;將解析的協(xié)議報文存入緩存。隨后進入發(fā)送模塊,將IP 首部依次與TCP、UDP、ICMP 協(xié)議的首部及數(shù)據(jù)部分進行組幀;最終IP 報文封裝完畢,發(fā)送IP 報文。

圖4 IP 接收模塊狀態(tài)轉(zhuǎn)移圖

1.2.3 網(wǎng)絡控制報文協(xié)議模塊設(shè)計

ICMP 模塊設(shè)計主要分為兩個模塊:一個是ICMP 接收模塊,另一個是ICMP 發(fā)送模塊。如圖5 所示為ICMP接收模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。當接收模塊的接收信號為有效時,該模塊將持續(xù)從IP 模塊接收ICMP幀。首先接收ICMP 首部,其次對ICMP 數(shù)據(jù)邊接收邊校驗,將錯誤的數(shù)據(jù)丟棄,正確的數(shù)據(jù)緩存至RAM。對校驗正確的ICMP 數(shù)據(jù)進行判斷:類型字段是否為08;代碼字段是否為00。若這兩個條件都可以滿足,即觸發(fā)ICMP 請求回復機制,并給出回復標志,進入到ICMP 發(fā)送模塊。發(fā)送模塊進入回顯應答狀態(tài)。首先將ICMP 報文的首部及數(shù)據(jù)部分進行組幀;然后將類型字段與代碼字段都設(shè)置為00 置于首部;最終ICMP 報文封裝完畢,發(fā)送ICMP 報文。

圖5 ICMP 接收模塊狀態(tài)轉(zhuǎn)移圖

1.2.4 用戶數(shù)據(jù)報協(xié)議模塊設(shè)計

UDP 模塊設(shè)計主要分為兩個模塊:一個是UDP 接收模塊,另一個是UDP 發(fā)送模塊。如圖6 所示為UDP 接收模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。

圖6 UDP 接收模塊狀態(tài)轉(zhuǎn)移圖

當接收模塊的接收信號為有效時,該模塊將持續(xù)從IP 模塊接收UDP 首部,接收完畢后對目標端口與PC 本地端口兩者進行判斷:只有兩者匹配的情況下,才接收UDP 數(shù)據(jù)并校驗。將錯誤的數(shù)據(jù)丟棄,正確的數(shù)據(jù)緩存至RAM。最后給出回復標志,表明UDP 報文接收完畢,進入發(fā)送模塊。發(fā)送模塊首先從RAM 中讀取UDP 數(shù)據(jù);然后將UDP 首部及數(shù)據(jù)部分組幀;最終UDP 報文封裝完畢,發(fā)送UDP 報文。

1.2.5 傳輸控制協(xié)議模塊設(shè)計

TCP 模塊設(shè)計主要分為四個模塊:TCP 接收模塊、TCP 發(fā)送模塊、TCP 接收發(fā)送控制模塊、TCP 流量控制模塊。如圖7 所示為TCP 接收模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。當接收模塊的接收信號為有效時,該模塊將持續(xù)從IP 模塊接收TCP 首部,接收完畢后對目標端口與PC本地端口兩者進行判斷:只有在兩者匹配的情況下,才能接收TCP 的數(shù)據(jù)部分,并對它進行校驗,將正確的數(shù)據(jù)緩存至RAM。最后給出回復標志,表明TCP 報文接收完畢,進入發(fā)送模塊。發(fā)送模塊首先從RAM 中讀取TCP 數(shù)據(jù);然后將TCP 首部及數(shù)據(jù)部分進行組幀;最終TCP 報文封裝完畢,發(fā)送TCP 報文。

圖7 TCP 接收模塊狀態(tài)轉(zhuǎn)移圖

TCP 接收發(fā)送控制模塊的主要功能是:從TCP 接收和TCP 發(fā)送這兩個模塊中接收到各種TCP 幀類型的標志,然后根據(jù)接收數(shù)據(jù)格式,給出需要發(fā)送的TCP 數(shù)據(jù)格式標志。如圖8 所示為TCP 流量控制模塊工作時的一個狀態(tài)轉(zhuǎn)移圖。

圖8 TCP 流量控制模塊狀態(tài)轉(zhuǎn)移圖

TCP 發(fā)送模塊開始發(fā)送數(shù)據(jù),并對窗口大小與閾值進行判斷:若窗口大小大于閾值,則繼續(xù)發(fā)送數(shù)據(jù);若窗口大小小于閾值,則等待直到窗口大小達到要求。TCP發(fā)送模塊正常發(fā)送數(shù)據(jù)時,若未收到ACK 確認信號,需將數(shù)據(jù)緩存并占用窗口的內(nèi)存,直至收到ACK 確認后才能清除緩存,接著發(fā)送TCP 數(shù)據(jù)。這樣有效解決了TCP發(fā)送緩存隊列問題,簡化了滑動窗口設(shè)計,避免擁塞。

2 系統(tǒng)測試

2.1 測試平臺搭建

如圖9 所示為本文搭建的萬兆以太網(wǎng)通信硬件測試環(huán)境平臺。該測試平臺選用黑金AX7325 FPGA 開發(fā)板,開發(fā)板具有4 路光纖接口,10G 光纖連接到開發(fā)板的OPT1 口。下面將設(shè)計的整個系統(tǒng)程序在FPGA 開發(fā)板中進行測試。

圖9 測試環(huán)境平臺圖

2.2 ARP 請求與應答測試

通過Wireshark 軟件抓取ARP 請求與應答測試結(jié)果,如圖10 所示。在FPGA 服務器端和PC 客戶端進行通 信 后,PC 客 戶 端(10.1.212.10)向FPGA 服 務 器 端(10.1.212.209)發(fā)起了ARP 請求,F(xiàn)PGA 服務器端收到請求后迅速應答,并告知其對應的MAC 地址是:00_0a_35_02_9d_e5。PC 客戶端收到對應目標MAC 地址,將其存入緩存RAM。

圖10 ARP 請求與應答測試結(jié)果圖

2.3 ICMP 回顯請求與應答測試

通過客戶端命令控制界面執(zhí)行Ping 指令進行ICMP 回顯測試,通過Wireshark 軟件抓取ICMP 請求與應答測試結(jié)果如圖11 所示。PC 客戶端(10.1.212.10)向FPGA 服務器端(10.1.212.209)發(fā)起了ICMP 回顯請求,F(xiàn)PGA 服務器端收到請求后迅速給出ICMP 回顯應答。測試結(jié)果表明ICMP 回顯測試正確,且應答速度快。

圖11 ICMP 請求與應答測試結(jié)果圖

如圖12 所示,在客戶端的命令控制界面執(zhí)行Ping指令,指令執(zhí)行大約10 min,測試結(jié)果表明,服務器端發(fā)送591 個包、客戶端接收到591 個包,無數(shù)據(jù)包丟失,表明雙方鏈路傳輸穩(wěn)定,以太網(wǎng)連接成功。

圖12 Ping 測試圖

2.4 TCP 通信基本功能測試

整個TCP 通信過程中,TCP 客戶端需要經(jīng)歷以下幾個過程:建立連接、發(fā)送數(shù)據(jù)、接收確認回復、斷開連接??蛻舳伺c服務器端的連接與斷開需要在電腦端通過Python 程序?qū)崿F(xiàn)。

如圖13 所示,通過Wireshark 工具捕獲TCP 通信過程前三個過程。通過序號1814、1815、1816 的報文“三次握手”實現(xiàn)TCP 通信連接。

圖13 TCP 基本通信結(jié)果圖

其中序號1814 為PC 客戶端發(fā)送的TCP 同步報文;序號1815 為FPGA 服務器端回應的連接同步報文;序號1816 為客戶端向服務器端發(fā)送確認SYN 已收到,實現(xiàn)成功連接。序號1817 為客戶端發(fā)送的TCP 數(shù)據(jù)報文,其總長為59 B,負載數(shù)據(jù)長度為5 B;序號1818 為FPGA 服務器端回應的ACK 報文,此時ACK 序號由原來的1 更新為6,實現(xiàn)正確應答。

在TCP 通信測試最后,需要進行通信斷開操作。如圖14 所示,利用Wireshark 工具捕獲TCP 通信測試的最后斷開過程。通過序號10951、10952、10953 和10954的報文“四次揮手”實現(xiàn)TCP 通信斷開。

圖14 TCP 通信斷開圖

其中序號10951 為客戶端發(fā)送的TCP 請求斷開報文;序號10952 報文為FPGA 服務器端對客戶端進行的ACK 確認回應;序號10953 報文為FPGA 服務器端對客戶端再次發(fā)送請求斷開報文;序號10954 報文為客戶端做出ACK 確認回應,完成雙方的TCP 斷開連接。

3 結(jié) 語

本文設(shè)計了一種基于FPGA 的萬兆以太網(wǎng)TCP/IP傳輸系統(tǒng),該設(shè)計對主要模塊TCP/IP 協(xié)議棧模塊自頂向下進行了模塊化設(shè)計。對設(shè)計的傳輸系統(tǒng)進行了全面的性能測試,通過Wireshark 軟件對ARP、ICMP 協(xié)議進行請求與應答測試,并成功地完成對客戶端(PC)與服務器端(FPGA)之間的以太網(wǎng)連接和TCP/IP 協(xié)議的數(shù)據(jù)傳輸,且傳輸過程持續(xù)穩(wěn)定,無數(shù)據(jù)丟失。測試結(jié)果表明,本文設(shè)計的萬兆以太網(wǎng)TCP/IP 傳輸系統(tǒng)符合實驗要求,可以將該傳輸系統(tǒng)更好地應用在核物理實驗,且前景光明。

猜你喜歡
服務器端以太網(wǎng)報文
基于J1939 協(xié)議多包報文的時序研究及應用
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設(shè)計
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
淺析反駁類報文要點
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應用
基于Qt的安全即時通訊軟件服務器端設(shè)計
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應用
ATS與列車通信報文分析
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
侯马市| 乐安县| 高碑店市| 沙洋县| 宝山区| 嘉善县| 双城市| 长宁区| 宜宾县| 泗阳县| 赫章县| 融水| 岢岚县| 乐安县| 溆浦县| 独山县| 九龙城区| 丽水市| 汝南县| 上虞市| 锡林郭勒盟| 光山县| 邵东县| 龙泉市| 原平市| 平凉市| 若尔盖县| 攀枝花市| 铜梁县| 许昌市| 白水县| 乐安县| 陆良县| 长子县| 华容县| 平塘县| 安国市| 奉贤区| 乌拉特前旗| 吉水县| 垦利县|