TC(Traffic Controller)で、帯域5M、パケットロス10%、 遅延1000msを セットするコマンドを教えて下さい

2024年7月21日

TC(Traffic Controller)で、帯域5M、パケットロス10%、遅延1000msを セットするコマンドを教えて下さい

# qdiscの設定をクリア
sudo tc qdisc del dev eth0 root

# トークンバケットフィルター (TBF) を使用して帯域幅を制限
sudo tc qdisc add dev eth0 root tbf rate 5mbit burst 10kb latency 50ms

# ネットエミュレーション(netem)を使用して遅延とパケットロスを追加 sudo tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 1000ms loss 10%

TC(Traffic Controller)のコマンドの一つとして使われている"latency"と"delay"の違いについて教えて下さい。

latency

"latency" は、トークンバケットフィルター (TBF) などのキューイングディシプリン(qdisc)で使用されます。ここでの "latency" は、バッファ内のパケットが許可される最大遅延時間を示します。つまり、指定されたバッファサイズ(burst)が満たされている場合に、パケットがそのバッファ内にどれだけ長く滞留できるかを示します。

delay

"delay" は、ネットエミュレーション(netem)で使用され、パケットに対して指定された遅延を追加します。この遅延は、ネットワークの遅延やラグをシミュレートするために使用されます。

まとめ

  • latency: TBF などのキューイングディシプリンにおいて、バッファ内での最大滞留時間を指定します。パケットの滞留時間が指定された latency を超えると、そのパケットはドロップされる可能性があります。バッファ内の滞留時間であり、ネットワーク全体の遅延を反映するものではありません。
  • delay: netem などで使用され、パケットに対して指定された遅延を直接追加します。ネットワーク全体の遅延やラグをシミュレートするために使用されます。

以上

 

2024年7月21日2024,江端さんの技術メモ

Posted by ebata