A abordagem que você está sugerindo está completamente errada na minha opinião.
Por quê?
É um desperdício de recursos, é como "segurança através da obscuridade" remendar um problema ao invés de corrigi-lo diretamente, e isso vai criar complexidade que pode ser evitada através de uma solução melhor projetada , Eu não gosto disso!)Então, o que então?
Como você mesmo disse, a latência de cada link será flutuante. Eu vejo algumas abordagens aqui, de qualquer forma, a solução precisa ser uma que foi projetada para tal cenário (enfrentando problemas de latência e RTT). Veja as soluções para isso, seu problema real, não o problema meta de "como usar todos os três links de uma só vez?".
Solução Um
Primeiro, se você tiver três links, separe 1 ou 2 deles e reinove o dinheiro em algo com uma latência garantida. Os ISPs vendem links ponto-a-ponto (assim, leve um para o seu destino) com um SLA de atraso, e seu para um vencedor ali mesmo. Você pode manter o terceiro link como backup, se quiser.
Solução Dois
A segunda opção é usar algo como <> como o OER da Cisco (roteamento otimizado de borda). Outros fornecedores têm tecnologias semelhantes, ou se você tiver um firewall / roteador / gateway * nix, por exemplo, você também pode criar scripts ou codificar uma solução semelhante para você. Usando o Cisco OER como exemplo, ele permite que você configure testes (ou seja, ping's) para um destino, ele mede a qualidade do teste, se ele se degrada até um certo ponto, o tráfego é redirecionado de outra maneira. Assim, você pode configurar testes de latência e sempre usar a rota de menor latência.
Solução Três
MPLS TE - Switching Protocol Multi-Protocol - Engenharia de Tráfego. Eu sei que é um pouco difícil, mas o MPLS-TE permite que você configure túneis entre dois pontos finais e, mais uma vez, direcione o tráfego para o menor caminho de latência. Isso é um pouco mais especializado; Você precisa de um bom ISP que possa fazer isso para você, ou você precisa investir em alguns roteadores meio decentes e configurá-lo para si mesmo. Você pode executar o MPLS sobre GRE entre rotas remotas e configurá-lo.
Solução Quatro
Uma ideia possível é que você pode usar várias VPNs ou túneis entre as duas extremidades de sua rede e introduzir balanceamento de carga por pacote (round robbin'ing) em todos os três links. Você pode fazer isso com os roteadores Cisco e Juniper, por exemplo, ou novamente, se você usa o Linux, você pode usar um pacote como teql
ou comprar um dispositivo de hardware como um FireBrick. Se todos os links tiverem latências semelhantes (para que você não esteja misturando ADSL, 3G e fibra), isso funcionaria. Geralmente, não é recomendado que pacotes fora de ordem possam causar problemas em aplicativos, portanto, não há combinação de links de estilo de latência, como acabamos de mencionar. Mas, eu tenho isso habilitado através de um par de links agora, e fiz no meu último lugar, e eles estão livres de problemas. Tenho certeza de que um pacote pode chegar fora de ordem de vez em quando, mas deve ser muito raro, já que eu nunca notei nenhum problema.
Solução Cinco
Você mencionou a latência relacionada ao seu aplicativo. Desde que eu não sei o que é seu aplicativo ou como funciona, sempre pode haver a chance externa de que há alguma sanidade em mim recomendando que você faça algo sobre isso na camada de aplicativo. Quero dizer, recodifique o aplicativo para lidar com links de alta latência. A merda acontece, mesmo se você implementar uma solução mágica de rede de baixa latência, a merda acontece, a latência aumentará, o plano para pior, codifique em seu aplicativo para lidar com cenários indesejáveis, caso o pior aconteça (planejamento defeituoso e tudo, FMEA, etc.).