LINUX.ORG.RU
ФорумTalks

[вброс] Зачем нужен FTP?

 


0

1

Нужно было тут на днях скачать cygwin. Казалось бы чего проще? Взял ссылки, скормил wget-y и сиди себе наблюдай. Но бинарники всех пакетов cygwin - это примерно две тысячи файлов, и смотреть, как на каждый из этих файлов wget создает новое соединение, мне не слишком понравилось. Потом я вспомнил, что HTTP 1.1 поддерживает повторное использование соединений. Пришлось перебрать несколько HTTP-зеркал (не все осилили 1.1 версию), но в итоге можно было наблюдать долгожданное «Reusing existing connection to xyz».

А теперь, собственно, следует вопрос, заданный в заголовке. Зачем нужен такой неэффективный протокол как FTP? Почитал еще RFC959. В теории «Reuse of the Data Connection» возможно. Но на практике сервера, поддерживающего block transfer mode, найти не удалось.

Ответ на: комментарий от no-dashi

Это понятно. Однако вопрос был в контексте топика. Есть несколько тысяч файлов, которые надо выложить, чтобы десятки тысяч людей их качали. Только качали, а не отправляли/не меняли/etc. Думаю, логичнее было бы оптимизировать скачку.

apprentice
() автор топика
Ответ на: комментарий от tailgunner

И что ужасного в создании соединения на каждый файл?

медленно шо ппц. Представь что тебе надо залить тыщу файлов в штаты. Даже если они пролетают мгновенно из-за 3way handshake на установку соединения будет тратится 3rtt минимум (лень точно считать). При пинге 300ms это почти секунда оверхеда на каждый файл. Итого: час времени в пустую.

Короче, говноспособ это. Поэтому и приходится tar -cf - | ssh host tar -tf - делать и другие костыли городить.

true_admin ★★★★★
()

Зачем нужен такой неэффективный протокол как FTP?

он как бы был не вчера придуман, за 40 лет слегонца устарел.

true_admin ★★★★★
()
Ответ на: комментарий от tailgunner

Мда, с расчётами я накосячил, но суть понятна.

true_admin ★★★★★
()
Ответ на: комментарий от tailgunner

Специально, чтобы не быть голословным и опираться не на «ощущения», поставил proftpd, сгенерировал 1000 мелких файлов, сделал tar файл по ним и залил на ftp. tar залился мгновенно, а вот куча фалов - почти 3 секунды.

helios ★★★★★
()
Ответ на: комментарий от tailgunner

что не так? Типичный пример: заливка файлов на хостинг. У битрикса, например, больше 100тыщ файлов (это не шутка). По FTP в эту вашу америку такое напрямую не залить.

true_admin ★★★★★
()
Ответ на: комментарий от apprentice

к чему использовать FTP для зеркалирования ... файлов
если HTTP лучше для этого подходит?

HTTP => HyperText Transfer Protocol, FTP => File Transfer Protocol. Угадаешь с одной попытки, что для чего предназначалось изначально?

marvin_yorke ★★★
()

Зачем нужен такой неэффективный протокол как FTP?

Из ftp уже песок сыпется, его изобрели когда интернеты были другими. Так что это он сейчас такой неэффективный.

AptGet ★★★
()
Ответ на: комментарий от marvin_yorke

Жаль, уже заглавный пост править не могу, напишу тут.

Меня интересует вопрос использования FTP/HTTP для зеркал с большим числом файлов, скачивать которые с постоянными соединениями/разъединениями накладно. Почему все не пользуются лучше подходящим для этой задачи HTTP/1.1 и почему FTP-серверы не поддерживают reusable data connection, хотя теоретически это возможно, о чем нам и говорит RFC? Спасибо конечно, но не надо рассказывать о том когда изобрели FTP или что он еще умеет.

apprentice
() автор топика
Ответ на: комментарий от apprentice

Почему все не пользуются лучше подходящим для этой задачи HTTP/1.1

Потому что rsync работает лучше.

redgremlin ★★★★★
()

Зачем для передачи файлов такой костыль, как HTTP, если есть FTP?

Deleted
()

Исходя из названия, для передачи файлов.

Дальше сабжа не читал.

PolarFox ★★★★★
()
Ответ на: комментарий от r2d2

