Почему Udcast во много раз быстрее Netcat?

Я использую Netcat время от времени для копирования файлов или образов дисков по сети. В то время как он выполняет свою работу, я всегда чувствовал, что он всегда находится на медленной стороне, независимо от использования ssh, без ssh, сжатия или без сжатия.

Я начал тестировать udpcast (http://www.udpcast.linux.lu/cmd.html) и кажется, что будет по крайней мере 5 раз (или больше) более быстро. Udpcast со сжатыми трубами иногда во много раз быстрее, чем netcat без сжатия трубная продукция.Сжатие с помощью Nc обычно замедляется по моей локальной сети, поэтому я обычно избегаю его. Потому что моя сеть, как правило, работает на 1gbs

вот несколько примеров без ssh и без сжатия, которые я использую

dd if=somedisk |pv|nc -l -p 9999  
nc networkaddr 9999|pv >./disk.img  


udp-sender --full-duplex --file /dev/somedisk
udp-receiver --file ./disk.img

вот несколько основных примеров, которые я использую. Естественно, я использую и сжатые трубы. Во всех случаях udpcast будет выполнять min 5X speeds Netcat, и мне интересно, почему это так.

Я даже склонен думать, что Udpcast с pipes - хороший комплимент для передачи сетевых файлов.

здесь udpcast с tar и untar трубой для 17.5 гиб по сети

реальный 9m26.186s


пользователь 0m1.247s


sys 0m23.836s

а вот cp над Samba от Linux до Windows


настоящий 9m17.729s


пользователь 0m0.311s


sys 0m11.044s

можно ли поймать производительность Udpcast с Netcat?


Поэтому я прошу иногда некоторые дистрибутивы могут теперь предложить Udpcast.

6
задан Hennes
21.12.2022 10:22 Количество просмотров материала 2906
Распечатать страницу

1 ответ

nc по умолчанию использует TCP.

TCP начинается с низкого "размера окна" и набирает скорость во время соединения, поскольку максимальный размер окна определяется как больший. Кроме того, TCP передает дополнительный трафик для поддержания соединений, т. е. пакетов ACK. Это необходимо для поддержки понятия "связи"и надежной, заказанной доставки.

UDP не поддерживает соединения или надежную доставку, поэтому никакого дополнительного багажа не существует, и поэтому он более быстрый.

Я не играл с udpcast много, но если у него нет механизмов обнаружения ошибок, то вы рискуете не иметь хорошую копию того, что вы передали, если ваша сеть решит удалить пакет.

nc есть -u опция IIRC для отправки / получения с использованием UDP вместо TCP.

2
отвечен LawrenceC 2022-12-22 18:10

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх