Параметры протокола передачи файлов?
-
03-07-2019 - |
Вопрос
Я ищу хороший способ передачи нетривиальных (10G > x > 10MB) объемов данных с одной машины на другую, потенциально в течение нескольких сеансов.
Я кратко ознакомился с
- * ftp (sftp, tftp, ftp)
- http
- торренты (недоступны, потому что у меня вообще не будет начальной сети)
- rsync (не уверен, смогу ли я действительно адаптировать это к тому, что мне нужно)
Существуют ли какие-либо другие протоколы, которые могли бы немного лучше соответствовать требованиям?Большинство из вышеперечисленных сами по себе не очень отказоустойчивы, а скорее полагаются на клиент-серверные приложения, чтобы устранить слабину.На данном этапе меня гораздо больше волнует сам протокол, а не конкретная реализация клиент /сервер, которая работает хорошо.
(И да, я знаю, что могу написать свой собственный через udp, но я бы предпочел почти все остальное!!)
Решение
Я использую rsync (через SSH) для передачи всего, что, по моему мнению, может занять больше минуты.
Легко ограничивать скорость, приостанавливать / возобновлять и получать отчеты о ходе работы.Вы можете автоматизировать это с помощью SSH-ключей.Он (обычно) уже установлен (во всяком случае, на * nix-боксах).
В зависимости от того, что вам нужно, rsync, вероятно, может адаптироваться.Если вы распространяете информацию среди большого количества пользователей, FTP / HTTP может быть лучше для решения проблем с брандмауэром;но rsync отлично подходит для передачи один-к-одному или один-к-нескольким.
Другие советы
rsync - почти всегда лучший выбор.
поскольку он передает только различия, если передача будет прервана, в следующий раз она не будет так сильно отличаться от первой (когда в пункте назначения не было файла).
Для эффективности BitTorrent не требуется большая исходная сеть - он прекрасно будет работать с одним инициатором и одним одноранговым узлом.Настройка трекера и т.д. сопряжена с небольшими накладными расходами, но после настройки это был бы приятный, быстрый и отказоустойчивый метод передачи.
Что ж, HTTP - хороший вариант, поскольку он поддерживает перезапуск частичных передач с помощью диапазоны байтов.FTP или TFTP хороши тем, что вы можете получить серверное программное обеспечение, которое чрезвычайно просто настроить, вместо того чтобы блокировать что-то вроде HTTP-сервера.
Сетка FTP это то, что Argonne использует для надежной передачи огромных объемов данных.