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