朱新星

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