TCP和UDP的一些優缺點和區別


TCP和UDP的一些優缺點和區別

技術博客: https://github.com/yongxinz/tech-blog

同時,也歡迎關注我的微信公眾號 AlwaysBeta,更多精彩內容等你來。

TCP和UDP的一些優缺點和區別

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 則是不可靠信道。


分享到:


相關文章: