UDP
UDP是一個(gè)簡單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每一個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的IP數(shù)據(jù)報(bào)。
UDP數(shù)據(jù)報(bào)分裝成一份IP數(shù)據(jù)報(bào)的格式如圖

UDP不提供可靠性:他把應(yīng)用程序傳給的IP層的數(shù)據(jù)發(fā)送出去,但是并不保證他們能夠到達(dá)目的地。
IP數(shù)據(jù)報(bào)的最大長度是65535字節(jié),這是由IP首部(圖3-1)16比特總長度字段所限制的。去除20字節(jié)的IP首部和8個(gè)字節(jié)的UDP首部,UDP數(shù)據(jù)報(bào)中用戶數(shù)據(jù)的最長長度為65507字節(jié)。但是,大多數(shù)實(shí)現(xiàn)所提供的長度比這個(gè)最大值小。
我們將遇到兩個(gè)限制因素。第一,應(yīng)用程序可能會受到其程序接口的限制。socket API提供了一個(gè)可供應(yīng)用程序調(diào)用的函數(shù),以設(shè)置接收和發(fā)送緩存的長度。對于UDP socket,這個(gè)長度與應(yīng)用程序可以讀寫的最大UDP數(shù)據(jù)報(bào)的長度直接相關(guān)。現(xiàn)在的大部分系統(tǒng)都默認(rèn)提供了可讀寫大于8192字節(jié)的UDP數(shù)據(jù)報(bào)(使用這個(gè)默認(rèn)值是因?yàn)?192是NFS讀寫用戶數(shù)據(jù)數(shù)的默認(rèn)值)
第二個(gè)限制來自于TCP/IP的內(nèi)核實(shí)現(xiàn)??赡艽嬖谝恍?shí)現(xiàn)特性(或差錯(cuò)),使IP數(shù)據(jù)報(bào)長度小于65535字節(jié)
廣播和多播
三種IP地址:單播地址,廣播地址和多播地址。
廣播和多播僅適用于UDP,他們對需將報(bào)文同時(shí)傳往多個(gè)接收者的應(yīng)用來說是十分重要的。
廣播分類:
(1)受限的廣播
(2)指向網(wǎng)絡(luò)的廣播
(3)指向子網(wǎng)的廣播
(4)指向所有子網(wǎng)的廣播
多播提供兩類服務(wù)
(1)向多個(gè)地址發(fā)送數(shù)據(jù)。有許多向多個(gè)接收者傳送消息的應(yīng)用:例如交互式會議系統(tǒng)和想多個(gè)接受者分發(fā)郵件或者是新聞。如果不采用多播,目前這些應(yīng)用大多是采用TCP完成。然而即使是使用多播,某些應(yīng)用可能是采用TCP來保證它的可靠性。
(2)客戶對服務(wù)器的請求。例如無盤工作站需要確定啟動引導(dǎo)服務(wù)器。