1. 程式人生 > 其它 >TCP和UDP的區別

TCP和UDP的區別

TCP和UDP的區別

TCP是一個面向連線的、可靠的、基於位元組流的傳輸層協議。

UDP是一個面向無連線的傳輸層協議。(就這麼簡單,其它TCP的特性也就沒有了)。

具體來分析,和 UDP 相比,TCP 有三大核心特性:

  1. 面向連線。所謂的連線,指的是客戶端和伺服器的連線,在雙方互相通訊之前,TCP 需要三次握手建立連線,而 UDP 沒有相應建立連線的過程。

  2. 可靠性。TCP 花了非常多的功夫保證連線的可靠,這個可靠性體現在哪些方面呢?一個是有狀態,另一個是可控制。

TCP 會精準記錄哪些資料傳送了,哪些資料被對方接收了,哪些沒有被接收到,而且保證資料包按序到達,不允許半點差錯。這是有狀態

當意識到丟包了或者網路環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的傳送速度或者重發。這是可控制

相應的,UDP 就是無狀態, 不可控的。

  1. 面向位元組流。UDP 的資料傳輸是基於資料報的,這是因為僅僅只是繼承了 IP 層的特性,而 TCP 為了維護狀態,將一個個 IP 包變成了位元組流。