區別一、是否基於連接
TCP是面向連接的協議,而UDP是無連接的協議。即TCP面向連接;UDP是無連接的,即發送數據之前不需要建立連接。
區別二、可靠性 和 有序性 區別
TCP 提供交付保證(Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸),無差錯,不丟失,不重復,且按序到達,也保證了消息的有序性。該消息將以從服務器端發出的同樣的順序發送到客戶端,盡管這些消息到網絡的另一端時可能是無序的。TCP協議將會為你排好序。
UDP不提供任何有序性或序列性的保證。UDP盡最大努力交付,數據包將以任何可能的順序到達。
TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道
區別三、實時性
UDP具有較好的實時性,工作效率比TCP高,適用於對高速傳輸和實時性有較高的通信或廣播通信。
區別四、協議首部大小
TCP首部開銷20字節; UDP的首部開銷小,只有8個字節 。
區別五、運行速度
TCP速度比較慢,而UDP速度比較快,因為TCP必須創建連接,以保證消息的可靠交付和有序性,畢竟TCP協議比UDP復雜。
區別六、擁塞機制
UDP沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)
區別七、流模式(TCP)與數據報模式(UDP);
TCP面向字節流,實際上是TCP把數據看成一連串無結構的字節流;
UDP是面向報文的 。
區別八、資源占用
TCP對系統資源要求較多,UDP對系統資源要求較少。
TCP被認為是重量級的協議,而與之相比,UDP協議則是一個輕量級的協議。因為UDP傳輸的信息中不承擔任何間接創造連接,保證交貨或秩序的的信息。這也反映在用於承載元數據的頭的大小。
區別九、應用
每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信 。基於UDP不需要建立連接,所以且適合多播的環境,UDP是大量使用在游戲和娛樂場所。
優缺點
基於上面的區別;TCP和UDP的優缺點也很明顯了。
UDP 優點:簡單、傳輸快。
(1)網速的提升給UDP的穩定性提供可靠網絡保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。
(2)TCP為了實現網絡通信的可靠性,使用了復雜的擁塞控制算法,建立了繁瑣的握手過程,由於TCP內置的系統協議棧中,極難對其進行改進。采用TCP,一旦發生丟包,TCP會將后續的包緩存起來,等前面的包重傳並接收到后再繼續發送,延時會越來越大,基於UDP對實時性要求較為嚴格的情況下,采用自定義重傳機制,能夠把丟包產生的延遲降到最低,盡量減少網絡問題對游戲性造成影響。
缺點:不可靠,不穩定;
UDP應用場景:
1.面向數據報方式
2.網絡數據大多為短消息
3.擁有大量Client
4.對數據安全性無特殊要求
5.網絡負擔非常重,但對響應速度要求高
TCP:
優點:可靠 穩定
TCP的可靠體現在TCP在傳輸數據之前,會有三次握手來建立連接,而且在數據傳遞時,有確認. 窗口. 重傳. 擁塞控制機制,在數據傳完之后,還會斷開來連接用來節約系統資源。
缺點:慢,效率低,占用系統資源高,易被攻擊
UDP應用場景:
當對網絡質量有要求時,比如HTTP,HTTPS,FTP等傳輸文件的協議;POP,SMTP等郵件傳輸的協議。