Simulieren Sie eine einzelne große Netzwerkverzögerung und einen Paket-Burst nach

Simulieren Sie eine einzelne große Netzwerkverzögerung und einen Paket-Burst nach

Ich teste den Opus-Codec und den VoIP-Stack, der ihn verwendet. Ich habe ein synthetisches Testprogramm, das intern Opus-RTP-Verkehr zwischen zwei Ports auf der Loopback-Schnittstelle sendet + die resultierenden Audiodaten in Dateien schreibt, um weitere Analysen zu ermöglichen.

Mit dem Linux-Dienstprogramm „tc“ kann ich verschiedene Netzwerkstörungen simulieren.

Ich habe mich jedoch darauf beschränkt, so etwas wie „plötzliche Netzwerkverzögerung“ zu simulieren. Entschuldigen Sie mein schlechtes Englisch!

Dies sollte so aussehen, als würde das Netzwerk für 1 Sekunde angehalten und danach alle verzögerten Pakete so schnell wie möglich an ihre Ziele gesendet.

Ist eine Implementierung mit dem Dienstprogramm „tc“ möglich?

Ich habe versucht, den Befehl „tc“ auszuführen, um während des synthetischen Testvorgangs eine Verzögerung von 1000 ms zu erreichen. Dies hat jedoch nicht den gewünschten Effekt.

Kann jemand einen Rat geben?

Danke :)

Antwort1

Dies sollte so aussehen, als würde das Netzwerk für 1 Sekunde angehalten und danach alle verzögerten Pakete so schnell wie möglich an ihre Ziele gesendet.

Das ist tatsächlich möglich ... Vonman tc:

netem
Network Emulator ist eine Erweiterung der Verkehrssteuerungsfunktionen von Linux, die es ermöglicht, Paketen, die von einer ausgewählten Netzwerkschnittstelle ausgehen, Verzögerungen, Paketverluste, Duplikate und weitere Eigenschaften hinzuzufügen.

... und vonman tc-netem:

Slot
Verzögern Sie die Zustellung angesammelter Pakete innerhalb eines Slots. Jeder verfügbare Slot kann mit einer Mindestverzögerung für den Empfang und einer optionalen Maximalverzögerung konfiguriert werden.

... Sie können also so etwas tun:

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

... wobei interfaceder Name Ihrer gewünschten Netzwerkschnittstelle ist, wie er beispielsweise in der Ausgabe von angezeigt wird ip a.

Dadurch werden alle gesendeten Pakete auf der angegebenen Schnittstelle für eine Weile gespeichert 1000msund dann alle auf einmal freigegeben (in einem Ausbruch).

BeachtenDadurch delaywird andererseits 1000msjedem übertragenen Paket auf der angegebenen Schnittstelle eine Verzögerung von hinzugefügt.

verwandte Informationen