Atom
將TCP包成UDP進行傳送

將TCP包成UDP進行傳送

在看論文時發現了某篇作者使用了TCP over UDP這個技術,所以把看完的資料整理一下。

TCP over UDP 是什麼?

簡單來說就是將「TCP 封裝在 UDP 裡」進行傳輸
VPN、零信任網路、工控安全與穿透防火牆 等應用場景中比較常見。


為什麼要 TCP over UDP?

你可以把它想成:

本來該用 TCP 傳的資料,用 UDP 傳送出去,但內容仍然是 TCP 封包格式。

這樣做有什麼好處?

  • 穿越防火牆與 NAT:許多網路只開放 UDP(如 DNS、VoIP)或只有特定端口(如 443),UDP over TCP 或 TCP over UDP 可以繞過這些限制。
  • 自己控制重傳與連線狀態:UDP 沒有連線狀態,可以讓應用層自行決定傳輸策略(例如 QUIC、WireGuard、Nebula)。
  • 降低封包處理延遲:某些場景下 UDP 封裝反而延遲更低,並減少核心堆疊負擔。

實際運作方式

TCP over UDP 的情境下,流程大致如下:

  1. 應用程式建立一條「虛擬 TCP 連線」,例如 Web 連線或資料同步。
  2. 中間的傳輸協定(例如 VPN、Proxy、Overlay Network)將這些 TCP 封包重新打包成 UDP 封包
  3. 這些 UDP 封包透過網路傳送出去,到另一端後再**還原成原始 TCP **。

實際案例

1️.Nebula Overlay Network

Nebula 是一套基於 UDP 的點對點加密 Overlay,雖然實際上應用程式跑的是 TCP,但它會透過 UDP 傳送所有封包,實現加密與跨網段連線功能。

2️.WireGuard VPN

WireGuard 使用 UDP 傳輸封包,但可以封裝任意協定(TCP、UDP、ICMP)在其中,確保端對端加密、隧道化與低延遲。

3️.Cloudflare Tunnel / ZeroTier / Tailscale

這些軟體會將 TCP 封包轉換成 UDP 流,確保可以穿透 NAT、躲過封包審查,並達成私網穿透與節點對接。


資安風險與對策

由於 UDP 本身不保證順序、不保證傳達,所以:

  • 有中間人攻擊(MitM)或重送攻擊風險
  • 必須透過加密與驗證(例如 TLS、Noise 協定)來確保安全性
  • 如果搭配了憑證機制,就能確認彼此身份,避免偽造連線

結論

特性 傳統 TCP UDP TCP over UDP
穿透防火牆 較容易 V
加密靈活性 限 TLS 自訂 高度可控
封包順序控制 自帶 X 應用層控制
適用場景 一般網站 影音/遊戲 VPN、Overlay、安全通訊

🗒 延伸閱讀


留言區從原本需要登入github才能留言的方式改成使用 Twikoo 不須登入即可留言
如果你要匿名的話姓名、郵箱、網址可以隨便打沒關係
留QQ郵箱的話可以自動偵測郵箱頭像
有想多交流的話可以留網址我看到會過去逛逛


本文作者:Atom
本文鏈接:https://d0ngd.github.io/2025/09/27/將TCP包成UDP進行傳送/
版權聲明:本文採用 CC BY-NC-SA 3.0 CN 協議進行許可