UDP協(xié)議應(yīng)用的范圍
我們知道,UDP協(xié)議的一些缺陷,它本身是一個(gè)不可靠的協(xié)議。但是很多地方卻又要使用這個(gè)協(xié)議。那么我們就來(lái)具體講解一下UDP協(xié)議應(yīng)用的相關(guān)內(nèi)容。讓我們看看它的一些應(yīng)用范圍,以及是如何彌補(bǔ)缺陷的。
UDP協(xié)議應(yīng)用場(chǎng)合與服務(wù)
UDP提供的服務(wù)是不可靠的、無(wú)連接的服務(wù),UDP適用于無(wú)須應(yīng)答并且通常一次只傳送少量數(shù)據(jù)的情況。由于UDP協(xié)議在數(shù)據(jù)傳輸過(guò)程中無(wú)須建立邏輯連接,對(duì)數(shù)據(jù)報(bào)也不進(jìn)行檢查,因此UDP具有較好的實(shí)時(shí)性,效率高。在有些情況下,包括視頻電話會(huì)議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。
UDP協(xié)議的幾個(gè)特性
(1) UDP是一個(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è)消息段。
(2) 由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護(hù)連接狀態(tài),包括收發(fā)狀態(tài)等,因此一臺(tái)服務(wù)機(jī)可同時(shí)向多個(gè)客戶機(jī)傳輸相同的消息。
(3) UDP信息包的標(biāo)題很短,只有8個(gè)字節(jié),相對(duì)于TCP的20個(gè)字節(jié)信息包的額外開(kāi)銷(xiāo)很小。
(4) 吞吐量不受擁擠控制算法的調(diào)節(jié),只受應(yīng)用軟件生成數(shù)據(jù)的速率、傳輸帶寬、源端和終端主機(jī)性能的限制。
雖然UDP是一個(gè)不可靠的協(xié)議,但它是分發(fā)信息的一個(gè)理想?yún)f(xié)議。例如,在屏幕上報(bào)告股票市場(chǎng)、在屏幕上顯示航空信息等等。UDP也用在路由信息協(xié)議RIP(Routing Information Protocol)中修改路由表。在這些應(yīng)用場(chǎng)合下,如果有一個(gè)消息丟失,在幾秒之后另一個(gè)新的消息就會(huì)替換它。UDP協(xié)議應(yīng)用于多媒體中,例如,Progressive Networks公司開(kāi)發(fā)的RealAudio軟件,它是在因特網(wǎng)上把預(yù)先錄制的或者現(xiàn)場(chǎng)音樂(lè)實(shí)時(shí)傳送給客戶機(jī)的一種軟件,該軟件使用的RealAudio audio-on-demand protocol協(xié)議就是運(yùn)行在UDP之上的協(xié)議,大多數(shù)因特網(wǎng)電話軟件產(chǎn)品也都運(yùn)行在UDP之上。
UDP協(xié)議應(yīng)用
UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價(jià)值或必要呢?其實(shí)不然,在有些情況下UDP協(xié)議可能會(huì)變得非常有用。因?yàn)閁DP具有TCP所望塵莫及的速度優(yōu)勢(shì)。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實(shí)際執(zhí)行的過(guò)程中會(huì)占用大量的系統(tǒng)開(kāi)銷(xiāo),無(wú)疑使速度受到嚴(yán)重的影響。反觀UDP由于排除了信息可靠傳遞機(jī)制,將安全和排序等功能移交給上層應(yīng)用來(lái)完成,極大降低了執(zhí)行時(shí)間,使速度得到了保證。
關(guān)于UDP協(xié)議的最早規(guī)范是RFC768,1980年發(fā)布。盡管時(shí)間已經(jīng)很長(zhǎng),但是UDP協(xié)議仍然繼續(xù)在主流應(yīng)用中發(fā)揮著作用。包括視頻電話會(huì)議系統(tǒng)在內(nèi)的許多應(yīng)用都證明了UDP協(xié)議的存在價(jià)值。因?yàn)橄鄬?duì)于可靠性來(lái)說(shuō),這些UDP協(xié)議應(yīng)用更加注重實(shí)際性能,所以為了獲得更好的使用效果(例如,更高的畫(huà)面幀刷新速率)往往可以犧牲一定的可靠性(例如,會(huì)面質(zhì)量)。這就是UDP和TCP兩種協(xié)議的權(quán)衡之處。根據(jù)不同的環(huán)境和特點(diǎn),兩種傳輸協(xié)議都將在今后的網(wǎng)絡(luò)世界中發(fā)揮更加重要的作用。
UDP協(xié)議和TCP協(xié)議的區(qū)別
TCP協(xié)議的中文名稱是 傳輸控制協(xié)議 。而UDP協(xié)議的中文名稱是 用戶數(shù)據(jù)報(bào)協(xié)議 。
TCP協(xié)議是互聯(lián)網(wǎng)發(fā)展過(guò)程中非常重要的一個(gè)協(xié)議,當(dāng)使用TCP協(xié)議作為底層協(xié)議時(shí),他能夠保證你發(fā)送的數(shù)據(jù)按照一定的時(shí)序到達(dá)目的地,并且目的地會(huì)根據(jù)TCP協(xié)議的控制數(shù)據(jù)來(lái)校驗(yàn)數(shù)據(jù)的完整性和正確性。同時(shí)TCP協(xié)議在網(wǎng)絡(luò)流量比較擁堵的時(shí)候,可以控制數(shù)據(jù)的流量來(lái)防止丟包的發(fā)生。需要了解,TCP協(xié)議是一個(gè)非常嚴(yán)謹(jǐn)?shù)膮f(xié)議,他能夠保證數(shù)據(jù)在惡劣介質(zhì)的網(wǎng)絡(luò)(比如wifi,grps連接等)上傳送的時(shí)候保證數(shù)據(jù)安全到達(dá)。
然而,TCP協(xié)議這種嚴(yán)謹(jǐn)性同時(shí)帶來(lái)了一個(gè)問(wèn)題,由于對(duì)數(shù)據(jù)完整性和正確性的苛刻要求,TCP協(xié)議不得不在協(xié)議自身中加入大量控制內(nèi)容。這些控制內(nèi)容可以用于檢驗(yàn)數(shù)據(jù)包的時(shí)序,完整性,正確性等。由于這些數(shù)據(jù)的加入,導(dǎo)致發(fā)送端和接收端的計(jì)算量加大,并且,由于這些控制數(shù)據(jù)的加入,使得傳輸數(shù)據(jù)的體積也加大了很多。加重了對(duì)網(wǎng)絡(luò)的負(fù)載。這些問(wèn)題最后都指向一個(gè)致命的問(wèn)題:數(shù)據(jù)的延遲性被增大了。
對(duì)于網(wǎng)絡(luò)游戲,視頻聊天,語(yǔ)音聊天這種應(yīng)用,由于用戶對(duì)數(shù)據(jù)實(shí)時(shí)性的要求很高,而對(duì)數(shù)據(jù)完全正確性的要求又有所降低。(比如,聊天的時(shí)候,如果有個(gè)別數(shù)據(jù)包丟失或者有誤,充其量你就得到一些聲音不清楚,不會(huì)影響聊天的體驗(yàn)。) UDP協(xié)議就誕生在這種需求下。
所以,總結(jié)起來(lái),UDP協(xié)議被廣泛的使用在對(duì)網(wǎng)絡(luò)數(shù)據(jù)傳輸實(shí)時(shí)性很高而對(duì)數(shù)據(jù)準(zhǔn)確性要求不是非常高的場(chǎng)合。而當(dāng)今網(wǎng)絡(luò)傳輸物理介質(zhì)的高速提升(光纖)也降低了數(shù)據(jù)包丟失的幾率。當(dāng)網(wǎng)絡(luò)狀態(tài)很好的時(shí)候,UDP協(xié)議的這兩個(gè)缺點(diǎn)又可以很大程度上被克服。因此,UDP協(xié)議現(xiàn)在被廣泛運(yùn)用在很多UDP協(xié)議應(yīng)用中。


















