傳輸層中的 TCP 和 UDP
第 3 層或網路層使用 IP(網際網路協議),這是一種無連線協議,獨立處理每個資料包,導致傳輸可靠性不足。當資料從一個主機傳輸到另一個主機時,即使屬於同一會話,每個資料包也可能走不同的路徑。這意味著資料包可能不會按正確的順序到達。因此,IP 的可靠性依賴於更高級別的協議。
傳輸控制協議 (TCP)
TCP 是一種允許資料從一臺計算機發送到另一臺計算機的協議。TCP 是一種第 4 層協議,提供資料包確認,並且由於它會重新發送丟失的資料包,因此也是可靠的。它優於 UDP。但是,由於這些特性,它也存在一個缺點。
使用者資料報協議 (UDP)
使用者資料報協議也是一種第 4 層協議,但與傳輸控制協議不同,它不會確認已傳送的資料包。因此,它不可靠,並且依賴於更高級別的協議來發揮作用。但是,與 TCP 相比,它更簡單、更具可擴充套件性,並且開銷更低。它用於流式傳輸影片和音訊。
TCP 與 UDP
以下是區分 TCP 和 UDP 的主要因素:
會話多路複用
單個主機可以使用單個 IP 地址與多個伺服器互動。當使用 TCP 時,伺服器和接收方必須首先建立連線,然後在傳輸完成後必須終止連線。TCP 還在傳輸過程中確保傳輸的可靠性。
另一方面,UDP 不會確認資料包已接收。因此,它不可靠。
分段
快速乙太網的最大傳輸單元 (MTU) 為 1500 位元組,而 TCP 的理論限制為 65495 位元組。由於 UDP 不允許這樣做,因此資料分段必須依賴於更高級別的協議。
流量控制
如果傳送方比接收方處理資料的速度更快,則接收方將丟棄資料並請求重放,從而浪費時間和資源。TCP 透過使用滑動視窗提供端到端流量控制。滑動視窗從接收方端傳送確認,指示任何給定時間可以接收多少資料。
UDP 不支援流量控制,必須依賴於更高級別的協議來實現。
面向連線
TCP 是面向連線的,這意味著它為傳輸建立連線,然後在傳輸完成後關閉該連線。另一方面,UDP 是無連線的,就像 IP(網際網路協議)一樣。
TCP 在收到資料包時提供確認,從而確保其可靠性。如果資料包丟失,它會請求重新傳輸。為此,UDP 依賴於更高級別的協議。