TCP和UDP的區別:
(1)TCP是面向連接的;UDP是無連接的。
TCP進行數據傳輸時,需要通過三次握手建立一條TCP傳輸連接,傳輸完成后通過四次揮手釋放連接。UDP在傳輸報文之間不需要在通信雙方之間建立連接。
(2)TCP保證數據可靠性,UDP可能會丟包。
通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。TCP提供校驗和,重傳控制,序號標識,滑動窗口、確認應答等機制保證數據的可靠性,而UDP除了提供一種可選的檢驗和,幾乎沒有提供其他的保證數據傳輸可靠性的傳輸。如果檢測出收到的分組出錯,則丟棄這個分組,既不確認,也不通知發送端和要求重傳。
(3)TCP傳輸速度慢,UDP傳輸速度快。
TCP每發一次報文都需要確認應答,若超時則重新再發一次。而UDP沒有這種機制,一個個數據包不斷地發送,即使數據包是錯的也直接丟棄該數據包
(4)TCP是面向字節流,而UDP是面向報文的。
TCP將數據看成是一連串的、無結構的字節流,在發送端和接收端都需要使用緩存,將幾個字節流組成一個報文段;UDP對應用程序提交的報文既不合並,也不拆分,保留原報文的長度和格式,原封不動地發送出去。
(5)TCP連接只能是點到點的,但支持同時建立多個並發的TCP連接。而UDP支持一對一,一對多,多對一和多對多的交互通信。
(6)TCP對系統資源要求較多,UDP對系統資源要求較少。
(7)TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道。
應用場景:
TCP注重的是可靠性,而不是實時性,具有一定的延遲性。而UDP注重的是實時性,速度快,可靠性不高。對於特別的場合,可以對UDP協議基礎上再進行封裝。
UDP協議適用於(1)視頻播放應用,(2)簡短的交互式應用,(3)多播和廣播應用。