登錄

UDP

1.什么是UDP

  UDP是User Datagram Protocol的簡稱,是TCP/IP體系結(jié)構(gòu)中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。UDP協(xié)議是IP協(xié)議與上層協(xié)議的接口,用端口號分別為運(yùn)行在同一設(shè)備上的多個應(yīng)用程序提供服務(wù)。它定義在IETFRFC768中。

  UDP是分發(fā)信息的理想?yún)f(xié)議,適用于追求效率且不需要額外可靠機(jī)制的情形,如音、視頻流媒體分發(fā)、高層協(xié)議或應(yīng)用程序提供錯誤和流控制功能時的快速數(shù)據(jù)分發(fā)。UDP服務(wù)于很多知名應(yīng)用,如網(wǎng)絡(luò)文件系統(tǒng)(NFS)、簡單網(wǎng)絡(luò)管理協(xié)}義(SNMP)、域名系統(tǒng)(DNS)以及簡單文件傳輸系統(tǒng)(TFTP)、動態(tài)主機(jī)配置協(xié)議(DHCP)、路由信息協(xié)議(RIP)等。

2.UDP報(bào)文格式

  每一個UDP報(bào)文稱為一個用戶數(shù)據(jù)報(bào),分UDP報(bào)頭和UDP數(shù)據(jù)區(qū)兩部分。報(bào)頭由四個16位長的字段組成,分別說明該報(bào)文的源端口、目的端口、報(bào)文長度以及校驗(yàn)和。

  源端口字段和目的字段包含了16位的UDP協(xié)議端口號。長度字段記錄該數(shù)據(jù)報(bào)的長度。以8位為組計(jì)算,包括報(bào)頭和用戶數(shù)據(jù)區(qū)。校驗(yàn)和字段是可選擇的,如該字段值為0表明不進(jìn)行校驗(yàn)。一般來說,使用校驗(yàn)和字段是必要的。

3.TCP和UDP的比較

  1、TCP基于連接,而UDP基于無連接;

  2、TCP基于可靠的傳輸,而UDP基于不可靠的傳輸;

  TCP的可靠保證,是它的三次握手機(jī)制,這一機(jī)制保證校驗(yàn)了數(shù)據(jù),保證了他的可靠性。而UDP就沒有了,UDP可能丟包、不能保證數(shù)據(jù)順序,所以不可靠。

  3、對系統(tǒng)資源的要求(TCP較多,UDP少);

  4、TCP報(bào)文是流模式,而UDP報(bào)文是數(shù)據(jù)報(bào)模式;

  5、TCP適用于傳輸大量的數(shù)據(jù),而UDP適用于少量數(shù)據(jù)的傳輸;

  6、速度上的區(qū)別;由于不對數(shù)據(jù)進(jìn)行校驗(yàn),且無需進(jìn)行三次握手,因此UDP的速度是TCP比不了的。在我們?nèi)粘5膽?yīng)用程序中老版QQ就是用UDP協(xié)議傳輸?shù)?,HTTP是用TCP協(xié)議傳輸?shù)?,它們在傳輸速度上的比較,讀者自己體驗(yàn)一下就能發(fā)現(xiàn)區(qū)別了。

4.TCP與UDP的選擇

  如果比較UDP包和TCP包的結(jié)構(gòu),很明顯UDP包不具備TCP包復(fù)雜的可靠性與控制機(jī)制。與TCP協(xié)議相同,UDP的源端口數(shù)和目的端口數(shù)也都支持一臺主機(jī)上的多個應(yīng)用。一個16位的UDP包包含了一個字節(jié)長的頭部和數(shù)據(jù)的長度,校驗(yàn)碼域使其可以進(jìn)行整體校驗(yàn)。許多應(yīng)用只支持UDP,如:多媒體數(shù)據(jù)流,不產(chǎn)生任何額外的數(shù)據(jù),即使知道有破壞的包也不進(jìn)行重發(fā)。很明顯,當(dāng)數(shù)據(jù)傳輸的性能必須讓位于數(shù)據(jù)傳輸?shù)耐暾?、可控制性和可靠性時,TCP協(xié)議是當(dāng)然的選擇。當(dāng)強(qiáng)調(diào)傳輸性能而不是傳輸?shù)耐暾詴r,如:音頻和多媒體應(yīng)用,UDP是最好的選擇。在數(shù)據(jù)傳輸時問很短,以至于此前的連接過程成為整個流量主體的情況下,UDP也是一個好的選擇,如:DNS交換。把SNMP建立在UDP上的部分原因是設(shè)計(jì)者認(rèn)為當(dāng)發(fā)生網(wǎng)絡(luò)阻塞時,UDP較低的開銷使其有更好的機(jī)會去傳送管理數(shù)據(jù)。TCP豐富的功能有時會導(dǎo)致不可預(yù)料的性能低下,但是TCP可靠的點(diǎn)對點(diǎn)連接越來越被絕大多數(shù)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)所采用。

評論  |   0條評論