O NIST cria um simulador de rede chamado NistNet.
link (link parece morto)
link
A NistNet permite que você faça um roteador que emule um link de comunicação de sua escolha.
Para uma operação mais simples, você o tem em uma caixa com duas placas de rede entre duas redes.
Por exemplo, eu tinha um aplicativo que tinha que funcionar em um link de satélite.
Os dados podem passar pelo link de 2Mbps com latência BIG.
O controle tinha que passar por um link de 128kbps, com a mesma latência.
NistNet ajudou a fazer tudo funcionar em 128kbps.
Usando o NistNet eu poderia simular não apenas a largura de banda, mas também a latência,
e também descarta pacotes para você, simulando um link ocupado ou não confiável.
Se você quiser simular uma conexão arbitrária, não restrinja apenas a largura de banda,
Enrole a latência também.
Não esqueça de fragmentar os pacotes também. Você pode configurar pequenas MTUs agradáveis no link falso.
O IIRC adicionando jitter de pacotes permitirá que você descubra se consegue lidar com pacotes fora de ordem.