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

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

回線遅延シミュレータ:EthdelayProの測定機能に機能追加(予定)

»

久しぶりに製品の話題です。回線遅延シミュレータEthdelayシリーズは技術系の製品ながらも根強い人気があり、毎月地道に売れています。つい先日は上位機種EthdelayProが一気に3台出荷となり、ついに社内在庫がゼロになってしまいました。またまとめてハードの発注をかけていますが、あまり仕入れすぎても売れないときはなかなか出ませんし、難しいところですね。細い回線・遅い回線などでの動作検証用にお使いいただくことがほとんどで、社内でもネットワーク関連の開発ではテスト用に人気があります。

上位機種のEthdelayProは初年度保守込みで販売していますし、ある程度定期的にバージョンアップも提供しようと考えています。お客さんからの要望がどんどんくると、毎週のように機能追加することもありますが、このところ実質的な機能追加が少しお休みだったため、今日は以前から対応したかった機能を作ってみました。

EthdelayProには回線シミュレータのほかに、測定機能があり、これまた意外と使ってみると便利なのです。
20100701_143446
特に回線遅延の測定はかなり便利です。一般的な回線測定の仕組みでは、2台のホストの間でパケットを飛ばして測定するやり方が多く、回線の太さを見ることはできるのですが、遅延の測定はかなり難しいのです。2つのホストの時刻をピッタリ一致させることができれば良いのですが、ミリ秒あるいはそれ以下で同期することはまず無理で、各パケットの絶対的な遅延時間を測定するのはかなり難しいのです。EthdelayProでは、1つのホストで送信・受信を行うため、時刻は送受信で一致しており、絶対遅延時間を測定できます。

ところが、普通に同一ホストでIPでパケットを送受信しようとすると、ループバック(内部転送)されてしまい、ネットワークインターフェースからパケットが実際に出て行かないのです。そこで、EthdelayProの測定機能ではリンクレイヤーでパケットを送受信して測定しています。ところが、リンクレイヤーで送信する際にはMACアドレスも自分で指定しなければならないので、従来はルーター経由の測定には対応していませんでした。

先日ルーターの自作をした際に、ARP関連のノウハウをつかんだので、今日は他のセグメント宛に送出する際にはARPでルーターのMACアドレスを調べて、そこに宛てて送出するように改良してみました。単に送信側で、パケットを送る前に、宛先が同一セグメントかどうかを調べて、他のセグメントならARPでルーターのMACアドレスを取得する仕組みを追加しただけですが、これでバッチリルーター越えの測定が可能になりました。

なお、同一セグメントでもARPで調べようかと思ったところ、同一ホストの場合、ARPパケットを送りつけても応答してくれないということもわかりました。。

まだユーザインターフェースの変更が必要なため、リリースはできていませんが、近々、バージョンアップの予定です。

さらに、、Ethdelayシリーズは、EthdelayとEthdelayProの差が広すぎる、ということで(値段も性能も)、その中間くらいの製品も欲しいという希望が多く、こちらも現在検討中です!

Comment(2)