網際網路執行在少數幾個核心協議上,其中 TCP 和 UDP 是處理幾乎所有資料的主力。但當你嘗試使用其他協議時會發生什麼?一項在網際網路上傳送自創傳輸協議資料包的有趣實驗揭示了我們數字基礎設施的隱藏限制,以及為什麼在傳輸層進行創新幾乎變得不可能。
協議僵化:網際網路的隱藏問題
網際網路正遭受一種被稱為協議僵化的狀況——中間盒、防火牆和 NAT 裝置的廣泛部署實際上將我們鎖定在只能使用 TCP 和 UDP 進行傳輸。雖然理論上 IP 網路應該能轉發任何協議,但現實卻大相徑庭。正如一位評論者解釋的那樣,網際網路已經圍繞 TCP 和 UDP 標準化。大多數路徑中有太多裝置無法處理其他協議。這種僵化發生是因為網路裝置製造商和運營商優化了他們最常見到的協議,破壞了與任何新的或不同協議的相容性。
SCTP(流控制傳輸協議)是這個問題的完美例證。儘管在許多方面技術上優於 TCP,但它在公共網際網路上幾乎未被使用。
「SCTP 之所以引人入勝,是因為它是使地球上大多數人能夠通訊的核心技術之一(因為行動網路棧幾乎依賴於它),然而它在幾乎所有消費裝置上都不被支援。」
雖然 SCTP 在內部為關鍵的電信基礎設施提供動力,但它無法可靠地穿越公共網際網路。這一悖論突顯了即使是精心設計的標準化協議,在面對網路實際構建和管理方式的現即時,也可能無法獲得採用。
協議僵化問題
- 失敗的協議: SCTP (流控制傳輸協議)- 技術上更優越但無法穿越公共網際網路
- NAT問題:家庭使用者在NAT後面僅限於使用 TCP/UDP
- 變通策略:在 UDP 內部隧道傳輸新協議(例如,HTTP/3 的 QUIC 協議)
- 特殊情況:
- SCTP 在行動網路基礎設施內部被廣泛使用
- WebRTC 透過 UDP 上的 DTLS 執行 SCTP
- 自定義協議可能在資料中心伺服器之間工作良好,但在公共網際網路上會失敗
自定義協議失敗的原因
- 中間裝置會丟棄不熟悉的協議
- NAT裝置沒有埠號就無法跟蹤連線狀態
- 企業安全工具失去可見性
- 防火牆會阻止與現有流量不匹配的資料包
NAT:網際網路最大的路障
網路地址轉換(NAT)裝置代表了協議創新的最大障礙。NAT 透過使用傳輸層欄位(特別是 TCP 和 UDP 頭中的埠號)來跟蹤連線。當面對沒有這些熟悉欄位的未知協議時,大多數 NAT 裝置要麼消耗整個 IP 地址(迅速耗盡可用地址),要麼乾脆丟棄資料包。
這一限制對家庭使用者尤其成問題。正如一位評論者指出的,每個家庭使用者都在 NAT 後面。雖然你可以在資料中心伺服器之間傳送任何協議,但 IPv4 家庭使用者只能使用 TCP 或 UDP。即使在文章描述的實驗中,使用自定義協議的資料包有時可能透過一次,但之後就被丟棄了,這可能是因為防火牆無法將它們與現有連線流匹配。
未來:協議隧道和 IPv6
為了克服僵化,現代協議設計者採用了一種實用方法:在 UDP 內部隧道新協議。支援 HTTP/3 的 QUIC 就是這種策略的典範。QUIC 不是與系統對抗,而是將 UDP 作為基礎,在其上構建創新。
這種方法在創新和安全之間造成了緊張關係。網路管理員通常抵制這些發展,因為它們破壞了現有的安全工具。正如一位網路專業人士解釋的那樣,從企業安全形度來看,它破壞了許多工具。你無法解密,IDS/IPS 簽名不起作用,你失去了對網路中發生情況的可見性。
IPv6 為協議多樣性提供了一些希望,因為它在許多情況下消除了對 NAT 的需求。然而,即使有 IPv6,防火牆和中間盒仍可能阻止不熟悉的協議。向 IPv6 的過渡仍然令人沮喪地緩慢,許多企業網路仍然依賴 IPv4 地址空間。
文章中描述的實驗證實了網路工程師長期以來的猜測:網際網路已經成為一個高度專業化的環境,為一小組協議進行了最佳化。雖然你可能幸運地傳送一個帶有奇特協議的單個數據包,但建立可靠的通訊需要在網路實際支援的範圍內工作,而不是理論上應該支援的範圍。
在可預見的未來,TCP 和 UDP 將仍然是公共網際網路流量唯一可行的傳輸選擇,創新主要透過隧道和分層而不是透過新的傳輸協議發生。
![]() |
---|
限制出站流量的防火牆規則代表了對協議創新的網路約束 |