6

command で低速のネット リンクをエミュレートしようとしていtcます。netem遅延とパケット損失をエミュレートし、htb を使用して狭い帯域幅をエミュレートしていますが、制限オプションが にあることがわかりましたnetem。このオプションは何をしますか? 最終的な帯域幅に影響しますか?

私はそれをグーグルで検索し、 http://manpages.ubuntu.com/manpages/raring/man8/tc-netem.8.htmlで何かを見つけました

それは言う:

選択したオプションの効果を、指定された数の次のパケットに制限します。

しかし、私はまだそれが何をするのか理解できません。

4

2 に答える 2

7

netem が何をしているのか正確にはわかりませんが、"limit" をより高い値に設定しないと、netem が正しく機能しないことがわかりました。つまり、高速でパケットを破棄し、他の問題が発生する可能性があります。 、本質的に実際のネットワークを正確にエミュレートしていません。

CarlH が言及したメーリング リストから、Stephen Hemminger は次のように述べています。

少なくとも netem (tfifo) 内でデフォルトの qdisc を使用する場合、制限値はパケット単位です。pfifo を使用して、パケット制限、または bfifo と同じバイトのみを構成することもできます。値 1000 は低く、小さなキューでルーターをエミュレートしようとしている場合を除き、最大パケット レート * 遅延よりも約 50% 大きくする必要があります。

したがって、1 Gbps リンクの場合、1 Gbps / 1500 バイト MTU * 100 ms * 1.5 = 12500です。

指示:

sudo tc qdisc add dev eth1 root netem limit 12500 delay 100ms loss 1%

私は制限 100000 を使用してきましたが、これは問題なく機能しているようですが、より低い値でも問題ないようです。

于 2016-07-09T03:17:33.917 に答える
2

https://lists.linuxfoundation.org/pipermail/netem/2007-March/001091.htmlから

"limit" パラメータは、netem モジュールに割り当てられたバッファの数を示します。

制限は、特定のデータ レートで遅延するフレーム数 (たとえば 500ms) をサポートするように調整する必要があります。

敬具、

ローラン・マリー

于 2016-03-05T19:23:35.820 に答える