TCP 保證交付。 UDP 則不然。

這就是核心區別。其他一切都由此而來。

TCP(傳輸控制協議)

確保每個資料包按順序完好無損地到達。如果資料包丟失,TCP 會重新傳送它。就像帶有跟蹤功能的認證郵件一樣。

工作原理:

  • 傳送資料前建立連線
  • 確認收到每個資料包
  • 重新傳送丟失的資料包
  • 以正確的順序傳送資料包

缺點: 較慢。所有檢查和重新傳送都會增加開銷。

使用者:

  • 網頁瀏覽 (HTTP/HTTPS)
  • 電子郵件(SMTP、IMAP)
  • 檔案傳輸 (FTP)
  • SSH/遠端訪問
  • 任何精度比速度更重要的情況

UDP(使用者資料包協議)

傳送資料包而不進行確認。火併忘記。就像沒有追蹤的普通郵件一樣。

工作原理:

  • 無連線設定
  • 立即傳送資料包
  • 不檢查他們是否到達
  • 不保證訂單

優點: 快得多。沒有來自確認的開銷。

使用者:

  • 線上遊戲(實時動作)
  • 影片流(Netflix、YouTube)
  • VoIP 通話(Zoom、Discord)
  • DNS 查詢
  • 任何速度比完美更重要的情況

為什麼遊戲使用 UDP

在多人遊戲中,如果包含您在時間 1:23:45 的位置的資料包丟失,則無需重新傳送它。當它到達時,它已經過時了。你已經到了一個新的位置。

最好只傳送下一個位置更新並繼續移動。缺少一幀就好了。等待重傳會導致延遲。

為什麼網頁瀏覽使用 TCP

載入網頁需要每一部分(HTML、CSS、影象)完好無損。丟失一個資料包可能會破壞整個頁面佈局。

速度比準確性更重要。您寧願多等待 0.2 秒,也不願看到損壞的頁面。

哪個更好?

都不是。他們解決不同的問題。

在以下情況下使用 TCP: 資料必須完整且準確(下載、訊息、財務交易)。

在以下情況下使用 UDP: 速度和實時效能比完美交付(遊戲、實時影片、語音通話)更重要。

需要選擇嗎?

通常不會。應用程式自動使用適當的協議。您的瀏覽器使用 TCP,您的遊戲使用 UDP,您的視訊通話使用 UDP。

你只會在以下情況下關心這個:

  • 配置防火牆(需要允許TCP或UDP的特定埠)
  • 遊戲埠轉發(通常是UDP)
  • VPN 或連線問題故障排除
  • 設定伺服器或網路應用程式

底線

TCP 可靠但速度較慢(驗證交付)。 UDP 速度快但不可靠(無驗證)。

應用程式根據需要進行選擇。網頁需要準確性(TCP)。影片遊戲需要速度(UDP)。

不需要選擇。軟體會自動處理它。