一、簡介
UDP協議和TCP協議都是傳輸層協議。下面簡單先介紹一下TCP和UDP的概念:
- TCP(Transmission Control Protocol,傳輸控制協議)提供的是面向連接,可靠的字節流服務。即客戶和服務器交換數據前,必須現在雙方之間建立一個TCP連接,之後才能傳輸數據(有點類似於打電話必須先建立連接)。並且提供超時重發,丟棄重複數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
- UDP(User Datagram Protocol,用戶數據報協議)是一個簡單的面向數據報的運輸層協議。它不提供可靠性,只是把應用程序傳給IP層的數據報發送出去,但是不能保證它們能到達目的地(在網絡不穩定的時候可能發生丟包)。由於UDP在傳輸數據報前不用建立連接,且沒有超時重發等機制,所以數據傳輸效率比TCP高。
二、區別
以下是TCP和UDP的區別:
區別 |
TCP |
UDP |
概念 |
(Transmission Control Protocol) 傳輸控制協議 |
(User Datagram Protocol ) 用戶數據報協議 |
是否面向連接 |
面向連接(發送數據之前需要先建立連接) |
無連接(發送數據之前不需要建立連接) |
數據模式 |
字節流模式(一連串無結構的字節流) |
數據報模式 |
是否支持廣播和多播 |
每一條TCP連接只能有兩個端點,只能是一對一通信 |
支持一對一、一對多、多對一和多對多交互通信 |
是否提供可靠傳輸服務 |
可靠傳輸,使用流量控制和擁塞控制 |
盡最大努力交付,不保證可靠性;不存在流量控制和擁塞控制; |
功能 |
存在建立連接(三次握手)、關閉連接(四次揮手)、保證可靠,在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開連接用來節約系統資源 |
|
性能 |
性能稍微差一點 |
性能比TCP高 |
優點 |
可靠,穩定,保證數據順序 |
快,比TCP稍安全(因爲不存在握手、確認、窗口、重傳、擁塞控制等機制,所以不容易被攻擊) |
缺點 |
慢,效率低,佔用系統資源高,易被攻擊 |
不可靠(網絡不穩定很容易發生丟包),不穩定,不保證數據順序 |
適用場景 |
整個數據要準確無誤的傳遞給對方,如瀏覽器、郵件發送,文件傳輸等 |
對網絡質量要求不高的時,要求數據儘快傳輸時,也就是實時性稍微高一點的場景,如qq語音、實時視頻會議等 |