發布日期:2024/05/23
一些 TCP 連線,尤其是實體距離長的連線,通常會出現高延遲,這會對使用者體驗產生負面影響。Cato Networks 的 TCP 加速功能可加速 WAN 上的 TCP 連線,並提高 TCP 流量的網路效率和速度。
我們將介紹 Cato 如何實現 TCP 加速,並列出了一些針對基於 TCP 流量的特定應用程式最佳化 TCP 加速的最佳實務。
解釋 TCP 加速
Cato 透過指定 Cato PoP 充當客戶端和目標伺服器之間的中間代理伺服器來實現 TCP 加速。代理消除了長距離連線,將其分成三個短距離連線。優點是 Cato Socket不用維持長距離連線,而是維持到最近的 PoP 的短連線。PoP之間的流量透過 Cato Cloud 私有骨幹網路傳輸,確保雲端速度和低延遲。距離目的地最近的 PoP 將流量傳送到伺服器。
如果出現網路封包遺失,PoP 負責重傳封包,這樣可以快速做出反應並減少回應時間。此技術可提高 TCP 效能並減少socket中斷連線時的恢復時間。與長距離連線相比,每個短連線的每個網路封包往返時間 (RTT) 更短。短連線可提高效能並保證更快地將資料傳送到目的地。而具有高 RTT 的長距離連線表示網路封包需要更長的時間才能到達目的地。較長的旅行時間和緩慢的連線將會造成較差的使用者體驗。
下圖顯示了從客戶端到伺服器的連線,其中 PoP A 和 PoP B 充當代理伺服器:

代理將客戶端和伺服器之間的長距離連線拆分為三個短連線:
每個PoP維護自己的TCP堆疊,減少TCP封包重傳,當發生封包lost情況下重新傳輸。在某些場景下,例如,啟用 TLS 流量並啟用 TLS 檢查或評估出口網路規則時,當 PoP 從用戶端接收到 SYN 訊息時,它會快速向用戶端傳回 ACK 回應,而不是等待用戶端的回應伺服器。同時,Socket 繼續發送 TCP 流量,這使得連線速度更快。 PoP根據以下公式分配較大的TCP堆疊視窗大小:視窗大小=RTT*頻寬。例如,對於 RTT 為 200MS、頻寬為 20MBS 的連線,TCP 視窗大小為 4 MB(0.2 秒 * 20 MB)。然而,在其他情況下,PoP 會在向客戶端發送 ACK 回應之前等待伺服器的回應。
注意:替代的WAN和off-cloud不支援TCP加速。
TCP 加速與 TCP 代理
從 PoP 的角度來看,上一節中解釋的行為被視為 TCP 代理。 TCP 加速是可以在 Cato 管理應用程式中啟用或停用的功能,而 TCP 代理是 PoP 上發生的實際 TCP 連線分割機制。 TCP 加速在啟用時會觸發 TCP 代理。我們會這樣設計是因為在某些情況下,即使在 Cato 管理應用程式中停用 TCP 加速,TCP 代理仍可能發生。
強制執行 TCP 代理
以下各節介紹了自動啟用 TCP 代理並覆蓋活動 TCP 加速設定的情況。
在網路規則中使用出口 IP
在網路規則中選擇出口(egress) IP或位置時,PoP 會充當連線的代理伺服器,Cato 會自動啟動 TCP 代理。您無法在 Cato 管理應用程式中停用出口規則的 TCP 加速。以下螢幕截圖展示了一個出口網路規則,其中「Active TCP Acceleration」選項呈現灰色(Network > Network Rules > Edit Rule)。

