朱新星
摘要:隨著計(jì)算機(jī)網(wǎng)絡(luò)的廣泛運(yùn)用,作為計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)中的重要協(xié)議之一 —— UDP傳輸協(xié)議,已經(jīng)廣泛的運(yùn)用到計(jì)算機(jī)網(wǎng)絡(luò)的數(shù)據(jù)傳輸?shù)倪^程中,而且希望數(shù)據(jù)可以高效、準(zhǔn)確、迅速的完成傳輸。本文研究了運(yùn)輸層的UDP協(xié)議發(fā)送來的數(shù)據(jù)包在網(wǎng)絡(luò)層的IP協(xié)議條件下對(duì)數(shù)據(jù)進(jìn)行處理、發(fā)送的過程,主要包括建立連接,數(shù)據(jù)的接收和緩存,IP數(shù)據(jù)包頭的處理以及數(shù)據(jù)發(fā)送四個(gè)步驟,接著設(shè)計(jì)了以為基礎(chǔ)FPGA的功能實(shí)現(xiàn)方案。
關(guān)鍵詞:UDP 協(xié)議 FPGA
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)05-0000-00
傳輸控制協(xié)議/網(wǎng)際協(xié)議(Transmission Control Protocol/ Internet Protocol,TCP/IP)協(xié)議簇是Internet 和全球各地網(wǎng)絡(luò)互聯(lián)的引擎。本文針對(duì)網(wǎng)際層IP協(xié)議下的一項(xiàng)功能的實(shí)現(xiàn),主要是針對(duì)從UDP協(xié)議下的數(shù)據(jù)包處理的過程。UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的IP數(shù)據(jù)報(bào)。
1數(shù)據(jù)報(bào)處理方案
1.1端口設(shè)計(jì)
端口應(yīng)該由外部端口和內(nèi)部端口組成。外部端口是控制硬件(以FPGA為例),主要包括時(shí)鐘輸入信號(hào)和復(fù)位輸入信號(hào)。內(nèi)部端口為運(yùn)輸層與網(wǎng)絡(luò)層相互聯(lián)系為原則設(shè)計(jì)的,不僅需要數(shù)據(jù)輸入輸出,也需要這兩個(gè)模塊間的相互控制。具體內(nèi)部端口主要包括數(shù)據(jù)輸入輸出信號(hào)及對(duì)應(yīng)的數(shù)據(jù)同步信號(hào),兩個(gè)準(zhǔn)備信號(hào),兩個(gè)IP地址輸入信號(hào)和輸入同步信號(hào)的結(jié)束信號(hào)。信號(hào)描述如下:
時(shí)鐘信號(hào)(clk)、復(fù)位信號(hào)(res)、UDP準(zhǔn)備信號(hào)(udprd)、輸入數(shù)據(jù)信號(hào)(isd):、輸入數(shù)據(jù)同步信號(hào)(iss)、輸入數(shù)據(jù)結(jié)束信號(hào)(ise)、源IP地址(sipa):、目的IP地址(dipa)、IP準(zhǔn)備信號(hào)(iprd)、輸出數(shù)據(jù)信號(hào)(osd)、輸出數(shù)據(jù)同步信號(hào)(oss)。
具體端口設(shè)置如圖1:
1.2 功能模塊
1.2.1 建立連接模塊
運(yùn)輸層和網(wǎng)絡(luò)層之間有很多協(xié)議,不同協(xié)議對(duì)應(yīng)不同數(shù)據(jù)包,如何選擇合適通路選擇特定數(shù)據(jù)包,這就要求有特定的連接過程完成特定的數(shù)據(jù)傳輸。
為了建立UDP協(xié)議數(shù)據(jù)和IP數(shù)據(jù)之間的相互通信,在方案中,選擇增添一個(gè)建立連接模塊,目的是完成兩個(gè)功能。首先是完成UDP協(xié)議下的數(shù)據(jù)在特定通道內(nèi)向網(wǎng)絡(luò)層的傳輸,其次是產(chǎn)生控制信號(hào),控制下一模塊工作狀態(tài)。在此過程中,主要涉及到兩個(gè)信號(hào),其一是udprd信號(hào),是建立連接第一步,這個(gè)信號(hào)旨在反映UDP數(shù)據(jù)報(bào)已經(jīng)準(zhǔn)備好發(fā)送;其二是iprd信號(hào),建立連接第二步,本信號(hào)是為了給運(yùn)輸層的UDP協(xié)議的反饋信號(hào),如果接到收此信號(hào),UDP數(shù)據(jù)報(bào)就開始發(fā)送了。本信號(hào)還有一個(gè)功能:當(dāng)網(wǎng)絡(luò)層對(duì)數(shù)據(jù)處理時(shí),此信號(hào)會(huì)自動(dòng)變低電平,將不會(huì)接收UDP數(shù)據(jù)報(bào),直到在網(wǎng)絡(luò)層的數(shù)據(jù)處理完畢。
1.2.2 數(shù)據(jù)接收存儲(chǔ)模塊
在此模塊下,可分為數(shù)據(jù)接收部分和數(shù)據(jù)的存儲(chǔ)部分。
首先介紹一下數(shù)據(jù)的接收部分,當(dāng)大量的數(shù)據(jù)報(bào)準(zhǔn)備進(jìn)入網(wǎng)絡(luò)層時(shí),有些數(shù)據(jù)是沒有意義的,所以要準(zhǔn)確有效的接收來自UDP協(xié)議下的數(shù)據(jù)報(bào),需要在這一部分完成此功能。在端口的設(shè)置,增加了同步接收信號(hào)和終止信號(hào),當(dāng)同步信號(hào)有效,數(shù)據(jù)為有效數(shù)據(jù),當(dāng)終止信號(hào)有效,則一個(gè)完整的UDP數(shù)據(jù)包就發(fā)送完成了。
當(dāng)大量的UDP數(shù)據(jù)包進(jìn)入到IP協(xié)議下準(zhǔn)備處理,而處理速度是遠(yuǎn)遠(yuǎn)小于接收的速度,會(huì)導(dǎo)致數(shù)據(jù)的滯留,甚至數(shù)據(jù)會(huì)丟失。為了解決該問題,增加了一個(gè)數(shù)據(jù)存儲(chǔ)模塊,把數(shù)據(jù)存儲(chǔ)下來,彌補(bǔ)了處理速度和接收速度的不匹配。
此模塊還額外的完成了一個(gè)功能:計(jì)數(shù)功能。在加I P數(shù)據(jù)頭需要每一包UDP數(shù)據(jù)包字節(jié)的長(zhǎng)度信息進(jìn)行存儲(chǔ)。
1.2.3 IP數(shù)據(jù)包頭處理及發(fā)送模塊
每一份的IP數(shù)據(jù)包都是有IP數(shù)據(jù)包頭和對(duì)應(yīng)的UDP數(shù)據(jù)包組合成的。需要將其對(duì)應(yīng)封裝。
當(dāng)IP數(shù)據(jù)包頭處理完成了,緊接任務(wù)就是將其發(fā)送出去。在發(fā)送完IP數(shù)據(jù)包頭緊跟要發(fā)送其對(duì)應(yīng)的UDP數(shù)據(jù)包,這就是一個(gè)完整的IP數(shù)據(jù)包。如果輸出同步信號(hào)有效,這些處理好的數(shù)據(jù)將發(fā)送到數(shù)據(jù)鏈路層供其使用。
2方案綜述
(1)運(yùn)輸層和網(wǎng)絡(luò)層之間建立連接,保證數(shù)據(jù)準(zhǔn)確無誤差的傳輸?shù)骄W(wǎng)絡(luò)層,產(chǎn)生控制信號(hào),控制數(shù)據(jù)的接收;產(chǎn)生反饋信號(hào),保證運(yùn)輸層的UDP數(shù)據(jù)包適時(shí)的傳送過來。(2)讀取UDP數(shù)據(jù)包并準(zhǔn)確的計(jì)數(shù),將已讀的數(shù)據(jù)存入緩存中,產(chǎn)生信號(hào),控制IP頭處理模塊的啟動(dòng),然后將必要數(shù)據(jù)傳遞到IP頭處理模塊。(3)處理數(shù)據(jù),將對(duì)應(yīng)的一包UDP數(shù)據(jù)產(chǎn)生相應(yīng)的IP數(shù)據(jù)包頭,形成一個(gè)IP數(shù)據(jù)包。然后將包頭發(fā)送,產(chǎn)生輸出的同步信號(hào),之后產(chǎn)生信號(hào)讀取緩存中的數(shù)據(jù),通過輸出端口將其發(fā)送出去。
這就是一個(gè)UDP數(shù)據(jù)包的處理過程,不斷反復(fù)以上步驟,UDP數(shù)據(jù)段就轉(zhuǎn)變成了IP數(shù)據(jù)段。
本方案增加了同步數(shù)據(jù)的輸出信號(hào),這就可以自由的控制輸入輸出數(shù)據(jù),不會(huì)導(dǎo)致數(shù)據(jù)的意外丟失。而這些信號(hào)還可以支持?jǐn)?shù)據(jù)間斷輸入,給運(yùn)輸層數(shù)據(jù)傳輸很大的靈活性;還增加了udp和iprd信號(hào),它們完成這兩個(gè)層連接,給數(shù)據(jù)傳輸提供良好的初始條件。
參考文獻(xiàn)
[1]TCP-IP詳解(中文).pdf.
[2]張帆.《基于FPGA的IP協(xié)議處理器》.湖南大學(xué)碩士論文.
[3]雷釗等.《基于FPGA的TCP-IP協(xié)議的實(shí)現(xiàn)》.電腦編程技巧與維護(hù),2009(5).
數(shù)字技術(shù)與應(yīng)用2016年5期