Se você estiver precisando controlar seu próprio aplicativo, sugiro que inclua suporte limitador de taxa de dados no próprio aplicativo, mas se você estiver usando uma biblioteca de terceiros para fazer o envio, isso pode não ser possível.
Você não diz nada sobre a sua plataforma e o ambiente de instalação pretendido, o que dificulta recomendações específicas, mas o libcurl ( link ) é geralmente um escolha popular e suporta praticamente todos os protocolos para transferências ponto-a-ponto, tem opções limitadoras de taxa e está disponível para a maioria das plataformas, incluindo Linux, BSD, MacOS e Windows. A licença é uma que permite a sua ligação em aplicações não F / OSS também, se isso for um problema para você, e se você não puder encontrar ligações diretas para o seu idioma escolhido, você sempre poderá chamá-lo através do utilitário curl
externo.
Se você está preso usando uma biblioteca ou um programa externo que não suporta limitação de taxa e você está usando Linux (ou outro ambiente similar ao unix), então você pode procurar em trickle ( veja aqui ) ou a modelagem de tráfego que está disponível embutida nos kernels modernos (existem muitos guias para isso, isso é o que chegou ao topo de um rápido Google). Usar a modelagem de tráfego como essa permitiria controlar toda a largura de banda de saída, não apenas um aplicativo, para impedir que qualquer fluxo (ou combinação de fluxos) consumisse toda a largura de banda upstream de sua rede sem alterar aplicativos individuais.