啟用 TLS 檢查
TLS 檢查功能可解密 HTTPS 流量,以實現反惡意軟體和 IPS …等資安功能。此功能使用 PoP 作為代理伺服器來檢查流量中是否存在惡意檔案和威脅。 TLS 檢查適用於 HTTPS 流量的應用程式,建議這些應用程式使用 TCP 代理。因此,重要的是要知道,當您為帳號啟用 TLS 檢查時,Cato 會為所有 TLS 流量啟動 TCP 代理。
使用複雜的網路規則
複雜網路規則是 Socket 本身無法評估的網路規則。因此,Socket 需要將流量傳送到 PoP 以選擇正確的網路規則,從而啟用 TCP 代理。複雜的規則可能包含應用程式、應用程式類別、服務、自訂應用程式或網域/FQDN 物件。
在下列情況下,在網路規則中停用 TCP 加速不會停用 TCP 代理:
下面的範例顯示禁用 TCP 加速的網路規則 #2。由於規則 #1 是包含應用程式的複雜規則,因此符合網路規則 #2 的流量將套用 TCP 代理。為了在這種情況下停用 TCP 代理,網路規則 #2 必須放置在複雜規則(規則 #1)之上。

從 PoP 斷開連線中恢復
如果從 Socket 到 PoP 的加密通道中斷,則 Socket 會嘗試重新連線到相同 PoP。如果 Socket 成功重新連線,則連線將恢復,因為 PoP 會保持加密通道狀態。如果 Socket 無法連線到同一個 PoP,且網路規則啟用了 TCP 加速,則現有連線的狀態會遺失。由於PoP充當TCP代理伺服器,當Socket失去與PoP的連線時,連線的狀態就會遺失,客戶端必須啟動新的連線。因此,建議為能夠承受短暫斷開連線的應用程式(例如 Web 應用程式和檔案共用)啟用 TCP 代理程式。
TCP 加速的最佳化設定
本節介紹何時為特定類型的應用程式啟用 TCP 加速的最佳化。
為 Web 應用程式啟用 TCP 加速
通常,Web 應用程式是無客戶端的,並使用 Web 瀏覽器連線到伺服器。 Cato 的 TCP 加速引擎明顯提高了這樣流量的效能。我們建議您為 Web 應用程式的網路規則啟用 TCP 加速。
為檔案共用應用程式啟用 TCP 加速
檔案共用應用程式(例如 SMB)可能會遭受網路延遲或封包丟失時的重新傳輸。如果您在網路中的電腦之間使用檔案共用(即用於資源共享的SMB協定),Cato的TCP加速可以顯著提高檔案傳輸速度。我們建議您為這些應用程式的網路規則啟用 TCP 加速。
禁用敏感應用程式的 TCP 加速
有些應用程式對網路斷開很敏感,斷開後很難恢復。這些應用程式通常是客戶端-伺服器體系結構中的桌面遺留應用程式。連線中斷後,它們會強制客戶端啟動新連線,然後丟失連線狀態。例如,對於已使用最佳化協定的 Citrix 用戶端,我們建議您針對此流量的網路規則停用 TCP 加速。
針對 Windows 作業系統微調 TCP 加速
本節討論如何最佳化 Windows 電腦的 TCP 設定,以提高網路規則的 TCP 加速。
啟用 TCP 視窗縮放選項
某些 Windows 作業系統配置為使用 64KB 的預設視窗大小。此視窗大小有限,可能會導致效能問題和延遲。Cato PoP 會分配大於預設視窗大小的 TCP 堆疊,以實現更有效率的資料傳輸。因此,我們強烈建議您在 Windows 電腦中啟用 TCP windows縮放選項。
注意:通常情況下,TCP windows縮放選項是預設為啟用的。
啟用 TCP 時間戳選項
Windows 作業系統的預設設定不支援 TCP 時間戳選項。啟用 TCP 時間戳選項可改善資料包 RTT 測量並協助識別封包遺失。此選項還可以幫助 TCP 堆疊在封包丟失的情況下調整重傳計時器。我們建議在 Windows 電腦中啟用 TCP 時間戳記。
資料來源:Cato官網
Cato Networks SASE cloud在安全架構上同時提升使用者體驗,請洽零壹科技
張先生 02-26565656#931 | clif.chang@zerone.com.tw