![TCP和UDP的一些優缺點和區別](http://p2.ttnews.xyz/loading.gif)
技術博客: https://github.com/yongxinz/tech-blog
同時,也歡迎關注我的微信公眾號 AlwaysBeta,更多精彩內容等你來。
![TCP和UDP的一些優缺點和區別](http://p2.ttnews.xyz/loading.gif)
TCP 的優點:
可靠,穩定。
TCP 的可靠體現在 TCP 在傳遞數據之前,會有三次握手來建立連接,而且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開連接用來節約系統資源。
TCP 的缺點:
慢,效率低,佔用系統資源高,易被攻擊。
TCP 在傳遞數據之前,要先建連接,這會消耗時間,而且在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每臺設備上維護所有的傳輸連接,事實上,每個連接都會佔用系統的 CPU、內存等硬件資源。
而且,因為 TCP 有確認機制、三次握手機制,這些也導致 TCP 容易被人利用,實現 DOS、DDOS、CC 等攻擊。
UDP 的優點:
快,比 TCP 稍安全。
UDP 沒有 TCP 的握手、確認、窗口、重傳、擁塞控制等機制,UDP 是一個無狀態的傳輸協議,所以它在傳遞數據時非常快。沒有 TCP 的這些機制,UDP 較 TCP 被攻擊者利用的漏洞就要少一些。但 UDP 也是無法避免攻擊的,比如:UDP Flood 攻擊。
UDP 的缺點:
不可靠,不穩定。
因為 UDP 沒有 TCP 那些可靠的機制,在數據傳遞時,如果網絡質量不好,就會很容易丟包。
基於上面的優缺點,那麼,TCP 和 UDP 的應用場景都有哪些呢?
TCP 應用場景:
當對網絡通訊質量有要求的時候,比如:整個數據要準確無誤的傳遞給對方,這往往用於一些要求可靠的應用,比如 HTTP、HTTPS、FTP 等傳輸文件的協議,POP、SMTP 等郵件傳輸的協議。
在日常生活中,常見使用 TCP 協議的應用如下: 瀏覽器用的 HTTP, FlashFXP 用的 FTP,Outlook 用的 POP、SMTP,Putty 用的 Telnet、SSH,QQ 文件傳輸。
UDP 應用場景:
當對網絡通訊質量要求不高的時候,要求網絡通訊速度能儘量的快,這時就可以使用 UDP。
比如,日常生活中,常見使用 UDP 協議的應用如下:QQ 語音,QQ 視頻,TFTP 等。有些應用場景對可靠性要求不高會用到 UPD,比如長視頻,要求速率。
TCP 與 UDP 區別總結:
1、TCP 面向連接(如打電話要先撥號建立連接); UDP 是無連接的,即發送數據之前不需要建立連接。
2、TCP 提供可靠的服務。也就是說,通過 TCP 連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP 盡最大努力交付,即不保證可靠交付。
3、TCP 面向字節流,實際上是 TCP 把數據看成一連串無結構的字節流;UDP 是面向報文的。UDP 沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)
4、每一條 TCP 連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信。
5、TCP 首部開銷 20 字節;UDP 的首部開銷小,只有 8 個字節。
6、TCP 的邏輯通信信道是全雙工的可靠信道,UDP 則是不可靠信道。
閱讀更多 AlwaysBeta 的文章