dmonitor のパケットロス問題について

TL;DR

そもそもdmonitorとは

dmonitorは、DVゲートウェイ機能に対応した D-STAR トランシーバに Raspberry Pi (※PCで無理やり動かす方法もあるにはありますが...)を接続し、全国各地の D-STAR レピータをインターネット経由でタヌキワッチできるソフトです。

ICOM のリグにはターミナルモードがあり、RS-MS3 の入った Windows PC または Android 端末に接続してレピータに向けて声を出すことができますが、これだと接続先レピータをワッチできないので、レピータでCQを出している人に応答できません。自分でCQを出す必要があります。また、ターミナルモードで出ている局に応答するときに[RX→CS]を押し忘れる方もいらっしゃるようです。これではD-STARの楽しみも半減ですね。こんな状況を解決してくれるのがdmonitorです。

dmonitorのパケットロス問題

dmonitorは素晴らしいツールではありますが完全無欠ではありません。dmonitorでレピータをワッチしていると、デジ簡のように「ケロる」ことがあります。ケロるとはもともとデジタル簡易無線での用語で、相手局の音声がカエルの鳴き声のようになって何を言っているのか分からなくなってしまうことを指します。もちろん、レピータに電波でアクセスしている場合やシンプレックスで電波が悪いときにも起こります。

ケロってしまう原因は様々ありますが、ここでいくつか挙げます。相手局側の問題はどうしようもないので、自局側の問題だけ取り上げます。

問題の解決方法

D-STAR が UDP を使っている

D-STAR は音声の伝達に UDP を使っています。UDP とは User Datagram Protocol の略称です。インターネットでは TCP も使われていますが、D-STAR は UDP を使っています。

UDP はデータの正確性が保証されない仕組みです。その代わり転送速度は高速です。TCP は逆でデータが確実に届きますが、データが届かなかった場合には何度も再送してしまうので、D-STARのようなリアルタイム性の求められる音声通信には不向きです。UDP はデータが届かなくても再送しないので、自局に届いたパケットを確実に捉えることが必要になります。

ポート開放ができていない

dmonitor はポート開放は不要とされていますが、51000をポート開放したほうが繋がりやすくなります。dmonitor はポート開放無しで使えるようにUDPホールパンチという複雑な仕組みを使っていますが、普通にポート開放をしたほうが繋がりやすくなります。UDPホールパンチはどこでも使えるわけではなく、ルーターなどの条件によっては失敗することがあります。当局では 51000 を開放したら多少は dmonitor に接続しやすくなりました。

Wi-Fi を使っている

Wi-Fi は無線を経由しているのでパケットロスが多くなるというのはハムであればご理解いただけるかと思います。特に 2.4GHz は 電子レンジ、Bluetooth やコードレス電話、そして我々アマチュアバンドなどで混み合っています。チャンネルという概念もシステムごとに違う上に免許不要局が多いので、汚れたバンドです。

当局は有線 LAN が引き回せないので PC も Wi-Fi に接続しています。Wi-Fi にはデータの誤りを訂正する誤り訂正機能があるものの、Wireshark などで D-STAR のパケットを見るとパケットロスがあるようです。一部のルータでは「LDPC」機能があり、やや強力な誤り訂正を使用できます。当局ではLDPCが無効になっていたため、今後は有効にしてdmonitorを試してみようと思います。

USB ケーブルの品質が悪い

無線機と PC を接続するのに使用する USB ケーブルでも dmonitor の状況が変わるように思いました。USBは400Mbps程度の速度が出るため、ケーブルに流れているのは立派な高周波です。冷静に考えれば、同軸でもないケーブルで高周波を送っているので、不安定になりやすいのも理解できます。

なので、dmonitorを使うときはAmazonBasic の USB3.0 ケーブルを使って ID-50 と PC を接続しています。(※このリンクは広告ではありません。)シャックにあるケーブルを様々試しましたがこれが安定するようでした。(あくまで経験則です)dmonitor用のケーブルは太めのものを使って、ノーブランドの粗悪品は避けるべきでしょう。

電子工作でマイコンにプログラムを書き込むときや Android スマートフォンの ROM 書き込み、数年前に 10000 円以下でオールモードで超広帯域受信ができると話題になった RTL-SDR でも USB ケーブルのせいでうまくいかないということがあったようです。

ラズパイ/PC の性能不足

CPU の負荷が高くなると dmonitor の音声が二重になることがありました。dmonitor のブラウザは Raspberry Pi で直接表示するより、同一 LAN 内の別の PC のブラウザから IP アドレスを指定して接続したほうが負荷が小さくなります。また、セキュリティ上の不安もありますので dmonitor は単独で運用しましょう。

といっても別の用途で Raspberry Pi を使いたい方もいらっしゃると思いますし、私も Raspberry Pi 4B を持っていますが別用途で使っています。なので PC 上で dmonitor を無理やり運用しています。これを構築するには Linux や仮想化周りの知識が必要で時間もかかりますし、不安定なのでおすすめしません。大人しく Raspberry Pi Zero を買ったほうが良いと思います。