Grund für langsamen TCP-Start bei nachfolgenden Verbindungen

Grund für langsamen TCP-Start bei nachfolgenden Verbindungen

Nach meinem Verständnis wird TCP Slow Start verwendet, um Überlastungen und Verluste auszugleichen und zu verhindern. Wenn eine Verbindung erfolgreich hergestellt und eine Zeit lang verwendet wird, ist die Bandbreite der TCP-Verbindung ungefähr so ​​groß wie möglich. Jedes Mal, wenn eine neue Verbindung hergestellt wird, auch wenn sie gleichzeitig besteht, wird TCP Slow Start verwendet, wobei die Verbindung mit einer geringen Fenstergröße gestartet wird, obwohl beide TCP-Stacks das Verhalten der physischen Schicht bereits kennen.

Warum führen TCP-Stacks immer einen langsamen Start durch, obwohl sie sich die Fenstergröße früherer Verbindungen zum gleichen Partner merken könnten? Könnten sie nicht sicher einen entsprechend schnelleren Start durchführen und die Verbindung anschließend verschlechtern, wenn sich die Verbindungsbedingungen ändern?

Antwort1

Man kann nicht davon ausgehen, dass zwei TCP-Verbindungen, selbst zwischen denselben Endpunkten, dieselbe Route nehmen. Es ist beispielsweise nicht ungewöhnlich, dass ein Lastenausgleich über mehrere Verbindungen hinweg erfolgt, bei dem die beteiligten Ports berücksichtigt werden.

Dies mag eine seltsame Wahl sein, ist aber sinnvoll, da die TCP-Leistung leiden kann, wenn viele Pakete in der falschen Reihenfolge empfangen werden, und dies durch das Anhängen einer Verbindung an eine Route vermieden wird. Häufig werden Quell-IP, Ziel-IP, Protokoll, Quellport (falls zutreffend) und Zielport (falls zutreffend) gehasht und der Hash wird verwendet, um den nächsten Hop auszuwählen.

verwandte Informationen