none
FTP - обрыв соединения после закачки RRS feed

  • Вопрос

  • Есть сервер 2003 (виртуалка на hyper-v). Стандартным клиентом ftp кладу файлы с него на другой ftp-сервер.

    Файл размером 300 кб - закачивается нормально.

    Файл размером 5 мб - фактически закачивается (появляется на принимающем сервере, целый), но сессия не завершается корректно, а или обрывается (удаленный хост закрыл соединение), или висит пока не прервется по тайм-ауту.

    Принимающий фтп-сервер - на FreeBSD, но проблему с ним я исключаю, т.к. на него много разных клиентов льет файлы, а проблема обнаружилась только у одного.

    9 сентября 2010 г. 8:17

Все ответы

  • Посмотрите конец сессии wireshark-ом.

    9 сентября 2010 г. 8:37
  • шарком сессию снял, но проанализировать ее мозга не хватает :(

    что предложите сделать? )

    10 сентября 2010 г. 13:53
  • Присылает ли сервер пакет с флагом FIN? В общем, определить, кто инициирует разрыв соединения? И после чего это происходит.

    10 сентября 2010 г. 14:37
  • сначала повторяются около 10 раз

    177 596.390810 192.168.0.3 80.80.80.80TCP [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
    178 598.691352 80.80.80.80 192.168.0.3 TCP [TCP ACKed lost segment] ftp-data > ssdp [RST, ACK] Seq=1 Ack=53416 Win=65535 Len=0

    а потом - разрыв

    179 658.697992 192.168.0.3 80.249.227.165 TCP cymtec-port > ftp [FIN, ACK] Seq=73 Ack=219 Win=65317 Len=0

    • Изменено Jack A. RIP 13 сентября 2010 г. 8:27
    13 сентября 2010 г. 6:19
  • Если я правильно понял, в 178 пакете сервер дал команду на отключение (RST), следующим пакетом клиент подтвердил отключение(FIN, ACK). Почему сервер это сделал, нужно копать....Можно с десяток последних пакетов увидеть?

    п.с. реальные ip лучше потрите в ветке...

    13 сентября 2010 г. 7:46
  • вот последние несколько пакетов:

     154 318.002912000  80.80.80.80        192.168.0.3           TCP      [TCP Window Update] ftp-data > ssdp [ACK] Seq=1 Ack=51389 Win=2026 Len=0
        155 318.002936000  192.168.0.3           80.80.80.80        FTP-DATA FTP Data: 1380 bytes
        156 318.007479000  80.80.80.80        192.168.0.3           TCP      ftp-data > ssdp [ACK] Seq=1 Ack=52769 Win=646 Len=0
        157 322.953510000  192.168.0.3           80.80.80.80        FTP-DATA FTP Data: 646 bytes
        158 322.956495000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        159 323.273830000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        160 323.275492000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        161 323.936342000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        162 323.937693000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        163 325.137598000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        164 325.138988000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        165 327.539903000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        166 327.541286000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        167 332.360420000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        168 332.361675000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        169 341.985542000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        170 341.986962000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        171 361.235994000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        172 361.237344000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        173 399.612110000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        174 399.613653000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        175 476.395365000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        176 476.396990000  80.80.80.80        192.168.0.3           TCP      [TCP ZeroWindowProbeAck] [TCP ZeroWindow] ftp-data > ssdp [ACK] Seq=1 Ack=53415 Win=0 Len=0
        177 596.390810000  192.168.0.3           80.80.80.80        TCP      [TCP ZeroWindowProbe] ssdp > ftp-data [ACK] Seq=53415 Ack=1 Win=65535 Len=1
        178 598.691352000  80.80.80.80        192.168.0.3           TCP      [TCP ACKed lost segment] ftp-data > ssdp [RST, ACK] Seq=1 Ack=53416 Win=65535 Len=0
        179 658.697992000  192.168.0.3           80.80.80.80        TCP      cymtec-port > ftp [FIN, ACK] Seq=73 Ack=219 Win=65317 Len=0
        180 658.700515000  80.80.80.80        192.168.0.3           TCP      ftp > cymtec-port [ACK] Seq=219 Ack=74 Win=64168 Len=0
        181 658.700549000  80.80.80.80        192.168.0.3           TCP      ftp > cymtec-port [RST, ACK] Seq=219 Ack=74 Win=0 Len=0

    реальные ip я рандомно заменил заранее. теперь еще более следы запутал, спасибо :)

    13 сентября 2010 г. 8:26
  • Все-таки, копните в сторону сервера. Сервер отвечает пакетом с Win=0, т.е. количество байт, которое он может принять=0(вайршарк ставит пометку [TCP ZeroWindow]). Клиент периодически повторяет запрос, сервер отвечает, но тоже с [TCP ZeroWindow]. Возможно, нехватка памяти(или других ресурсов) на сервере.

    А клиент по сценарию должен дальше еще что-то передать? Если поднять стандартный фтп на Windows где-нибудь, закачка пройдет нормально?

    13 сентября 2010 г. 9:06
  • с клиентом получается два сценария:

    1. происходит обрыв в середине передачи

    2. все передается, но сессия корректно не закрывается, а слетает по тайм-ауту. В данном случае это плохо, т.к. несмотря на физически корректно переданный файл, управляющая программа видит ошибку передачи и весь процесс накрывается тазиком.

    попробую поднять стандартный фтп и посмотреть.

    13 сентября 2010 г. 10:33
  • с клиентом получается два сценария:

    1. происходит обрыв в середине передачи

    2. все передается, но сессия корректно не закрывается, а слетает по тайм-ауту. В данном случае это плохо, т.к. несмотря на физически корректно переданный файл, управляющая программа видит ошибку передачи и весь процесс накрывается тазиком.

    попробую поднять стандартный фтп и посмотреть.


    C каналом связи, я так понимаю, проблемы исключены?

    14 сентября 2010 г. 8:49
  • канал связи плоховат по скорости, но все оборудование проверено, проблем не найдено.

    16 сентября 2010 г. 11:54