TCP的優(yōu)點(diǎn): 可靠伴鳖,穩(wěn)定 TCP的可靠體現(xiàn)在TCP在傳遞數(shù)據(jù)之前节值,會(huì)有三次握手來(lái)建立連接,而且在數(shù)據(jù)傳遞時(shí)榜聂,有確認(rèn)搞疗、窗口、重傳须肆、擁塞控制機(jī)制匿乃,在數(shù)據(jù)傳完后桩皿,還會(huì)斷開(kāi)連接用來(lái)節(jié)約系統(tǒng)資源。 TCP的缺點(diǎn): 慢扳埂,效率低业簿,占用系統(tǒng)資源高,易被攻擊 TCP在傳遞數(shù)據(jù)之前阳懂,要先建連接梅尤,這會(huì)消耗時(shí)間,而且在數(shù)據(jù)傳遞時(shí)岩调,確認(rèn)機(jī)制巷燥、重傳機(jī)制、擁塞控制機(jī)制等都會(huì)消耗大量的時(shí)間号枕,而且要在每臺(tái)設(shè)備上維護(hù)所有的傳輸連接缰揪,事實(shí)上,每個(gè)連接都會(huì)占用系統(tǒng)的CPU葱淳、內(nèi)存等硬件資源钝腺。 而且,因?yàn)門CP有確認(rèn)機(jī)制赞厕、三次握手機(jī)制艳狐,這些也導(dǎo)致TCP容易被人利用,實(shí)現(xiàn)DOS皿桑、DDOS毫目、CC等攻擊。
UDP的優(yōu)點(diǎn): 快诲侮,比TCP稍安全 UDP沒(méi)有TCP的握手镀虐、確認(rèn)、窗口沟绪、重傳刮便、擁塞控制等機(jī)制,UDP是一個(gè)無(wú)狀態(tài)的傳輸協(xié)議近零,所以它在傳遞數(shù)據(jù)時(shí)非撑岛耍快。沒(méi)有TCP的這些機(jī)制久信,UDP較TCP被攻擊者利用的漏洞就要少一些窖杀。但UDP也是無(wú)法避免攻擊的,比如:UDP Flood攻擊…… UDP的缺點(diǎn): 不可靠裙士,不穩(wěn)定 因?yàn)閁DP沒(méi)有TCP那些可靠的機(jī)制入客,在數(shù)據(jù)傳遞時(shí),如果網(wǎng)絡(luò)質(zhì)量不好,就會(huì)很容易丟包桌硫。 基于上面的優(yōu)缺點(diǎn)夭咬,那么: 什么時(shí)候應(yīng)該使用TCP: 當(dāng)對(duì)網(wǎng)絡(luò)通訊質(zhì)量有要求的時(shí)候,比如:整個(gè)數(shù)據(jù)要準(zhǔn)確無(wú)誤的傳遞給對(duì)方铆隘,這往往用于一些要求可靠的應(yīng)用卓舵,比如HTTP、HTTPS膀钠、FTP等傳輸文件的協(xié)議掏湾,POP、SMTP等郵件傳輸?shù)膮f(xié)議肿嘲。 在日常生活中融击,常見(jiàn)使用TCP協(xié)議的應(yīng)用如下: 瀏覽器,用的HTTP FlashFXP雳窟,用的FTP Outlook尊浪,用的POP、SMTP Putty封救,用的Telnet拇涤、SSH QQ文件傳輸 ………… 什么時(shí)候應(yīng)該使用UDP: 當(dāng)對(duì)網(wǎng)絡(luò)通訊質(zhì)量要求不高的時(shí)候,要求網(wǎng)絡(luò)通訊速度能盡量的快誉结,這時(shí)就可以使用UDP工育。 比如,日常生活中搓彻,常見(jiàn)使用UDP協(xié)議的應(yīng)用如下: QQ語(yǔ)音 QQ視頻 TFTP ……
有些應(yīng)用場(chǎng)景對(duì)可靠性要求不高會(huì)用到UPD,比如長(zhǎng)視頻嘱朽,要求速率
小結(jié)TCP與UDP的區(qū)別:
1.基于連接與無(wú)連接旭贬;
2.對(duì)系統(tǒng)資源的要求(TCP較多,UDP少)搪泳;
3.UDP程序結(jié)構(gòu)較簡(jiǎn)單稀轨;
4.流模式與數(shù)據(jù)報(bào)模式 ;
5.TCP保證數(shù)據(jù)正確性岸军,UDP可能丟包奋刽,TCP保證數(shù)據(jù)順序,UDP不保證艰赞。
tcp協(xié)議和udp協(xié)議的差別
TCP UDP
是否連接 面向連接 面向非連接
傳輸可靠性 可靠 不可靠
應(yīng)用場(chǎng)合 傳輸大量數(shù)據(jù) 少量數(shù)據(jù)
速度 慢 快
TCP與UDP區(qū)別總結(jié):
1佣谐、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接
2方妖、TCP提供可靠的服務(wù)狭魂。也就是說(shuō),通過(guò)TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò)雌澄,不丟失斋泄,不重復(fù),且按序到達(dá);UDP盡最大努力交付镐牺,即不保證可靠交付
3炫掐、TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無(wú)結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的UDP沒(méi)有擁塞控制睬涧,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很有用募胃,如IP電話,實(shí)時(shí)視頻會(huì)議等)
4宙地、每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一摔认,一對(duì)多,多對(duì)一和多對(duì)多的交互通信
5宅粥、TCP首部開(kāi)銷20字節(jié);UDP的首部開(kāi)銷小参袱,只有8個(gè)字節(jié)
6、TCP的邏輯通信信道是全雙工的可靠信道秽梅,UDP則是不可靠信道