Bug 32766 - Не отдаёт файл размером больше 32 МБ.
Summary: Не отдаёт файл размером больше 32 МБ.
Status: RESOLVED LATER
Alias: None
Product: Sisyphus
Classification: Development
Component: utftpd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Sergey Y. Afonin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-18 14:18 MSK by Горев Андрей
Modified: 2016-11-19 14:28 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Горев Андрей 2016-11-18 14:18:57 MSK
Причина проста: счётчик пакетов (id в заголовке UDP) не переходит через 64k пакетов.
  Итог: после прохождения 65535-го ID идут таймауты и файл не докачивается. 65535 * 512 байт ~= 32 МБ. Точно сами считайте - мне лень.

  Насчёт размера блоков TFTP из соответствующего RFC. Управление размером блока имеют очень немногие TFTP серверы, но даже в этом случае, необходимо, чтобы клиент TFTP с этим согласился. Cisco к таким не относится.
  Из всех серверов TFTP из дистрибутива с файлами размером больше 32 МБ работает только пакет tftp (пускалки tftp-server-standalone, tftp-server-xinetd), перенесённый из BSD в Linux. Или оставьте только его или исправьте остальные.

P.S. Многие IOS для Cisco БОЛЬШЕ 32 МБ существенно.

    Стандартный tftp не имеет управления, но с > 32 МБ справляется. Здесь виден переход ID через 64k:
15:00:06.119619 IP (tos 0x0, ttl 64, id 65532, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
15:00:06.127182 IP (tos 0x0, ttl 255, id 1288, offset 0, flags [DF], proto UDP (17), length 32)
    192.168.1.10.32088 > pc00447.tlt.globex.msk.36206: UDP, length 4
15:00:06.127368 IP (tos 0x0, ttl 64, id 65533, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
15:00:06.134768 IP (tos 0x0, ttl 255, id 1289, offset 0, flags [DF], proto UDP (17), length 32)
    192.168.1.10.32088 > pc00447.tlt.globex.msk.36206: UDP, length 4
15:00:06.134853 IP (tos 0x0, ttl 64, id 2, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
Comment 1 Sergey Y. Afonin 2016-11-18 15:33:52 MSK
Последняя версия utftpd вышла 22 августа 1999 года. Боюсь, проект заброшен. Но он имеет одну особенность, которая мне важна: в зависимости от IP клиента раскладывать файлы в разные каталоги, потому я против удаления его из репозитория.

На Cisco у нас забили, но про предел в 32 МБ я запомню, спасибо за информацию. Буду ли я сам это исправлять, пока не знаю: у меня нет пока необходимости в передаче данных такого объёма по tftp.
Comment 2 Michael Shigorin 2016-11-19 14:28:56 MSK
Как вариант, можно добавить в %description предупреждение.
Но вообще да, на АНБ-шных туннелях в инфраструктуру мир не заканчивается.