傳輸層的兩大協議TCP和UDP,到底用哪個?這是全部基於網絡通信的應用程序在設計、開發時須要考慮的。html
下面,咱們先分別來看看TCP和UDP的優缺點,在後面,再來分析一下,何時該用TCP、何時該用UDP。瀏覽器
TCP的優勢:安全
可靠,穩定
TCP的可靠體如今TCP在傳遞數據以前,會有三次握手來創建鏈接,並且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開鏈接用來節約系統資源。網絡
TCP的缺點:ide
慢,效率低,佔用系統資源高,易被***
TCP在傳遞數據以前,要先建鏈接,這會消耗時間,並且在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,並且要在每臺設備上維護全部的傳輸鏈接,事實上,每一個鏈接都會佔用系統的CPU、內存等硬件資源。
並且,由於TCP有確認機制、三次握手機制,這些也致使TCP容易被人利用,實現DOS、DDOS、CC等***。spa
UDP的優勢:設計
快,比TCP稍安全
UDP沒有TCP的握手、確認、窗口、重傳、擁塞控制等機制,UDP是一個無狀態的傳輸協議,因此它在傳遞數據時很是快。沒有TCP的這些機制,UDP較TCP被***者利用的漏洞就要少一些。但UDP也是沒法避免***的,好比:UDP Flood***……視頻
UDP的缺點:htm
不可靠,不穩定
由於UDP沒有TCP那些可靠的機制,在數據傳遞時,若是網絡質量很差,就會很容易丟包。內存
基於上面的優缺點,那麼:
何時應該使用TCP:
當對網絡通信質量有要求的時候,好比:整個數據要準確無誤的傳遞給對方,這每每用於一些要求可靠的應用,好比HTTP、HTTPS、FTP等傳輸文件的協議,POP、SMTP等郵件傳輸的協議。
在平常生活中,常見使用TCP協議的應用以下:
瀏覽器,用的HTTP
FlashFXP,用的FTP
Outlook,用的POP、SMTP
Putty,用的Telnet、SSH
QQ文件傳輸
…………
何時應該使用UDP:
當對網絡通信質量要求不高的時候,要求網絡通信速度能儘可能的快,這時就可使用UDP。
好比,平常生活中,常見使用UDP協議的應用以下:
QQ語音
QQ視頻
TFTP
……