udp協(xié)議及包格式是什么
UDP協(xié)議也是互聯(lián)網(wǎng)基礎協(xié)議之一。它和TCP一樣同屬于傳輸層當中的一個協(xié)議。
不過UDP協(xié)議是一個面向無連接的協(xié)議(TCP是向面連接的協(xié)議)。一個UDP連接的建立,不必象TCP協(xié)議那樣需要服務器端偵聽,也不需要有客戶機端請求連接和服務器端建立連接后雙方才能通信。
UDP數(shù)據(jù)報格式在這個數(shù)據(jù)報格式中,源端口是可選域,當其有意義時,指的是發(fā)送應用程序的UDP端口。如果不使用它,則在此域中填0。目的端口在有特定的目的網(wǎng)絡地址時有意義,指目標應用程序的UDP端口。長度指的是此用戶數(shù)據(jù)報長度的八進制表示(這表明最小的數(shù)據(jù)報長度是8)。校驗和同樣是一種簡單的數(shù)學運算,用于檢查UDP消息中的位級錯誤。是對IP頭、UDP頭和數(shù)據(jù)中信息包頭的數(shù)位取反之和,再取反得到的。UDP協(xié)議包不具備TCP協(xié)議包復雜的可靠性與控制機制,沒有“序列”和“確認”兩個字段。
UDP協(xié)議的主要特點UDP是一種無連接的、不可靠的傳輸層協(xié)議;
在完成進程到進程的通信中提供了有限的差錯檢驗功能;
設計比較簡單的UDP協(xié)議的目的是希望以最小的開銷來達到網(wǎng)絡環(huán)境中的進程通信目的;
進程發(fā)送的報文較短,同時對報文的可靠性要求不高,那么可以使用UDP協(xié)議。
UDP的基本工作過程UDP用戶數(shù)據(jù)報傳輸過程中的封裝與拆封
UDP報文傳輸隊列
TCP/IP協(xié)議族中用端口號來標識進程;
端口號是在0到65535之間的整數(shù);
客戶程序隨機選取的臨時端口號;
每一種服務器程序被分配了確定的全局一致的熟知端口號;
每一個客戶進程都知道相應的服務器進程的熟知端口號。
UDP使用的熟知端口號
UDP檢驗和的檢驗范圍:
偽頭部
UDP頭
應用層數(shù)據(jù)
UDP協(xié)議的應用
也許有的讀者會問,既然UDP是一種不可靠的網(wǎng)絡協(xié)議,那么還有什么使用價值或必要呢?其實不然,在有些情況下UDP協(xié)議可能會變得非常有用。因為UDP具有TCP所望塵莫及的速度優(yōu)勢。雖然TCP協(xié)議中植入了各種安全保障功能,但是在實際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速度受到嚴重的影響。反觀UDP由于排除了信息可靠傳遞機制,將安全和排序等功能移交給上層應用來完成,極大降低了執(zhí)行時間,使速度得到了保證。
關于UDP協(xié)議的最早規(guī)范是RFC768,1980年發(fā)布。盡管時間已經(jīng)很長,但是UDP協(xié)議仍然繼續(xù)在主流應用中發(fā)揮著作用。包括視頻電話會議系統(tǒng)在內(nèi)的許多應用都證明了UDP協(xié)議的存在價值。因為相對于可靠性來說,這些應用更加注重實際性能,所以為了獲得更好的使用效果(例如,更高的畫面幀刷新速率)往往可以犧牲一定的可靠性(例如,會面質量)。這就是UDP和TCP兩種協(xié)議的權衡之處。根據(jù)不同的環(huán)境和特點,兩種傳輸協(xié)議都將在今后的網(wǎng)絡世界中發(fā)揮更加重要的作用.