Não consigo controlar a rede enviando meus pacotes UDP entre esses links porque me preocupo com a queda de pacotes e a perda de mensagens.
À primeira vista, isso parece mais um problema de design com o aplicativo, não com a rede:
- Redes não são confiáveis.
- O UDP nunca teve a intenção de transportar mensagens de forma confiável sem adicionar detecção e retransmissão de perda de camada de aplicativo.
Se o aplicativo exigir mensagens confiáveis, muitas pessoas usam o TCP (para terminais de unicast) ou o TIBCO RV (terminais de multicast). O diabo está sempre nos detalhes e não existe um tamanho único para todas as soluções.
Existe alguma maneira de detectar instantânea e repetidamente a largura de banda disponível entre dois data centers, para que eu possa estrangulá-la com meus pacotes?
Você está essencialmente pedindo o que é tradicionalmente chamado de QoS .
Depois de construir regras para classificar e priorizar seu tráfego, você pode usar QoS disciplinas como CBWFQ e LIQ priorizar suas classes de tráfego mais importantes em face de congestionamento (ie baixa largura de banda disponível).
Como alternativa, você pode usar a QoS para definir determinadas classes de tráfego para uma taxa média.
Em geral, as classes de tráfego UDP são consideradas mais sensíveis à perda do que as classes TCP. Sempre há exceções a essa regra, é claro; por exemplo, o TIBCO RV geralmente é baseado no multicast UDP, mas o TIBCO inclui números de sequência para detectar a necessidade de retransmissão. Dependendo dos aplicativos, você pode ou não precisar priorizar as classes UDP TIBCO em relação a outro tráfego TCP.
Não encontrei como detectar a largura de banda disponível.
Depende do tipo específico de QoS, mas em geral:
- As classes de QoS monitoram a utilização média dentro da classe de tráfego
- A QoS observa as filas da interface quanto ao congestionamento e prioriza apenas quando a interface tem um tamanho de fila diferente de zero (ou seja, congestionamento).
Esta resposta ilustra um tipo de configuração de QoS.
Notas finais: