TCP 作為傳輸層的協議,是一個IT工程師素養的體現,也是面試中經常被問到的知識點。在此,我將 TCP 核心的一些問題梳理了一下,希望能幫到各位。
實際上這篇文章相當于是復習之前的網絡基礎部分。只不過這篇文章的提問方式更靈活,也是讓讀者們懂得變通,更熟悉TCP。
TCP 和 UDP 有什么區別?
首先概括一下基本的區別:
TCP 是面向連接的,UDP 是面向無連接的
UDP程序結構較簡單
TCP 是面向字節流的,UDP 是基于數據報的
TCP 保證數據正確性,UDP 可能丟包
TCP 保證數據順序,UDP 不保證
再具體一些:
TCP 會精準記錄哪些數據發送了,哪些數據被對方接收了,哪些沒有被接收到,而且保證數據包按序到達,不允許半點差錯。這是有狀態。
當意識到丟包了或者網絡環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的發送速度或者重發。這是可控制。
相應的,UDP 就是無狀態
, 不可控
的。
面向字節流。UDP 的