Como faço para simular um ambiente de baixa largura de banda, alta latência?
22 answers
Para macOS , existe o condicionador de ligação de rede {[5] } que simula largura de banda configurável, latência e perda de pacotes. Ele está contido nas Ferramentas IO do Hardware para Xcode .
Há um excelente writeup de configurar uma máquina FreeBSD para fazer apenas isso-pegue o seu ambiente de trabalho antigo padrão, jogue em um NIC adicional, e construir.
O writeup está disponível em http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html.
No Passo 5 das instruções acima, está a activar uma firewall. Para apenas simular uma ligação IP diferente, você poderia (por exemplo) fazer o seguinte:Crie um ficheiro /etc/rc.firewall.56k
que contenha o seguinte:
ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in
ipfw pipe 1 config bw 56Kbit/s
ipfw pipe 2 config bw 56Kbit/s
E mudar /etc/rc.conf
... substituir a linha
firewall_type="open"
Com
firewall_type="/etc/rc.firewall.56k"
Reinicie, e tem uma ponte 56K!
Se por acaso estiver a trabalhar a partir de um Macintosh, o SO tem o ipfw incorporado por omissão. Eu fiz a mesma coisa ao encaminhar o tráfego de rede sobre o aeroporto e através da ethernet, configurando-o para que qualquer coisa que venha para o aeroporto tenha as mesmas características que o que eu estou tentando imitar. Pode invocar o ipfw comandos diretamente do terminal e obter os mesmos efeitos.
No passado, usei uma ponte usando a funcionalidade Linux Netem (emulação de rede). É altamente configurável -- permitindo a introdução de atrasos (o primeiro exemplo é para um WAN), perda de pacotes, corrupção, etc.
Editar: existe também a interface Web para controlar a configuração.
Estou a notar que o Netem funcionou muito bem para as minhas aplicações, mas também acabei por usar Wanem várias vezes. A ISO inicializável fornecida (e imagens de aparelhos virtuais) tornou-o bastante útil.
Charles
Deparei-me com Charles a aplicação 'proxy' de depuração da web e tive grande sucesso em emular a latência da rede. Ele funciona no Windows, Mac e Linux.
Acelerador de largura de banda / simulador de largura de banda
O Charles pode ser usado para ajustar a largura de banda e latência da sua ligação à Internet. Isto permite-lhe simular as condições do modem usando a sua ligação de alta velocidade.A largura de banda pode ser reduzida para quaisquer bytes arbitrários por segundo. Isto permite que qualquer velocidade de conexão seja simulada.
A latência também pode ser definida para qualquer número arbitrário de milisegundos. O atraso de latência simula a latência vivida em conexões mais lentas, ou seja, o atraso entre fazer um pedido e o pedido que está sendo recebido na outra extremidade.
DummyNet
Também pode usar o vmware para executar o BSD ou o Linux e tentar Este artigo (DummyNet) ou Este.
Tenta WANem
A WANem é um emulador de rede de grande área, destinado a proporcionar uma experiência real de uma rede/Internet de grande área, durante o desenvolvimento de aplicações / testes em um ambiente LAN.
Eu encontrei este pequeno programa arrumado desajeitado . Está em estado alfa, mas parece funcionar bem para mim, e é de código aberto.
Editar: outros notaram que você não pode limitar a largura de banda com desajeitado, e isso é verdade. Você só pode adicionar latência e alguns outros erros relacionados à rede. Isto irá desqualificar esta resposta como uma resposta válida para a pergunta, no entanto, uma vez que eu tinha bom uso para ele quando eu queria simular uma rede ruim para que eu vou deixá-lo aqui como desde que tenha > 0 votos ou semelhante.
Para O Windows pode usar esta aplicação: http://www.softperfect.com/products/connectionemulator/
Emulador de ligação WAN para Windows 2000, XP, 2003, Vista, Seven e 2008.
Talvez o único disponível para o Windows.Eu tentaria usar netem no linux. Com ele você pode simular atraso adicional, corrupção, perda de pacotes e duplicação. Até funciona no dispositivo de loopback.
Outro programa do lado do cliente( apenas Windows), é o NetLimiter - http://www.netlimiter.com
Http://seriousbit.com/netbalancer/
Atualizações em 2017-10-07: a última versão livre do NetBalancer é 9.2.7. O programa tem uma data de validade codificada. Antes de iniciar o serviço NetBalancer, você precisa voltar o relógio do sistema antes de 2016-10-18. Ver Este artigo para mais pormenores.
Encontrei este para o Windows usando o Fiddler (solução livre) http://www.logic-worx.com/index.php/tools-and-apps/fiddler-connection-simulator/
Acho que {[[0]} poderia fazer o trabalho na plataforma baseada no UNIX.
tc
é usado para configurar o controlo de tráfego no kernel Linux
http://lartc.org/manpages/tc.txt
Para simular uma ligação de baixa largura de banda para testar os sítios web que utilizam o Google Chrome, pode ir à página de rede em ferramentas F12 e seleccionar um nível de largura de banda para simular ou criar uma largura de banda personalizada para simular.
Se você está no linux, eu acho que o controlo de tráfego é uma grande ajuda para este tipo de coisas.
Existe um produto de http://www.shunra.com chamado Desktop VE, que pode ser usado para simular condições de rede variáveis. Ele permite ajustar latências, largura de banda e packetloss com uma UI simples. O único senão é que não é de graça. Espero que isto ajude.
Ando à procura de uma ferramenta fácil de usar para este tipo de testes há algum tempo. Acabei de me deparar com isto no outro dia.
Se estás a correr janelas, devias verificar. Foi super fácil de configurar e começar, e parece funcionar muito bem. Ele permite que você defina largura de banda, latência e perda de pacotes em cada direção. A outra coisa realmente boa é que você pode definir "condições de fluxo de correspondência" de modo que só afeta o o trânsito é o que tu queres. Sim, e é grátis.Dê uma olhada no emulador de rede NE-ONE que lhe permite configurar a largura de banda, Latência, Perda de pacotes, reordenamento de pacotes, duplicação de pacotes, fragmentação de pacotes, congestionamento da rede e muitas outras deficiências para que você possa criar condições de rede do mundo real no laboratório. Diferentes incapacidades podem ser configuradas para o up e downlink para que você possa ter um uplink realmente bom, mas uma experiência downlink realmente ruim, ótimo para ver como o aplicativo lida com a fila TCP porque os acks não volte em tempo oportuno e a latência global, portanto, aumenta!
Há uma versão de hardware. http://www.itrinegy.com/index.php/products/network-emulators/ne-one - ou você pode baixar uma versão Virtual Appliance (software) que funciona sob VMware ESXi Server. O aparelho Virtual pode ser descarregado da VMware Solution Exchange - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulatorHttp://www.softinengines.com/index.php?section=download&langu=en
Não é de graça, mas tem um julgamento de 30 dias.Podes tentar isto: CovenantSQL/GNTE escreve o YAML assim:
group:
-
name: china
nodes:
-
ip: 10.250.1.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.1.3
cmd: "cd /scripts && ./YourBin args"
delay: "100ms 10ms 30%"
loss: "1% 10%"
-
name: us
nodes:
-
ip: 10.250.2.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.2.3
cmd: "cd /scripts && ./YourBin args"
delay: "1000ms 10ms 30%"
loss: "1% 10%"
network:
-
groups:
- china
- us
delay: "200ms 10ms 1%"
corrupt: "0.2%"
rate: "10mbit"
Corre../generate scripts/your.yaml