後續連接TCP慢啟動的原因

後續連接TCP慢啟動的原因

據我了解,TCP慢啟動是用來補償和防止擁塞和丟失的。當一個連線成功建立並使用一段時間後,TCP連線的頻寬大約是盡可能大的。每次建立新連接時,即使它們是並發的,也會使用 TCP 慢啟動,以較小的視窗大小啟動連接,即使兩個 TCP 堆疊已經知道物理層的行為。

為什麼 TCP 堆疊總是執行慢啟動,即使它們可以記住最近與相同夥伴的連線的視窗大小?如果鏈路條件發生變化,他們是否無法安全地進行適當的更快啟動並在之後降低連接效能?

答案1

假設兩個 TCP 連線(即使在相同的兩個端點之間)將採用相同的路由也是不安全的。例如,在考慮所涉及連接埠的多個連接之間進行負載平衡並不罕見。

這似乎是一個奇怪的選擇,但它是有道理的,因為如果大量資料包亂序接收,TCP 性能可能會受到影響,而將連接黏合到路由可以避免這種情況。通常,來源 IP、目標 IP、協定、來源連接埠(如果適用)和目標連接埠(如果適用)會被雜湊,並且雜湊用於選擇下一跳。

相關內容