🉐

WiresharkでOSCの疎通を確認する

2024/06/04に公開

なぜかOSCが届かない… あと5分でオープンなのに、、ということ、ありますよね。

そんな時に 「なんか変だから、とりあえずWireshark」と脳死で使うべき パケットキャプチャツール「Wireshark」について解説します

Wiresharkとは?

Wiresharkはオープンソースのパケットキャプチャツールで、ネットワークインターフェイスの通信の状態をすべてキャプチャすることができます

Wiresharkを使うメリット

  • ローレベルで通信内容のキャプチャが行われるのでファイアウォールの状態に左右されない
  • 他のアプリケーションでポートをリッスンしていてもメッセージが到達しているかどうかが判別できる

→ つまり、NICにパケットが到達していたら確実に確認できる ので不具合の原因切り分けにとても便利です

Wiresharkのインストール

公式のWebサイトからインストーラーをダウンロードしてインストールします
https://www.wireshark.org/download.html

何も考えずにNextを押し続けるだけでOKですが、Npcap というツールをインストールしないとパケットキャプチャが使えないので Npcap は確実にインストールしてください。(デフォルトでインストールされるのでNextポチポチしていれば問題ないです)

ポータブル版もありますが、上記の Npcap がインストールされなかった気がするので、基本的にはインストーラー版のほうがいいと思います

Wiresharkの使い方

Wiresharkを起動すると ↑ のような画面が表示されます。
何かしらの通信が行われているデバイスは自動的に上のほうに来るようになっているので、目的のネットワークインターフェイス(NIC)を選択して左上にあるサメのヒレのようなボタンを押すとキャプチャが始まります

一点、注意が必要なのは、PC内ローカルの通信をキャプチャしたい時は Adapter for loopback traffic capture を選択する必要がある点です。
PC外との通信を見たい場合は深く考えずに目的のNICの名前を選択すればOKです



キャプチャを停止する時は停止ボタン、最初の画面に戻ってNICの選択をやりなおしたい時はなんかバッテンのボタンを押します

OSCを扱う時に便利な設定

Analyze > Enabled Protocols から OSC用のフィルタ osc_udp を有効化しておくとOSCっぽいパケットのタイプを自動で判別してくれるようになります。
有効化後、検索窓っぽい所に osc とうつと、OSCのパケットのみが表示されるようになります

パケットの内容の確認

適当なパケットを選択すると ↑ のような表示になると思います。この中の User Datagram Protocol のあたりの Destination Port がOSCの宛先アドレスになっています。なので、このパケットは ポート10001に向けて送信されたメッセージだということがわかります

また、osc_udp プロトコルを有効にしているとOSCの内容もパースして表示してくれます。便利ですね

原因の切り分け

さて、ここまでの内容でNICに入ってきたパケットをWiresharkを使って確認することができたと思います。
ここからはこの情報を使ってどういったトラブルシューティングができるかについて解説していきます

Wiresharkでパケットは確認できるが受信できない場合

受信側のポートが間違っていないか
↑ の内容で到達したパケットがどのポートにむけて送信されたがわかるので、その番号と受信側のポート設定を確認します

他のアプリーケーションですでにポートをリッスンしていないか
IP通信では基本的に同じポートを複数のアプリケーションで同時に使うことができません。 なので、先に使っているアプリケーションがないかを確認します

Windowsに標準で入っている Resource Monitor というアプリケーションを使います。
Network タブを選択、Listening Ports リストの中に現在使用中の全てのポートが表示されています。その中に問題になっているポート番号がないかを確認します

ファイアウォールでブロックされていないか
ここまでで問題がなかった場合、Windowsや他のセキュリティソフトのファイアウォールでパケットが遮断されている可能性があります。ファイアウォールの設定をみなおすか、一時的に無効化して受信状態に変化があるか確認します

Wiresharkでパケットが確認できない場合

Wiresharkでパケットが確認できない場合は、おそらく物理的な問題やウッカリ!がほとんどだと思います

  • ネットワークケーブルは繋っているか、ダメなケーブルを使っていないか
  • ネットワークハブのLINK LEDはついているか
  • そもそもメッセージが送信されているか

などを確認しましょう

Discussion