面試題之TCP與UDP的區別

一、簡介

UDP協議和TCP協議都是傳輸層協議。下面簡單先介紹一下TCP和UDP的概念:

  • TCP(Transmission Control Protocol,傳輸控制協議)提供的是面向連接,可靠的字節流服務。即客戶和服務器交換數據前,必須現在雙方之間建立一個TCP連接,之後才能傳輸數據(有點類似於打電話必須先建立連接)。並且提供超時重發,丟棄重複數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
  • UDP(User Datagram Protocol,用戶數據報協議)是一個簡單的面向數據報的運輸層協議。它不提供可靠性,只是把應用程序傳給IP層的數據報發送出去,但是不能保證它們能到達目的地(在網絡不穩定的時候可能發生丟包)。由於UDP在傳輸數據報前不用建立連接,且沒有超時重發等機制,所以數據傳輸效率比TCP高。

二、區別

以下是TCP和UDP的區別:

TCP和UDP的區別

區別

TCP

UDP

概念

(Transmission Control Protocol)

傳輸控制協議

(User Datagram Protocol )

用戶數據報協議

是否面向連接

面向連接(發送數據之前需要先建立連接)

無連接(發送數據之前不需要建立連接)

數據模式

字節流模式(一連串無結構的字節流)

數據報模式

是否支持廣播和多播

每一條TCP連接只能有兩個端點,只能是一對一通信

支持一對一、一對多、多對一和多對多交互通信

是否提供可靠傳輸服務

可靠傳輸,使用流量控制和擁塞控制

盡最大努力交付,不保證可靠性;不存在流量控制和擁塞控制;

功能

存在建立連接(三次握手)、關閉連接(四次揮手)、保證可靠,在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開連接用來節約系統資源

 

性能

性能稍微差一點

性能比TCP高

優點

可靠,穩定,保證數據順序

快,比TCP稍安全(因爲不存在握手、確認、窗口、重傳、擁塞控制等機制,所以不容易被攻擊)

缺點

慢,效率低,佔用系統資源高,易被攻擊

不可靠(網絡不穩定很容易發生丟包),不穩定,不保證數據順序

適用場景

整個數據要準確無誤的傳遞給對方,如瀏覽器、郵件發送,文件傳輸等

對網絡質量要求不高的時,要求數據儘快傳輸時,也就是實時性稍微高一點的場景,如qq語音、實時視頻會議等

發佈了206 篇原創文章 · 獲贊 89 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章