Варианты протокола передачи файлов?

Я ищу хороший способ передачи нетривиальных (10G > x > 10MB) объемов данных с одной машины на другую, возможно, в течение нескольких сеансов.

я мельком посмотрел

  • *ftp (sftp, tftp, ftp)
  • http
  • торренты (вышел, т.к. у меня не будет сид сети вообще)
  • rsync (не уверен, что смогу адаптировать это под то, что мне нужно)

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

(И да, я знаю, что могу написать свой собственный поверх udp, но я бы предпочел почти что-нибудь другое!!)


person JT.    schedule 22.10.2008    source источник


Ответы (5)


Я использую rsync (через SSH) для передачи всего, что, по моему мнению, может занять больше минуты.

Легко ограничивать скорость, приостанавливать/возобновлять и получать отчеты о ходе работы. Вы можете автоматизировать его с помощью SSH-ключей. Он (обычно) уже установлен (во всяком случае, на *nix-боксах).

В зависимости от того, что вам нужно, rsync, вероятно, может адаптироваться. Если вы распространяете среди большого количества пользователей, FTP/HTTP может быть лучше для проблем с брандмауэром; но rsync отлично подходит для передачи один к одному или один к нескольким.

person Peter Stone    schedule 22.10.2008
comment
rsync звучит как моя первая остановка в исследовательском поезде. Я не знал, что он был настолько богатым, с ограничениями по скорости, отчетами о проделанной работе и т. д. - person JT.; 22.10.2008
comment
Для начала посмотрите на эти параметры: -avzP --stats --bwlimit - person Peter Stone; 24.10.2008

rsync почти всегда лучший выбор.

так как он передает только отличия, то если передача прервется, то в следующий раз она не будет так сильно отличаться от первой (когда в пункте назначения не было файла)

person Javier    schedule 22.10.2008

Для эффективной работы BitTorrent не требуется большая раздаточная сеть — он отлично работает с одним раздающим устройством и одним узлом. На настройку трекера и т. д. требуются некоторые накладные расходы, но после настройки это будет хороший, быстрый и отказоустойчивый метод передачи.

person ceejayoz    schedule 22.10.2008
comment
Хм, у меня сложилось впечатление, что 1 семя и 1 одноранговый узел превратились, по сути, в массу небольших сеансов «в стиле ftp», которые увеличили бы накладные расходы на машине с семенами с небольшой ценностью. Я предполагаю, что мне нужно пойти сделать больше исследований!! - person JT.; 22.10.2008

Что ж, HTTP — хороший вариант, поскольку он поддерживает перезапуск частичных передач с использованием диапазонов байтов. FTP или TFTP хороши тем, что вы можете получить серверное программное обеспечение, которое чрезвычайно просто настроить, вместо того, чтобы блокировать что-то вроде HTTP-сервера.

person Mark Bessey    schedule 22.10.2008

GridFTP — это то, что Argonne использует для надежной передачи огромных объемов данных.

person plinth    schedule 22.10.2008