Передача файлов
Мне любопытно, есть ли реализации, где можно отправить файл по широковещательному адресу, как в адресах IPv4, на несколько конечных хостов?
Например, может scp
выполнить трансляцию файла на несколько хостов
scp myFile.txt host@192.168.50.255:/home/hostname
Очевидный способ сделать мгновенный scp
более двух или более хостов с помощью &&
оператор, но что происходит, когда номера хостов больше 20+
2 ответа
Да, это может быть сделано. Jakuje прав, что это не может быть сделано в TCP, однако его ответ не охватывает UDP, который вместо этого используется именно для этого.
Некоторое время я использовал эту программу на Java, но потом обнаружил, что Clonezilla может это сделать,
Multicast поддерживается в Clonezilla SE, которая подходит для массивных клонов
и это дало мне мотивацию посмотреть, как они это сделали: сами авторы Clonezilla заявляют, что для этого используют UDPCast, и это все: состояния веб-страницы UDPCast
UDPcast - это инструмент для передачи файлов, который может отправлять данные одновременно во многие пункты назначения в локальной сети. Это может быть использовано, например, для установки целых классных комнат ПК одновременно. Преимущество UDPcast по сравнению с использованием других методов (nfs, ftp и т. Д.) Заключается в том, что UDPcast использует возможности многоадресной рассылки UDP: установка 15 компьютеров займет больше времени, чем установка только 2.
Он находится в репозиториях для дистрибутивов, которые я использую (Debian, Kubuntu, Arch Linux), поэтому я предполагаю, что он будет почти во всех репозиториях.
Нет, это не работает так. scp
работает над ssh
протокол, который основан на соединении (TCP) и поэтому не может делать трансляцию. Он отправляет данные и получает подтверждение того, что данные были правильно получены другой стороной.
Вы могли бы сделать это со значительной модификацией клиента, которая открыла бы подключение к большему количеству серверов и отправила бы данные всем им, но это не настоящая трансляция.