UDP協(xié)議的概念和功能
UDP協(xié)議也是互聯(lián)網(wǎng)基礎(chǔ)協(xié)議之一。它和TCP一樣同屬于傳輸層當(dāng)中的一個協(xié)議。那么這個協(xié)議的具體情況我們就從下面的文章中為大家詳細介紹一下。不過UDP協(xié)議是一個面向無連接的協(xié)議(TCP是向面連接的協(xié)議)。一個UDP連接的建立,不必象TCP協(xié)議那樣需要服務(wù)器端偵聽,也不需要有客戶機端請求連接和服務(wù)器端建立連接后雙方才能通信。
UDP協(xié)議概述
用戶數(shù)據(jù)報協(xié)議(UDP)是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議,IETF RFC 768是UDP的正式規(guī)范。在TCP/IP模型中,UDP為網(wǎng)絡(luò)層(network layer)以下和應(yīng)用層(application layer)以上提供了一個簡單的接口。
UDP只提供數(shù)據(jù)的不可靠交付,它一旦把應(yīng)用程序發(fā)給網(wǎng)絡(luò)層的數(shù)據(jù)發(fā)送出去,就不保留數(shù)據(jù)備份(所以UDP有時候也被認為是不可靠的數(shù)據(jù)報協(xié)議)。UDP在IP數(shù)據(jù)報的頭部僅僅加入了復(fù)用和數(shù)據(jù)校驗(字段)。
UDP首部字段由4個部分組成,其中兩個是可選的。各16位的源端口和目的端口用來標記發(fā)送和接受的應(yīng)用進程。因為UDP不需要應(yīng)答,所以源端口是可選的,如果源端口不用,那么置為零。在目的端口后面是長度固定的以字節(jié)為單位的長度字段,用來指定UDP數(shù)據(jù)報包括數(shù)據(jù)部分的長度。
由于缺乏可靠性,UDP應(yīng)用一般必須允許一定量的丟包、出錯和復(fù)制。由于UDP協(xié)議缺乏擁塞避免和控制機制,需要基于網(wǎng)絡(luò)的機制來減小因失控和高速UDP流量負荷而導(dǎo)致的擁塞崩潰效應(yīng)。
UDP協(xié)議只在IP的數(shù)據(jù)報服務(wù)之上增加了很少的功能,這就是端口的功能(有了端口,運輸層就能進行復(fù)用和分用)和差錯檢測的功能。另外,UDP協(xié)議應(yīng)用程序可以是客戶機,也可以是服務(wù)器程序,不必向TCP協(xié)議應(yīng)用程序那樣必須分別建立客戶機程序和服務(wù)器程序。在遠程控制軟件中,如果在局域網(wǎng)內(nèi)部傳輸屏幕信息,則使用UDP協(xié)議比較容易實現(xiàn)。但UDP協(xié)議不提供可靠性,它的可靠性是交給其他網(wǎng)絡(luò)設(shè)備來解決。同時用UDP協(xié)議來傳輸?shù)臄?shù)據(jù)一般較小,它需要IP協(xié)議來為它對數(shù)據(jù)進行分段。理論上IP協(xié)議數(shù)據(jù)報的***長度為65535個字節(jié) 。
UDP數(shù)據(jù)報格式
在這個數(shù)據(jù)報格式中,源端口是可選域,當(dāng)其有意義時,指的是發(fā)送應(yīng)用程序的UDP端口。如果不使用它,則在此域中填0。目的端口在有特定的目的網(wǎng)絡(luò)地址時有意義,指目標應(yīng)用程序的UDP端口。長度指的是此用戶數(shù)據(jù)報長度的八進制表示(這表明最小的數(shù)據(jù)報長度是8)。校驗和同樣是一種簡單的數(shù)學(xué)運算,用于檢查UDP消息中的位級錯誤。是對IP頭、UDP頭和數(shù)據(jù)中信息包頭的數(shù)位取反之和,再取反得到的。UDP協(xié)議包不具備TCP協(xié)議包復(fù)雜的可靠性與控制機制,沒有“序列”和“確認”兩個字段。
UDP協(xié)議的應(yīng)用
也許有的讀者會問,既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價值或必要呢?其實不然,在有些情況下UDP協(xié)議可能會變得非常有用。因為UDP具有TCP所望塵莫及的速度優(yōu)勢。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速度受到嚴重的影響。反觀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é)議的存在價值。因為相對于可靠性來說,這些應(yīng)用更加注重實際性能,所以為了獲得更好的使用效果(例如,更高的畫面幀刷新速率)往往可以犧牲一定的可靠性(例如,會面質(zhì)量)。這就是UDP和TCP兩種協(xié)議的權(quán)衡之處。根據(jù)不同的環(huán)境和特點,兩種傳輸協(xié)議都將在今后的網(wǎng)絡(luò)世界中發(fā)揮更加重要的作用.