Ich habe mit den TCP-Parametern unter Linux (mit einem 3.5-Kernel) experimentiert. Grundsätzlich zu diesem Zusammenhang:
Server: Gigabit-Uplink im Rechenzentrum. Die tatsächliche Bandbreite (aufgrund der gemeinsamen Nutzung von Uplinks) beträgt etwa 70 MB / s, wenn sie von einem anderen Rechenzentrum aus getestet wird.
Client: Gigabit Local LAN, verbunden mit 200 MBit Glasfaser. Durch das Abrufen einer Testdatei werden tatsächlich 20 MB / s erreicht.
Latenz: ca. 50ms Hin- und Rückfahrt.
Der Remote-Server wird als Dateiserver für Dateien im Bereich von 10 bis 100 MB verwendet. Ich habe festgestellt, dass bei einer Initiierung von 10 die Übertragungszeit für diese Dateien stark vom langsamen Start von TCP beeinflusst wird. Das Laden von 10 MB (Höchstgeschwindigkeit erreicht: 3,3 MB / s) dauert 3,5 Sekunden, da es langsam startet und dann jedoch hochfährt ist beendet, bevor die Höchstgeschwindigkeit erreicht ist. Mein Ziel ist es, die minimalen Ladezeiten dieser Dateien einzustellen (also nicht den höchsten Rohdurchsatz oder die niedrigste Roundtrip-Latenz, ich bin bereit, beide zu opfern, wenn dies die tatsächliche Zeit zum Laden einer Datei verkürzt).
Also habe ich eine einfache Berechnung versucht, um zu bestimmen, wie die ideale Initiale aussehen sollte, wobei andere Verbindungen und mögliche Auswirkungen auf andere ignoriert wurden. Das Bandbreitenverzögerungsprodukt beträgt 200 Mbit / s * 50 ms = 10 Mbit oder 1,310,720 Bytes. Wenn man bedenkt, dass initcwnd in MSS-Einheiten festgelegt ist und angenommen wird, dass die MSS etwa 1400 Byte beträgt, ist eine Einstellung von 1,310,720 / 1400 = 936 erforderlich
Dieser Wert ist sehr weit vom Standardwert entfernt (10 * MSS unter Linux, 64 KB unter Windows), daher ist es keine gute Idee, ihn so festzulegen. Was sind die erwarteten Nachteile einer solchen Konfiguration? Z.B:
- Betrifft dies andere Benutzer desselben Netzwerks?
- Könnte dies zu einer inakzeptablen Überlastung anderer Verbindungen führen?
- Flood Router-Puffer irgendwo auf dem Weg?
- Erhöhen Sie die Auswirkungen kleiner Mengen an Paketverlust?
70 MB/s
und nicht Megabit? Ich suche nur nach Klarstellung.