%2C%20wenn%20mehr%20als%20ein%20Netzwerkpaket%20abgerufen%20wird.png)
Ich habe ein Problem mit einem FTP-Server (ftp.cluster003.ovh.net), das insbesondere dann auftritt, wenn ich mich von zu Hause aus damit verbinde (unabhängig vom Client, Computer oder Betriebssystem).
Das Problem tritt nicht auf, wenn ich mich mit einem anderen FTP-Server (ftp.phpnet.org) verbinde oder wenn ich mich von meinem Büro aus mit ftp.cluster003.ovh.net verbinde.
Zu Hause bin ich über einen Netgear D6000 DSL-Modem-Router verbunden.
Die Symptome sind die folgenden: Immer wenn ich versuche, Daten vom Server abzurufen, wird die Transaktion nie beendet, wenn die abzurufende Datenmenge nicht in ein einzelnes Netzwerkpaket passt. Dies passiert natürlich beim Abrufen einer Datei, aber auch einfach beim Auflisten des Inhalts eines Verzeichnisses, wenn sich mehr als etwa 20 Dateien im Verzeichnis befinden (die Antwort vom Server enthält die Berechtigungen und Eigentümer der Dateien, sodass jede aufgelistete Datei etwa 70 Byte Daten entspricht).
Beispiel einer Sitzung (unter Linux):
% for i in `seq 1 385`;do printf "$i-";done > file1
% for i in `seq 1 395`;do printf "$i-";done > file2
% ftp ftp.cluster003.ovh.net
Connected to ftp.cluster003.ovh.net.
220- ~~~ Welcome to OVH ~~~
220 This is a private system - No anonymous login
Name (ftp.cluster003.ovh.net:XXXXXXXX): XXXXXXXX
331 User XXXXXXXX OK. Password required
Password:
230-OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put file1
local: file1 remote: file1
200 PORT command successful
150 Connecting to port 56721
226-File successfully transferred
226 0.087 seconds (measured here), 16.14 Kbytes per second
1432 bytes sent in 0.00 secs (24.3868 MB/s)
ftp> put file2
local: file2 remote: file2
200 PORT command successful
150 Connecting to port 39725
226-File successfully transferred
226 0.111 seconds (measured here), 12.93 Kbytes per second
1472 bytes sent in 0.00 secs (17.9975 MB/s)
ftp> ls
200 PORT command successful
150 Connecting to port 46431
drwx---r-x 2 644709 users 4 Jan 2 13:02 .
drwx---r-x 4 644709 users 8 Dec 31 12:58 ..
-rw----r-- 1 644709 users 1432 Jan 2 13:02 file1
-rw----r-- 1 644709 users 1472 Jan 2 13:02 file2
226-Options: -a -l
226 4 matches total
ftp> get file1
local: file1 remote: file1
200 PORT command successful
150 Connecting to port 35507
226-File successfully transferred
226 0.001 seconds (measured here), 2.71 Mbytes per second
1432 bytes received in 0.00 secs (529.3102 kB/s)
ftp> get file2
local: file2 remote: file2
200 PORT command successful
150 Connecting to port 56107
^C
receive aborted
waiting for remote to finish abort
226-File successfully transferred
226 0.000 seconds (measured here), 2.91 Mbytes per second
500 ?
Wenn ich nicht mit Ctrl+ unterbreche C, passiert nichts und der Server läuft irgendwann ab. Wenn man beobachtet, was mit Wireshark passiert, kann man sehen, dass Datei1 in ein einzelnes Paket passt, Datei2 hingegen nicht.
Das letzte Paket von Datei2 wird empfangen, die vorherigen jedoch nicht. Dies ist völlig deterministisch. Irgendwelche Ideen, was dieses Problem verursacht und wie man es lösen kann?
Antwort1
Dieses Problem wurde offenbar auch von anderen Benutzern des Netgear D6000 Modem-Routers gemeldet, zum Beispiel:
Die Lösung (die bei mir auch funktioniert hat) besteht darin, die Funktion „Port Scan und DoS-Schutz“ des Routers zu deaktivieren.