3. フィルター設定

3.1. フィルターの適用範囲

フィルター設定はネットワークデバイスの出力(送信側)に対して適用されます。

例えば、遅延オプションを片方のデバイスにしか設定しない場合、一方向のパケットにのみ遅延が発生し、 逆方向のパケットには遅延が発生しません。

_images/filter_delay_one.png

図 3.10 片方向の遅延

そのため、双方向に遅延を発生させる場合は、両デバイスに対して同じフィルター設定を行って下さい。

_images/filter_delay_both.png

図 3.11 双方向の遅延

3.2. 編集

3.3. 編集コマンド

フィルター・オプションは一旦編集バッファに格納され、 edit コマンドで編集中の内容を確認できます。 update コマンドを実行するとフィルター・設定が変更されます。 また、 reset コマンドで解除されます。

_images/filter_command.png

図 3.12 編集コマンド

3.3.1. (1) edit

編集中でフィルター未適用の内容を表示します。

_images/edit.png

図 3.13 edit コマンド

3.3.2. (2) update

編集中の内容をフィルターに適用します。

_images/update.png

図 3.14 update コマンド

上記の例では、帯域が64Kpbs(=512Kbit/second)に設定されています。

3.3.3. (3) reset

適用済み、及び、編集中のフィルタ設定をリセットします。

_images/reset.png

図 3.15 reset コマンド

3.4. フィルター・オプション

フィルター・オプションを入力すると一旦編集バッファに格納されます。 update コマンドを実行するとフィルター設定に反映されます。(前節参照)

3.4.1. (1) delay: 遅延

パケットの遅延設定を行います。

書式:

> delay 遅延時間   {ばらつき}   {発生率(%)}
表 3.5 delayオプションの引数

引数

省略

遅延時間

必須

単位: s:秒 / ms:ミリ秒 / us:マイクロ秒

ばらつき時間

単位: s:秒 / ms:ミリ秒 / us:マイクロ秒

ばらつき発生率

単位: %

実行例:

  1. 100msecの遅延を発生させる。

> delay 100ms
  1. 100msec±20msecの遅延を発生させる。

> delay 100ms  20ms
  1. 100msec±20msecの遅延を50%、残りは100msecの遅延を発生させる。

> delay 100ms  20ms  50%

注意:

pingコマンドのようにパケット往復が発生する通信の場合、フィルターの適用範囲によって全体の遅延時間に違いが発生します。

  1. 双方向に遅延を設定した場合

    a > delay 100ms
    

    往復で200msの遅延が発生します。

    _images/filter_delay_both-2.png

    図 3.16 両方向の遅延

    往復で100msにする場合は、50msの遅延設定にして下さい。

  2. 片方向に遅延を設定した場合

    1 > delay 100ms
    

    片方向のみで100msの遅延が発生します。

    _images/filter_delay_one-2.png

    図 3.17 片方向の遅延

通信量が偏っている場合:

サーバからのダウンロードのように片側の通信量が大きい場合はフィルターの設定方向に注意して下さい。

_images/filter_download.png

図 3.18 通信量が偏っている例

3.4.2. (2) loss: 損失 (パケットロス)

パケットロスを発生させます。

書式:

> loss  損失率(%)
表 3.6 lossオプションの引数

引数

省略

損失率

必須

単位: %

実行例:

  1. 10% の確率でパケットロスする。

> loss 10%

注釈

遅延時間と同様にフィルターの適用範囲に注意して下さい。

3.4.3. (3) duplicate: 重複

パケットの重複を発生させます。

書式:

> duplicate  発生率(%)
表 3.7 duplicateオプションの引数

引数

省略

発生率

必須

単位: %

実行例:

  1. 10% の確率でパケットを重複させる。

    > duplicate 10%
    

注釈

遅延時間と同様にフィルターの適用範囲に注意して下さい。

3.4.4. (4) corrupt: 破損

パケットのデータを書き換えます (ランダムな1bitを反転)

書式:

> corrupt  発生率(%)
表 3.8 corruptオプションの引数

引数

省略

発生率

必須

単位: %

実行例:

  1. 0.1% の確率でパケットを書き換える。

    > corrupt 0.1%
    

注釈

  1. 遅延時間と同様にフィルターの適用範囲に注意して下さい。

  2. TCP/IPパケットの場合はプロトコル・スタックでCRCチェックで誤りを検出してパケットは破棄されます。 UDPパケットでチェックサムを無効にしている場合は上位層で誤り検出が必要です。

3.4.5. (5) reorder: 順序変更

パケットの到着順序を変更します。

書式:

> reorder  発生率(%)
表 3.9 reorderオプションの引数

引数

省略

発生率

必須

単位: %

実行例:

  1. 10% の確率でパケットの到達順序を変更する。

    > reorder 10%
    

注釈

遅延時間と同様にフィルターの適用範囲に注意して下さい。

3.4.6. (6) rate: 帯域制御

書式:

> rate  帯域
表 3.10 rateオプションの引数

引数

省略

帯域

必須

単位

表 3.11 単位

単位

意味

bps

byte/second

bit

bit/second

指定なし

bit/second

K / k

Killo (1,000)

M / m

Mega (1,000,000)

G / g

Giga (1,000,000,000)

表 3.12 設定例

解釈

1000

1K bit/second

1K

1K bit/second

1Kbit

1K bit/second

1Kbps

1K byte/second

実行例:

> rate 64kbps

注釈

遅延時間と同様にフィルターの適用範囲に注意して下さい。