Use rsync
. É muito eficiente no uso do TCP, transfere apenas os arquivos que foram alterados e você pode optar por usar a compactação se quiser.
Você não encontrará uma maneira de superar um aplicativo que usa o TCP com eficiência. O TCP foi definido e refinado ao longo dos últimos 40 anos por muitas pessoas realmente inteligentes, então é muito difícil de superar.
As pilhas TCP modernas que suportam SACK são muito eficientes na detecção e no envio de relatórios de pacotes perdidos entre si. apenas os pacotes perdidos são retransmitidos. Colocar um servidor no meio não acelera nada, apenas adiciona latência.
A única maneira de superar o TCP no desempenho de transferência de dados é agravando o congestionamento da rede. TCP vai o mais rápido possível, mas recua momentaneamente quando há sinais de congestionamento. Se você criou um protocolo baseado em UDP que não se importava com o quanto ele acrescentava ao congestionamento de links que ele percorresse, você poderia explodir pacotes que causam muitos problemas de congestionamento, mas em média obter uma taxa de transferência um pouco maior do que o TCP.