基于FPGA的UDP硬件發(fā)送模塊設計與實現
UDP數據發(fā)送與接收過程
發(fā)送、接收UDP包的過程如圖1所示?! ?/p>
其中,UDP協議在OSI模型中的第四層,即傳輸層;而IP協議在網絡層,傳輸層的下一層。
要發(fā)送的數據經過傳輸層和網絡層,到達數據鏈路層,經過以太網MAC發(fā)送出去。所以還需加上MAC幀頭,以符合以太網幀格式。整幀結構如表1。
UDP協議特點
UDP協議特點如下。
?、盪DP是一個無連接協議,傳輸數據之前源端和終端不建立連接,當它想傳送時就簡單地去抓取來自應用程序的數據,并盡可能快地把它扔到網絡上。在發(fā)送端,UDP傳送數據的速度僅僅是受應用程序生成數據的速度、計算機的能力和傳輸帶寬的限制;在接收端,UDP把每個消息段放在隊列中,應用程序每次從隊列中讀一個消息段。
?、灿捎趥鬏敂祿唤⑦B接,因此也就不需要維護連接狀態(tài),包括收發(fā)狀態(tài)等,因此一臺主機可同時向多個客戶機傳輸相同的消息。UDP有不提供數據報分組、組裝和不能對數據包排序的缺點,也就是說,當報文發(fā)送之后,是無法得知其是否安全完整到達的。
⒊UDP信息包的標題很短,只有8個字節(jié),相對于TCP的20個字節(jié)信息包的額外開銷很小。
?、赐掏铝坎皇軗頂D控制算法的調節(jié),只受應用軟件生成數據的速率、傳輸帶寬、源端和終端主機性能的限制。
?、礥DP使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持復雜的鏈接狀態(tài)表。
?、禪DP是面向報文的。發(fā)送方的UDP對應用程序交下來的報文,在添加幀頭(header)后就向下交付給IP層。既不拆分,也不合并,而是保留這些報文的邊界,因此,應用程序需要選擇合適的報文大小。
由于UDP是不可靠的,若在網絡質量令人不十分滿意的環(huán)境下,UDP協議數據包丟失會比較嚴重。但是,由于UDP的特性:它不屬于連接型協議,因而具有資源消耗小,處理速度快的優(yōu)點,所以通常音頻、視頻和普通數據在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數據包,也不會對接收結果產生太大影響。
fpga相關文章:fpga是什么
評論