TCP 流量控制核心在於接收端通告接收視窗 (rwnd) 與發送端擁塞視窗 (cwnd) 協同工作。本文技術深度解析三大控制維度。
三次交握階段雙方交換 MSS 選項,決定單個 TCP 區段最大載荷 (通常 1460 Bytes 乙太網)。理論最大 65535 Bytes,實際受 MTU 限制。設定流量控制參考值建議為 MSS 的 1.5 倍,有利於精確控制。
cwnd 表示發送端可連續發送的資料量 (單位通常為 MSS)。初始由慢啟動演算法決定 (通常 10 MSS)。動態調整觸發條件:
流量控制視角:若目標限速 5 KB/s,但 cwnd 允許發送 30 KB,網路中仍有大量封包在飛行,需配合接收端策略處理。
發送 WIN=0 ACK,丟棄收到封包,後續每包皆丟棄並回 ACK。缺點:浪費頻寬,觸發發送端重傳,加劇擁塞。
發送 WIN=0 ACK,接收最後正常封包,後續封包正常接收並回 WIN=0 ACK。避免重傳風暴,犧牲少量緩衝區空間換取頻寬效率。
TcpAckFrequency 可調)。WIN=0 ACK,確保視窗大小精確為 0。TcpDelAckTicks (舊版) / TcpAckFrequency (新版):調整延遲 ACK 間隔/計數,建議 ≤ 500ms。HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Interface GUID}。TCP 流量控制是協議棧、應用層、網路設備多層協同結果。應用層實現精確限速 (如 QoS、Token Bucket) 時,必須深入理解協議棧 ACK/視窗機制,避免產生副作用 (重傳風暴、緩衝區耗盡、公平性破壞)。