オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

Ethdelayに機能追加:ジッター

»

回線遅延シミュレータ「Ethdelay」は技術系の地味な製品ながら、毎週・毎月コンスタントに売れ続けており、その上位版「EthdelayPro」も大体毎月2台は売れているということで、製品化をした本人もビックリしているような感じなのですが、どの製品も同じように、ユーザが増えれば増えるだけ様々な要望をいただくことができ、製品が進化することになります。

Ethdelayに対するご要望の中で、このところ一番多いのが、ジッターのシミュレーションです。Ethdelayはイーサパケットを中継しながら、「遅延」「ロス」「帯域制限」をシミュレーションするのですが、遅延に揺らぎが欲しいということです。現状はミリ秒単位で指定した固定値で遅延することしかできません。実際の回線ではある遅延量を基準に揺らぎがあります。それを再現したいということです。

実はだいぶ前から関数レベルの準備はできていたのですが、他の製品の対応などに追われていたため後回しになっていました。ようやく、そろそろやるぞ、ということになり、今日はエンジン部分に組み込んで、動作の検証をしてみました。

今回組み込んだのは、一様分布と正規分布です。実際の回線では一様分布はあまりないような気もしますが、ばらつきを大きくするのには便利です。実際に動かして、遅延量を観察して確認しました。

遅延を0.1秒(100ミリ秒)とし、正規分布の分散の値を変化させたものと、一様分布の様子をグラフにしてみました。

Etd
まるで数学の授業を思い出す感じですが、予定通りの結果で満足です!

残念ながらEthdelayではパケットの順序の逆転は対応していないので、大きな遅延の後に小さな遅延となっても逆転はせずに、大きな遅延パケットの後にすぐに小さな遅延パケットが流れる感じになりますが、それでも完全に固定の遅延よりは現実に近いシミュレーションができることになります。

まだユーザインターフェースの対応がこれからなので、リリースまではもう少し時間がかかりますが、とりあえず機能としては実現の目処がついたというところです。Ethdelay・EthdelayPro共に、保守契約を結んでいただいているユーザ様はファームアップデートでこの機能が追加できる予定です。

高校の授業では、代数幾何は好きでしたが、確立統計は嫌いでした。しかし、意外と社会で役立つのは確率統計かも知れませんね。もう少し真面目に勉強しておけば良かったかも知れません。。

========

実回線がどんな感じかもグラフにしてみました。自宅:会社間をIPsecのVPNで結び、その間の往復遅延をpingで測定しました。

Jitter

結構ばらついていますね。大体10msecくらいに集中してますが、そこから外れたものも結構あります。

さらに、Emobileでの様子も載せておきましょう。

Emjitter

こちらもpingでの往復遅延です。かなりばらつきます。100パケット中、4パケットはロスしていますし、2000msecくらいまで大きく遅延するものもありましたが、比較的集中している部分のみ切り出しました。Ethdelayでシミュレーションする場合は、遅延だけでなくロスも入れると近い状態にできそうです。

Comment(2)