iperf2のUDPフォーマットをwiresharkで見る

今回はiperfの送信データをwiresharkで観測・解析します。
前回は、片方向通信環境の場合はiperf2でUDPモードが使用できるというお話でした。
通常イーサネットでは「片方向しか通信できない環境」はあり得ませんが「SDRでダウンリンクだけ実装した」という場合があります。

Wiresharkで見る

早速iperf2のパケットを見てみます。パケットを見ると言ったらWiresharkですね。
Wireshark 2.4以降はiperf2, 3のパケット解析がデフォルトで出来るように記載がありましたが(https://www.wireshark.org/docs/dfref/i/iperf2.html)、どうも私が使っているバージョンでは出来ませんでした。
出来るかどうかは以下のように確認します。

  1. Wiresharkを起動し、キャプチャを開始する。
  2. 適当なパケットを右クリックし「…としてデコード」を選択する。
  3. 「現在」という欄をクリックしプロトコルに"IPERF"があるかどうか調べる。
  4. 無かったら以下のようにluaスクリプトをインストールして下さい。あったら以下の「パケット解析」に進みます。

IPERFが無い場合

Wiresharkにiperf解析スクリプトをインストールする

iperf解析スクリプトをインストールするので、Wiresharkは終了させておいてください。
それから以下のgithubの"Clone or download"ボタンをおしてzipをダウンロードします。

An Iperf 2.0.5 dissector for wireshark
https://github.com/dragonxtek/iperf_dissector

※ちなみにiperf3の場合はこちら
https://github.com/geertn444/iperf3_dissector


c:\Users\ユーザ名\AppData\Roaming\Wireshark
に"plugins"というフォルダを作成し、zip内の "iperf.lua"を展開します。


パケット解析する

iperf2用のdessectorがインストールできたら早速解析します。

  1. Wiresharkを起動し、キャプチャを開始する。
  2. 他のPCで、WiresharkのPCに以下のようにしてUDPモードでポート40001に送信します。Wiresharkで解析する際に送信先ポートを指定しておくと便利なので、指定しておきます。
      C:\> iperf-2.0.14a-win.exe -u -p 40001 -c [wiresharkPCのIPアドレス]
  3. 適当なパケットを右クリックし「…としてデコード」を選択する。
  4. 値はiperfの受信ポート番号、「現在」は"IPERF"を選択します。

はい、これで、iperf2のパケットを見つけると以下のように自動的に解析されます。

また表示フィルタに"iperf"と入れておくと、iperfのパケットだけ表示されます。

下図は、iperf2のパケットデータを解析したものです。
UDPモードで最初に送ってきたパケットはシーケンス番号0ですね。


最後のパケットはシーケンス番号13107。


クライアント側で送信した13108と番号は合いますね。


最後のパケットはなんだ?
iperf2でUDP送信終わった後に、9回ほど不明なパケットが送信されています。
シーケンス番号も適当なようなので、終了を意味するパケットでしょうか?

まとめ

  • wiresharkでiperf2やiperf3パケットの解析は出来る(らしい)
  • もし出来なければLuaスクリプト "dissector"を手動でインストールする

次は受信したパケットの中身を見てみます。

私たちドルフィンシステムは、お客様の様々な要望に答えられるように色々と実験をしています。最適な無線システムを提案していけるよう努力しております。

SDRを用いた無線システムのご要望はドルフィンシステムへ。

コメント