Ты дурак. FTP просто есть. Его изобрели в своё время, и он был хорош. Мгновенно он не исчезнет.

Фу как верно и как грубо...

demmsnt
()
Ответ на: комментарий от true_admin

Типичный пример: заливка файлов на хостинг. У битрикса, например

битрикс! Этим всё сказано! Это как алигофренм дать писать офис... 1С есть 1С. Даже если им дадут идеальную среду они сделают 1С. Они ущербны. И делают клоаку даже из рая, просто потому, что они не видели рая, а клоака для них привычна.

demmsnt
()
Ответ на: комментарий от true_admin

Представь что тебе надо залить тыщу файлов в штаты.

А посчитай smbclient. Может и там не всё так радужно? Да и регресс при закачке большого файло есть....

demmsnt
()
Ответ на: комментарий от helios

Итого: 30 часов на битрикс.

На паузы. Пока кто-то не догадается попробовать закачивать параллельно несколько файлоа\в.

tailgunner ★★★★★
()
Ответ на: комментарий от sergej

Отойти от абстракции «файл» и копировать, к примеру, ещё и папками.

helios ★★★★★
()
Ответ на: комментарий от r2d2

Ты дурак.

Хороший аргумент в объяснении проблемы любого генезиса.

doomgl
()
Ответ на: комментарий от demmsnt

битрикс! Этим всё сказано!

угу, но, тем не менее, это актуальная сисьадминская задача :(. Кстати, когда я тестировал альтернативы (netcat и ещё пару продуктов) они оказались может даже хуже. Производительность была выше отнють не на порядок, зато нужных фич было сто раз меньше. Доходило до маразма, в одном из движков не стояли ограничения на размер аватара и я положил форум загрузив картинку на десяток мегапикселей. Потом написал в саппорт, они ответили «это не баг, вы же сами загрузили такую большую картинку». Вот так у нас работают.

true_admin ★★★★★
()
Ответ на: комментарий от r_asian

? FTP-то как раз в отличие от HTTP умеет производить кучу действий с файлами за одно подключение искоропки.

Неа. неа каждый LIST открывается data connection. Не говоря уж о трансфере.

r ★★★★★
()
Ответ на: комментарий от no-dashi

Во-первых, в отличие от HTTP, FTP протокол двусторонний. То бишь, он позволяет штатно как получать, так и отправлять файлы.

Ну - HTTP типа тоже. Только народ давно решил что HTTP это протокол для серванья быдлофорумов...

r ★★★★★
()

По FTP я могу зайти через MC, сделать CTRL-x d, сравнив файлы, затем ещё вручную выбрать-убрать несколько файлов, и нажать F5, чтобы скопировать. А как ты через HTTP будешь копировать 500 разных файлов из списка в 5000?

kid_lester
()
Ответ на: комментарий от kid_lester

А как ты через HTTP будешь копировать 500 разных файлов из списка в 5000?


Никак. File Index - не стандартизирован.

r ★★★★★
()
Ответ на: комментарий от r

Никак. File Index - не стандартизирован.

В теории есть httpfs over fuse, а на практике - если нет ftp, то очень-очень плохо. :(

kid_lester
()
Ответ на: комментарий от r

Только народ давно решил что HTTP это протокол для серванья быдлофорумов

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

no-dashi ★★★★★
()

А теперь, собственно, следует вопрос, заданный в заголовке. Зачем нужен такой неэффективный протокол как FTP?

Закачивать что-нибудь пробовал куда-нибудь когда-нибудь?

gods-little-toy ★★★
()
Ответ на: комментарий от apprentice

Меня интересует вопрос использования FTP/HTTP для зеркал с большим числом файлов, скачивать которые с постоянными соединениями/разъединениями накладно.

Чего тебе дался этот один коннекшен? FTP не запрещает установить хоть десяток коннекшенов. И тогда соединения-разъединения будут менее заметны.

Почему все не пользуются лучше подходящим для этой задачи HTTP/1.1 и почему FTP-серверы не поддерживают reusable data connection,

HTTP/1.1 не предназначен для передачи файлов. Там вообще нет понятия «выкачать вот этот каталог и все его подкаталоги».

gods-little-toy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.