1. 程式人生 > 其它 >【115期】TCP協議面試10連問

【115期】TCP協議面試10連問

能不能說一說 TCP 和 UDP 的區別?

TCP是一個面向連線的、可靠的、基於位元組流的傳輸層協議。而UDP是一個面向無連線的傳輸層協議。
和 UDP 相比,TCP 有三大核心特性:

  • 面向連線。所謂的連線,指的是客戶端和伺服器的連線,在雙方互相通訊之前,TCP 需要三次握手建立連線,而 UDP 沒有相應建立連線的過程。
  • 可靠性。TCP 花了非常多的功夫保證連線的可靠,主要體現在:
    • TCP 會精準記錄哪些資料傳送了,哪些資料被對方接收了,哪些沒有被接收到,而且保證資料包按序到達,不允許半點差錯。這是有狀態
    • 當意識到丟包了或者網路環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的傳送速度或者重發。這是可控制

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

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

說說 TCP 三次握手的過程?為什麼是三次而不是兩次、四次?