Gut, klasse das wir das haben.
Dauerhaft eintragen könnt ihr das in /etc/sysctl.conf:
net.ipv4.tcp_sack = 0
net.ipv4.tcp_dsack = 0
Macht euch am besten auch einen Kommentar dabei, damit ihr wißt warum das darin steht. Außerdem
solltet ihr bei neuen Kernel-Updates immer mal wieder testen ob es mittlerweile auch ohne geht.
Ich versuche mal eine Erklärung und Deutung: 😉
Wenn beide EInstellungen gesetzt sind (1, was auch der Default-Wert ist, auch unter 2.6.26 so war
und bei den anderen Usern funktioniert), dann wird beim ersten Paket an die Gegenstelle im SYN
mitgeteilt: Hey, ich beherrsche SACK. Sack ist ein Mechanismus der es beiden Stellen erlaubt, wenn
Segmente eines TCP-Paketes verloren gehen, wirklich nur diese Segmente erneut zusenden anstatt
das gesamte Frame. Das zahlt sich aus gerade bei "schlechten", wechselnden Transfers (sagen
wir eine "gute" Verbindung wäre alles was sich über ein CAT5-Kabel bewegt).
Dieses Signal (Ich kann das!) funktioniert nun bei Euch mit dem 2.6.27 nicht (mehr). Von Kernelversion
zu Kernelversion gibt es zahlreiche Änderungen im TCP-Stack der von so einem Wert (obwohl auch
im alten mit 1 gesetzt) tangiert werden kann.
Was eure Umbegung jetzt besonders (und halt auch gemeinsam) macht wäre der Netgear-Router.
Zu Netgear sage ich jetzt mal nichts... aber es wäre eine Möglichkeit mal zu schauen ob es für
eure Router BIOS-Updates gäbe.
Es könnte sich natürlich auch ein Bug im TCP-Stack des Kernels verbergen, der wiederum
ausgerechnet bei eurem Equipement zuschlägt.
Erklärungen zu tcp_sack finden sich z.B. auch hier:
http://ipsysctl-tutorial.frozentux.net/chunkyhtml/tcpvariables.html
und halt mal durch Suche nach tcp_sack
//Edit: Bedanken müßt ihr euch v.a. bei unserem Thomas B.(brain0), der am gleichen Problem dran
war...