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