TCP流和UDP數(shù)據(jù)報(bào)之間的區(qū)別 1.TCP本身是面向連接的協(xié)議,S和C之間要使用TCP,必須先建立連接,數(shù)據(jù)就在該連接上流動(dòng),可以是雙向的,沒(méi)有邊界。所以叫數(shù)據(jù)流 ,占系統(tǒng)資源多 2.UDP不是面向連接的,不存在建立連接,釋放連接,每個(gè)數(shù)據(jù)包都是獨(dú)立的包,有邊界,一般不會(huì)合并。 3.TCP保證數(shù)據(jù)正確性,UDP可能丟包,TCP保證數(shù)據(jù)順序,UDP不保證 UDP使用場(chǎng)景 1.需要資源少,在網(wǎng)絡(luò)情況比較好的內(nèi)網(wǎng),或者對(duì)于丟包不敏感的應(yīng)用。如DHCP協(xié)議就是基于UDP的。一般的獲取IP地址都是內(nèi)網(wǎng)請(qǐng)求,而且一次獲取不到IP又沒(méi)事。 2.又比如基于UDP的RTP,TFTP,丟一幀數(shù)據(jù)問(wèn)題也不大。再比如一些設(shè)備發(fā)現(xiàn)協(xié)議等等。 3.不需要一對(duì)一溝通,建立連接,而是可以廣播的應(yīng)用。DHCPphp教程就是一種廣播的形式。VXLAN也是需要用到組播,也是基于UDP協(xié)議的。 4.需要處理速度快,時(shí)延低,可以容忍少數(shù)丟包,但是要求即便網(wǎng)絡(luò)擁塞,也毫不退縮,一往無(wú)前的時(shí)候。QUIC是Google提出的一種基于UDP改進(jìn)的通信協(xié)議,其目的是降低網(wǎng)絡(luò)通信的延遲,提供更好的用戶互動(dòng)體驗(yàn)。
|