TCP
- 優(yōu)點:可靠,穩(wěn)定惦费。TCP的可靠體現(xiàn)在TCP在傳遞數(shù)據(jù)之前兵迅,會有三次握手來建立 連接,而且在數(shù)據(jù)傳遞時薪贫,有確認恍箭、窗口、重傳瞧省、擁塞控制機制扯夭,在數(shù)據(jù)傳完后,還會斷開連接用來節(jié)約系統(tǒng)資源鞍匾。
- 缺點:慢交洗,效率低,占用系統(tǒng)資源搞橡淑,易被攻擊构拳。TCP在傳遞數(shù)據(jù)之前,要先建連接梁棠,這會消耗時間置森,而且在數(shù)據(jù)傳遞時,確認機制符糊。重傳機制凫海。擁塞控制機制等都會消耗大量的時間,而且要在每臺設備上維護所有的傳輸連接男娄,事實上盐碱,每個連接都會占用系統(tǒng)的CPU、內存等硬件資源沪伙。而且,因為TCP有確認機制县好、三次握手機制围橡,這些也導致TCP容易被人利用,實現(xiàn)DOS缕贡、DDOS翁授、CC等攻擊
UDP
- 優(yōu)點:快拣播,比TCP稍安全,UDP沒有TCP的握手收擦、確認贮配、窗口、重傳塞赂、擁塞控制等機制泪勒,UDP是一個無狀態(tài)的傳輸協(xié)議,所以它在傳輸數(shù)據(jù)時非逞缁快圆存。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一些仇哆。但UDP也是無法避免攻擊的沦辙,比如:UDP Flood 攻擊……
- 缺點:不可靠,不穩(wěn)定讹剔。因為UDP沒有TCP那些可靠的機制油讯,在數(shù)據(jù)傳遞時,如果網(wǎng)絡質量不好延欠,就會很容易丟包陌兑。
基于上面的優(yōu)缺點,那么:
- 什么時候應該使用TCP:當對網(wǎng)絡通訊質量有要求的時候衫冻,比如:整個數(shù)據(jù)要準確無誤的傳遞給對方诀紊,這往往用于一些要求可靠的應用,比如HTTP隅俘、HTTPS邻奠、FTP等傳輸文件的協(xié)議,POP为居、STMP等郵件傳輸協(xié)議碌宴。在日常生活中,常見使用TCP協(xié)議的應用如下:瀏覽器蒙畴,用的HTTP FlashFXP贰镣,用的FTP Outlook,用的POP膳凝、STMP Putty碑隆,用的Telnet、SSH QQ文件傳輸……
- 什么時候應該使用UDP:當對網(wǎng)絡通訊質量要求不高的時候蹬音,要求網(wǎng)絡通訊速度能盡量的快上煤,這時就可以使用UDP。比如著淆,日常生活中劫狠,常見使用UDP協(xié)議的應用如下:QQ語音拴疤、QQ視頻、TFTP ……
- 有些應用場景對可靠性要求不高會用到UDP独泞,比如長視頻呐矾,要求速率
TCP與UDP的區(qū)別總結
- TCP面向連接(如打電話先撥號建立連接);UDP是無連接的懦砂,即發(fā)送數(shù)據(jù)之前不需要建立連接;
- 對系統(tǒng)資源的要求(TCP較多蜒犯,UDP少);
- UDP程序結構較簡單孕惜;
- TCP提供可靠的服務愧薛。也就是說,通過TCP連接傳送的數(shù)據(jù)衫画,無差錯毫炉,不丟失,不重復削罩,且按需到達瞄勾;UDP盡最大努力交付,即不保證可靠交付
- TCP面向字節(jié)流弥激,實際上是TCP把數(shù)據(jù)看成一連串無結構的字節(jié)流进陡;UDP是面向報文的,UDP沒有擁塞控制微服,因此網(wǎng)絡出現(xiàn)擁塞不會使源主機的發(fā)送速率降低(對實時應用很有用趾疚,如IP電話,實時視頻會議等)
- 每一條TCP連接只能是點到點的以蕴;UDP支持一對一糙麦,一對多,多對一和多對多的交互通信
- TCP首部開銷20字節(jié)丛肮;UDP的首部開銷小赡磅,只有8個字節(jié)
-
TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠的信道
TCP協(xié)議和UDP協(xié)議的區(qū)別