VPN も構築できたので、ローカル(LAN)で動作するプログラムを作ってみました。
今日のところは、ネットワーク上でどの位の遅延が生じるのか知りたかったので、サーバとクライアントの簡単なプログラムを作って実験してみました。
新潟のクライアントから送ったスイッチの情報が、東京のサーバにどの程度遅れて到達するか実験です。
今回試作したテスト用プログラム。
デバッグしやすいようにサーバとクライアントを1本にまとめてます。
イメージはこんな感じ。
新潟の電鍵操作で東京の無線機から CW の電波を発射する。
- 東京(サーバ)の設定
ポートを設定して「起動」するだけです。 - 新潟(クライアント)の設定
ポートとサーバの IP アドレスを設定して「接続」するだけです。
画面奥側がリモートデスクトップで接続されている東京側で、手前側が新潟になります。
手前側クライアントの「電鍵ボタン」で点灯するランプと、奥側のランプの点灯が同期することが理想です。
今回、試作したソフトと私のネット環境では、ご覧のとおり若干の遅れが生じています。
ある程度の遅れは覚悟してましたが、プログラム側でもう少しどうにかならないものかと考えられることを試してみましたが、これが限界のようです。
最初、TCP で通信するようにプログラムしていたのですが、遅延が激しくて途中 UDP にプログラムを変更しました。
遅延が無ければサーバ側の無線機のトーンがそのまま使えたのですが、少しでも遅延があれば無線機のトーンは使えないので、今回はクライアント側に用意する必要があります。
遅延についてはネット環境の改善で限りなくゼロに近づくと思うのですが、今のところどうしようもありません。
(新潟の WiMAX2+ が足を引っ張っている?)
因みに、新潟の LAN 内の2台の PC で試したところ、遅延を感じることは全くありませんでした。
同一敷地内の遠隔操作なら問題は無さそうです。(でも需要はない。)
さて、このプロジェクトですが、
少しのネット遅延を感じるままに、次のステップに進むことにします。
お次は、クライアントで使うインターフェースの試作で、
サーバ側のランプをクライアント側の電鍵操作でコントロールしてみます。