【115期】TCP協議面試10連問
阿新 • • 發佈:2021-12-19
能不能說一說 TCP 和 UDP 的區別?
TCP是一個面向連線的、可靠的、基於位元組流的傳輸層協議。而UDP是一個面向無連線的傳輸層協議。
和 UDP 相比,TCP 有三大核心特性:
- 面向連線。所謂的連線,指的是客戶端和伺服器的連線,在雙方互相通訊之前,TCP 需要三次握手建立連線,而 UDP 沒有相應建立連線的過程。
- 可靠性。TCP 花了非常多的功夫保證連線的可靠,主要體現在:
- TCP 會精準記錄哪些資料傳送了,哪些資料被對方接收了,哪些沒有被接收到,而且保證資料包按序到達,不允許半點差錯。這是有狀態。
- 當意識到丟包了或者網路環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的傳送速度或者重發。這是可控制
UDP 就是無狀態, 不可控的。
- 面向位元組流。UDP 的資料傳輸是基於資料報的,這是因為僅僅只是繼承了 IP 層的特性,而 TCP 為了維護狀態,將一個個 IP 包變成了位元組流。
說說 TCP 三次握手的過程?為什麼是三次而不是兩次、四次?