Simule um grande atraso de rede e explosão de pacotes após

Simule um grande atraso de rede e explosão de pacotes após

Estou testando o codec Opus e a pilha VoIP que o utiliza. Eu tenho um utilitário de teste sintético que envia internamente o tráfego Opus RTP entre duas portas na interface de loopback + grava o áudio resultante em arquivos para permitir análises adicionais.

Usando o utilitário 'tc' do Linux, posso simular vários problemas de rede.

No entanto, optei por simular algo como "atraso repentino na rede". Desculpe pelo meu pobre inglês!

Deve parecer que a rede está parada por 1 segundo e depois que todos os pacotes atrasados ​​​​são enviados o mais rápido possível para seus destinos.

É possível implementar com o utilitário 'tc'?

Tentei executar o comando 'tc' para atrasar 1000ms durante o processo de teste sintético; mas não me dá o efeito desejado.

Alguém pode dar conselhos?

Obrigado :)

Responder1

Deve parecer que a rede está parada por 1 segundo e depois que todos os pacotes atrasados ​​​​são enviados o mais rápido possível para seus destinos.

Isso é realmente possível... Deman tc:

netem
O Network Emulator é um aprimoramento dos recursos de controle de tráfego do Linux que permite adicionar atraso, perda de pacotes, duplicação e mais outras características aos pacotes que saem de uma interface de rede selecionada.

... e deman tc-netem:

slot
adiar a entrega de pacotes acumulados para dentro de um slot. Cada slot disponível pode ser configurado com um atraso mínimo para aquisição e um atraso máximo opcional.

... Então, você pode fazer algo assim:

sudo tc qdisc add dev interface root netem slot 1000ms 1000ms

... onde interfaceestá o nome da interface de rede pretendida, conforme mostrado, por exemplo, na saída de ip a.

Isso manterá todos os pacotes transmitidos na interface especificada 1000mse os liberará todos de uma vez (em uma explosão).

Perceberisso, delaypor outro lado, adicionará um atraso de 0,01 1000msa cada pacote transmitido na interface especificada.

informação relacionada