3. フィルター設定¶
3.1. フィルターの適用範囲¶
フィルター設定はネットワークデバイスの出力(送信側)に対して適用されます。
例えば、遅延オプションを片方のデバイスにしか設定しない場合、一方向のパケットにのみ遅延が発生し、 逆方向のパケットには遅延が発生しません。
そのため、双方向に遅延を発生させる場合は、両デバイスに対して同じフィルター設定を行って下さい。
3.2. 編集¶
3.3. 編集コマンド¶
フィルター・オプションは一旦編集バッファに格納され、 edit コマンドで編集中の内容を確認できます。 update コマンドを実行するとフィルター・設定が変更されます。 また、 reset コマンドで解除されます。
3.3.1. (1) edit¶
編集中でフィルター未適用の内容を表示します。
3.3.2. (2) update¶
編集中の内容をフィルターに適用します。
上記の例では、帯域が64Kpbs(=512Kbit/second)に設定されています。
3.3.3. (3) reset¶
適用済み、及び、編集中のフィルタ設定をリセットします。
3.4. フィルター・オプション¶
フィルター・オプションを入力すると一旦編集バッファに格納されます。 update コマンドを実行するとフィルター設定に反映されます。(前節参照)
3.4.1. (1) delay: 遅延¶
パケットの遅延設定を行います。
書式:
> delay 遅延時間 {ばらつき} {発生率(%)}
¶ 引数
省略
値
遅延時間
必須
単位: s:秒 / ms:ミリ秒 / us:マイクロ秒
ばらつき時間
可
単位: s:秒 / ms:ミリ秒 / us:マイクロ秒
ばらつき発生率
可
単位: %
実行例:
100msecの遅延を発生させる。
> delay 100ms
100msec±20msecの遅延を発生させる。
> delay 100ms 20ms
100msec±20msecの遅延を50%、残りは100msecの遅延を発生させる。
> delay 100ms 20ms 50%
注意:
pingコマンドのようにパケット往復が発生する通信の場合、フィルターの適用範囲によって全体の遅延時間に違いが発生します。
双方向に遅延を設定した場合
a > delay 100ms
往復で200msの遅延が発生します。
往復で100msにする場合は、50msの遅延設定にして下さい。
片方向に遅延を設定した場合
1 > delay 100ms
片方向のみで100msの遅延が発生します。
通信量が偏っている場合:
サーバからのダウンロードのように片側の通信量が大きい場合はフィルターの設定方向に注意して下さい。
3.4.2. (2) loss: 損失 (パケットロス)¶
パケットロスを発生させます。
書式:
> loss 損失率(%)
¶ 引数
省略
値
損失率
必須
単位: %
実行例:
10% の確率でパケットロスする。
> loss 10%
注釈
遅延時間と同様にフィルターの適用範囲に注意して下さい。
3.4.3. (3) duplicate: 重複¶
パケットの重複を発生させます。
書式:
> duplicate 発生率(%)
¶ 引数
省略
値
発生率
必須
単位: %
実行例:
10% の確率でパケットを重複させる。
> duplicate 10%
注釈
遅延時間と同様にフィルターの適用範囲に注意して下さい。
3.4.4. (4) corrupt: 破損¶
パケットのデータを書き換えます (ランダムな1bitを反転)
書式:
> corrupt 発生率(%)
¶ 引数
省略
値
発生率
必須
単位: %
実行例:
0.1% の確率でパケットを書き換える。
> corrupt 0.1%
注釈
遅延時間と同様にフィルターの適用範囲に注意して下さい。
TCP/IPパケットの場合はプロトコル・スタックでCRCチェックで誤りを検出してパケットは破棄されます。 UDPパケットでチェックサムを無効にしている場合は上位層で誤り検出が必要です。
3.4.5. (5) reorder: 順序変更¶
パケットの到着順序を変更します。
書式:
> reorder 発生率(%)
¶ 引数
省略
値
発生率
必須
単位: %
実行例:
10% の確率でパケットの到達順序を変更する。
> reorder 10%
注釈
遅延時間と同様にフィルターの適用範囲に注意して下さい。
3.4.6. (6) rate: 帯域制御¶
書式:
> rate 帯域
実行例:
> rate 64kbps
注釈
遅延時間と同様にフィルターの適用範囲に注意して下さい。