Auch wir haben das gleiche Problem. Alles, was größer ist als das, was im ersten Download-Burst übertragen werden kann (~ 3,7 MB für uns), läuft unabhängig von der verfügbaren Bandbreite auf ~ 1 bis 4 KB pro Sekunde ab.
Es scheint ein spezifisches Problem mit der SonicWall PRO 2040-Firewall zu sein - https://discussions.apple.com/message/12250946?messageID=12250946
Die Ursache des Problems liegt in der Firewall. Die beste langfristige Lösung besteht darin, eine Einstellung in der Firewall zu finden, mit der die Option TCP-Fensterskalierung aktiviert werden kann, und den TCP-Fensterskalierungsfaktor des initiierenden Computers bei der Initialisierung des zu verwenden Verbindung.
Obwohl sich dieser Artikel auf Router bezieht, gilt dieselbe Logik für die Vorgänge mit der SonicWall Pro 2040-Firewall ( http://lwn.net/Articles/92727/) :
Die Details werden noch herausgefunden, aber es scheint, dass einige Router im Netz die TCP-Option für die Fensterskala für SYN-Pakete während des Durchlaufs neu schreiben. Insbesondere scheinen sie den Skalierungsfaktor auf Null zu setzen, lassen aber die Option bestehen. Die empfangende Seite sieht die Option und antwortet mit einem eigenen Fensterskalierungsfaktor. Zu diesem Zeitpunkt glaubt das initiierende System, dass sein Skalierungsfaktor akzeptiert wurde, und skaliert seine Fenster entsprechend. Das andere Ende glaubt jedoch, dass der Skalierungsfaktor Null ist. Das Ergebnis ist ein Missverständnis über die tatsächliche Größe des Empfangsfensters. Das System hinter der Firewall glaubt, dass es viel kleiner ist als es tatsächlich ist. Wenn der erwartete Skalierungsfaktor (und damit die Diskrepanz) groß ist, ist das Ergebnis bestenfalls eine sehr langsame Kommunikation. In vielen Fällen,
Ähnlich wie oben erwähnt gibt es Problemumgehungen für einzelne Computer - http://prowiki.isc.upenn.edu/wiki/TCP_tuning_for_broken_firewalls . Durch Deaktivieren der TCP-Erweiterung rfc1323 erhält die Firewall niemals die Möglichkeit, ein TCP-Fenster zu übergeben Skalierungsfaktor 0 und gibt stattdessen weiter, dass die Erweiterung rfc1323 nicht aktiviert ist, vermutlich unter Verwendung der maximal zulässigen Fenstergröße von TCP ohne die Erweiterung rfc1323, die 64 KB beträgt.
Befehle, die wir auf unseren verschiedenen Computern als vorübergehende Problemumgehung verwendet haben:
Ubuntu 10.10:
Änderung wird sofort wirksam:
sudo sysctl -w net.ipv4.tcp_window_scaling=0
Permanente Änderung nach dem nächsten Neustart:
sudo sh -c 'echo "net.ipv4.tcp_window_scaling=0" >> /etc/sysctl.conf'
Mac OSx:
Änderung wird sofort wirksam:
sudo sysctl -w net.inet.tcp.rfc1323=0
Permanente Änderung nach dem nächsten Neustart:
sudo sh -c 'echo "net.inet.tcp.rfc1323=0" >> /etc/sysctl.conf'
Win7:
Siehe verfügbare Optionen:
netsh interface tcp show global
Befehl deaktivieren (dauerhaft):
netsh interface tcp set global autotuning=disabled
Als Antwort darauf, warum der Windows Server keine Probleme hatte, fand ich diesen Artikel - http://msdn.microsoft.com/en-us/library/ms819736.aspx
Die TCP-Fensterskalierung wird in Windows Server 2003 bei Bedarf ausgehandelt, basierend auf dem Wert, der für die Option SO_RCVBUF Windows Sockets festgelegt wurde, wenn eine Verbindung hergestellt wird. Darüber hinaus wird die Option Window Scale standardmäßig für eine Verbindung verwendet, wenn das von einem TCP-Peer initiierte empfangene SYN-Segment für diese Verbindung die Option Window Scale enthält. Windows Server 2003 TCP initiiert standardmäßig keine Verbindungen mit Fensterskalierung. Setzen Sie den Registrierungswert Tcp1323Opts auf 1, um den Windows Server 2003-TCP-Stapel anzuweisen, mithilfe der Option "Fensterskalierung" zu versuchen, ein größeres Empfangsfenster auszuhandeln.