TOP

技術Tips

Wireshark使いこなしTips

第7回:入出力グラフの使い方

入出力グラフの使い方

今回のWireshark使いこなしTips では、「入出力グラフ」(旧名称:I/Oグラフ)についてご紹介します。Wiresharkでは、パケットをキャプチャしプロトコルの翻訳解析を行う以外に、指定するプロトコルおよびパラメータに対し、「入出力グラフ」と呼ばれるトラフィック量を示すグラフを描く機能が搭載されています。本機能を用いることにより、キャプチャファイル全体におけるトラフィックの傾向を俯瞰し可視化できるようになるため、トラブルシューティングに役立てることもできます。

今回使用するサンプルのキャプチャファイルは、Wiresharkのサイトからダウンロード可能なサンプルのキャプチャファイル(https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=SIP_CALL_RTP_G711)にあるSIP_CALL_RTP_G711.pcapを用います。また、Wiresharkには2018年9月時点で最新のリリースであるversion 2.6.3を用います。

 入出力グラフの起動と使い方 ~インターバルの設定に注意~

「入出力グラフ」は、Wiresharkのメニューバーから、「統計」→「入出力グラフ」を選択することにより起動できます。
サンプルのPCAPファイルSIP_CALL_RTP_G711.pcapを開き、その後にメニューバーから「統計」→「入出力グラフ」を選択することにより、Figure 1のようなグラフが表示されます。デフォルトでは「インターバル=1秒」でグラフが作成されますが、インターバル=1秒では実際のトラフィックを把握するには分解能が粗いと思われますので、「インターバル=100ミリ秒」もしくはそれ以下の最適な値に設定する必要があります。Figure 2は同じキャプチャファイルに対し、インターバル=100ミリ秒で表示し直したグラフですが、デフォルトの1秒では知り得ることができなかった、より実際のトラフィック分布に近い様々なトラフィックの特徴が浮かび上がって可視化されることがわかります。このように、インターバル値の設定によって、グラフの見え方が全く異なるため、グラフが表示された後は、まずはインターバルの値を最適な値に選択し直すようにします。

Figure 1

▲ デフォルトの「インターバル=1秒」で作成されたグラフ

Figure 2

▲ 「インターバル=100ミリ秒」に設定し表示したグラフ

Figure 1およびFigure 2のグラフは、前述のサンプルのPCAPファイルから、すべてのパケットおよびTCPのパケットの2種類のトラフィック量を折れ線グラフで表示するように設定したグラフです。表示できるグラフの種類は、Wiresharkの表示フィルタで利用できる項目となります。

以下、入出力グラフ画面およびグラフの表示方法について、下記で簡単な例と共に解説します。

ボタン/機能 説明
Enabled 表示したいグラフにチェックマークを入れる/入れないにより、グラフの表示/非表示を選択します。
Graph Name 表示するグラフに対する名前を設定します。
Display Filter Wiresharkの表示フィルタの入力書式のルールに則り、表示したいグラフを下記の例の要領で表示フィルタ名で入力します。
  • 例:TCPのトラフィック量をグラフ表示したい場合には、半角小文字で「tcp」と入力します。
  • 例:TCPポート80番に対するトラフィックをグラフ表示したい場合には、表示フィルタの入力ルールに則り、半角小文字で「tcp.port==80」と入力します。
  • (参考:Wiresharkの表示フィルタの使い方につきましては「Wireshark使いこなしTips 第3回:表示フィルタを使いこなす」をご参照下さい)
Color グラフを表示する際のグラフの色を指定します。Colorの列の右端をダブルクリックすることにより、「色を選択」という別ウインドウが開きパレットが表示されますので、グラフの色を選択します。
Style グラフのスタイルを選択します。各々のグラフでStyleの列をダブルクリックするとプルダウンメニューが表示されますので、各種グラフ(Line(折れ線グラフ)、Bar(棒グラフ))などから選択します。
Y Axis 縦軸で表示したい項目を選択します。各々のグラフでY Axisの列をダブルクリックするとプルダウンメニューが表示されます。ここでは3種類の既定のカウント(Packets, Bytes, Bits)、および下記のY Fieldで解説する特定のパラメータに対する詳細なグラフを表示するための計算式(SUM(Y Field)、MIN(Y Field)、AVG(Y Field)、MAX(Y Field)、COUNT(Y Field)、LOAD(Y Field))が用意されています。
Y Field(*) 上述の6種類の計算式と組み合わせて使用します。
  • 例:TCP再送が発生した際のカウントを表示したい場合には、Y Axisで「COUNT FRAME」を選択し、Y Fieldでは表示フィルタのフィールド名として「tcp.analysis.retransmission」を設定します。
SMA Period SMA PeriodとはSimple Moving Average Period(移動平均ピリオド)の略で、グラフを平滑化する際に用います。値が小さいほど、実際に近いグラフが表示されます。
新規にグラフを追加する際に「+」をクリックします。
ハイライト表示で指定したグラフを削除します。
ハイライト表示で指定したグラフを複製します。
  • 例:上記で解説のY Fieldの一部のみを変更し表示したい、といったようなケースで使用すると便利です。
マウス
◯ドラッグ
◯ズーム
ドラッグをONにすると、グラフ上でマウスの操作でグラフの移動、縮小、拡大操作などが可能です。
ズームをONにすると、カーソルが矢印から+に変わり、グラフ上で左クリックしながら任意の領域を範囲指定することにより、その領域が拡大表示されます。
インターバル グラフの横軸(時間軸)のインターバルを設定します。1ミリ秒/10ミリ秒/100ミリ秒/1秒/10秒/1分/10分から選択可能です。
時刻 デフォルトでは横軸はキャプチャファイルの先頭からの経過時間が表示されますが、時刻にチェックマークを入れることにより、横軸がキャプチャ時の日時で表示されます。
ログのスケール デフォルトでは縦軸はリニアスケールでされますが、ログのスケールにチェックマークを入れることにより、縦軸がログ(対数)スケールで表示されます。
リセット グラフの表示状態を一つ前の状態に戻します。
Save As グラフを保存する際のファイルフォーマットを選択します。PDF形式(*.pdf)、*.PNG形式(*.png)、Windowsビットマップ形式(*.bmp)、JPEG形式(*.jpeg, *.jpg)、カンマ区切りテキスト形式(*.csv)の形式がサポートされています。
コピー 本ボタンをクリックすることにより、全データがカンマ区切りテキスト形式でメモリに一時的にコピーされます。Windowsのメモ帳やExcelなどに貼り付け・展開し、データの処理を行うことが可能です。
閉じる グラフを閉じます。
ヘルプ 英文のヘルプウィンドウが表示されます。Wireshark version 2.6.3の時点では、旧バージョンのIO Graphsに関するヘルプが表示されます。
ボタン/機能 説明
Enabled 表示したいグラフにチェックマークを入れる/入れないにより、グラフの表示/非表示を選択します。
Graph Name 表示するグラフに対する名前を設定します。
Display Filter Wiresharkの表示フィルタの入力書式のルールに則り、表示したいグラフを下記の例の要領で表示フィルタ名で入力します。
  • 例:TCPのトラフィック量をグラフ表示したい場合には、半角小文字で「tcp」と入力します。
  • 例:TCPポート80番に対するトラフィックをグラフ表示したい場合には、表示フィルタの入力ルールに則り、半角小文字で「tcp.port==80」と入力します。
  • (参考:Wiresharkの表示フィルタの使い方につきましては「Wireshark使いこなしTips 第3回:表示フィルタを使いこなす」(https://www.artiza.co.jp/products-solutions/products/network/pcp_solutions/tips03.html)をご参照下さい)
Color グラフを表示する際のグラフの色を指定します。Colorの列の右端をダブルクリックすることにより、「色を選択」という別ウインドウが開きパレットが表示されますので、グラフの色を選択します。
Style グラフのスタイルを選択します。各々のグラフでStyleの列をダブルクリックするとプルダウンメニューが表示されますので、各種グラフ(Line(折れ線グラフ)、Bar(棒グラフ))などから選択します。
Y Axis 縦軸で表示したい項目を選択します。各々のグラフでY Axisの列をダブルクリックするとプルダウンメニューが表示されます。ここでは3種類の既定のカウント(Packets, Bytes, Bits)、および下記のY Fieldで解説する特定のパラメータに対する詳細なグラフを表示するための計算式(SUM(Y Field)、MIN(Y Field)、AVG(Y Field)、MAX(Y Field)、COUNT(Y Field)、LOAD(Y Field))が用意されています。
Y Field(*) 上述の6種類の計算式と組み合わせて使用します。
  • 例:TCP再送が発生した際のカウントを表示したい場合には、Y Axisで「COUNT FRAME」を選択し、Y Fieldでは表示フィルタのフィールド名として「tcp.analysis.retransmission」を設定します。
SMA Period SMA PeriodとはSimple Moving Average Period(移動平均ピリオド)の略で、グラフを平滑化する際に用います。値が小さいほど、実際に近いグラフが表示されます。
新規にグラフを追加する際に「+」をクリックします。
ハイライト表示で指定したグラフを削除します。
ハイライト表示で指定したグラフを複製します。
  • 例:上記で解説のY Fieldの一部のみを変更し表示したい、といったようなケースで使用すると便利です。
マウス
◯ドラッグ
◯ズーム
ドラッグをONにすると、グラフ上でマウスの操作でグラフの移動、縮小、拡大操作などが可能です。
ズームをONにすると、カーソルが矢印から+に変わり、グラフ上で左クリックしながら任意の領域を範囲指定することにより、その領域が拡大表示されます。
インターバル グラフの横軸(時間軸)のインターバルを設定します。1ミリ秒/10ミリ秒/100ミリ秒/1秒/10秒/1分/10分から選択可能です。
時刻 デフォルトでは横軸はキャプチャファイルの先頭からの経過時間が表示されますが、時刻にチェックマークを入れることにより、横軸がキャプチャ時の日時で表示されます。
ログのスケール デフォルトでは縦軸はリニアスケールでされますが、ログのスケールにチェックマークを入れることにより、縦軸がログ(対数)スケールで表示されます。
リセット グラフの表示状態を一つ前の状態に戻します。
Save As グラフを保存する際のファイルフォーマットを選択します。PDF形式(*.pdf)、*.PNG形式(*.png)、Windowsビットマップ形式(*.bmp)、JPEG形式(*.jpeg, *.jpg)、カンマ区切りテキスト形式(*.csv)の形式がサポートされています。
コピー 本ボタンをクリックすることにより、全データがカンマ区切りテキスト形式でメモリに一時的にコピーされます。Windowsのメモ帳やExcelなどに貼り付け・展開し、データの処理を行うことが可能です。
閉じる グラフを閉じます。
ヘルプ 英文のヘルプウィンドウが表示されます。Wireshark version 2.6.3の時点では、旧バージョンのIO Graphsに関するヘルプが表示されます。

(*)Wiresharkでサポートされている表示フィルタのプロトコルは、WiresharkのDisplay Filter Reference(https://www.wireshark.org/docs/dfref/)のサイトから、使用したいプロトコルのリンクをクリックすると、サポートされているフィールド名が表示されます。例えば、TCPでサポートされているフィールド名につきましては、https://www.wireshark.org/docs/dfref/t/tcp.htmlにその一覧がまとめられています。

折れ線グラフを表示した場合、グラフに沿ってカーソルが移動するようになっています。複数の折れ線グラフを同時に表示した際に、グラフ上のカーソルを現在のグラフから別のグラフに移動するには、カーソルを新たに置きたいプロトコルの行を反転表示し、チェックマークを一旦はずし、その後再びチェックマークをONにすることにより、カーソルが別のグラフ上に移動します。

Wiresharkとの連動 ~「カーソルの位置のパケットに移動」を選択~

グラフ表示エリア内でマウスを右クリックすることにより、Figure 3のように各種の表示上の操作機能を呼び出すことができます。この中でも、「カーソルの位置のパケットに移動」を選択すると、Wireshark上で該当するフレームを表示することができます。

Figure 3

▲ グラフ表示エリア内でマウスの右クリックで呼び出せる各種機能

この機能を使って、キャプチャ開始後5~6秒間に見られるTCPのピークのトラフィックに着目してみます。
前述の要領でグラフのカーソルをTCPのグラフ上に移動させ、カーソルをキャプチャ開始後5~6秒間に見られるピーク上に移動し、右クリックで「カーソルの位置のパケットに移動」を選択すると、Wireshark上のフレーム#384に移動します。フレーム#384のキャプチャ開始後からのタイムスタンプ値は5.555002であり、グラフで表示されていた箇所と一致します。Wireshark上で表示フィルタをtcpに設定し、フレーム#384より前の時間帯で何が発生していたのかを見てみると、タイムスタンプ値5.547688からIPアドレス200.57.7.204および200.57.7.194間の双方でやり取りされた多数の[FIN, ACK](接続終了)(フレーム#307~)、およびそれらに対する[ACK]が見られるほか、さらにはIPアドレス200.57.7.194 → 200.57.7.204に対する[RST](強制切断)も確認され、これらにより特定のわずかな時間帯に多数のTCPのトラフィックが発生していたことが確認できます。

最後に

Wiresharkの解析画面に表示される文字情報だけでは、キャプチャファイル内でどのような事象が発生していたのかを把握することは時として容易ではありません。PCAPファイルの情報をCSVで出力(**)し、グラフを書くことも可能ですが、本日ご紹介いたしました「入出力グラフ」を用いることにより、より簡単なステップで瞬時にグラフを描くことができるばかりでなく、グラフを最適化して表示することにより、キャプチャファイル全体におけるトラフィックの傾向を簡単に俯瞰し可視化できるようになるため、トラブルシューティングに役立てることもできます。

アルチザネットワークスの自社開発製品であるetherExtractorは、10GbE/1GbE Full-Duplex(双方向)上で転送されるワイヤーレートの最短パケット(64バイト)の連続キャプチャを保証し、ネットワーク上で生じるさまざまな事象の全てをパケットロスすることなくキャプチャを実行するパワフルなキャプチャ専用機です。
アルチザネットワークスでは、etherExtractorで取得した貴重なPCAPファイルを、Wireshark上で快適に、そして便利に解析いただくためのさまざまなヒントや利用方法を、今後も「Wireshark使いこなしTips」のコーナーで多角的にご紹介してまいります。

(**)PCAPファイルの情報をCSVで出力する方法につきましては、「Wireshark使いこなしTips 第5回:PCAPファイルの情報をCSVで出力する」をご参照下さい。

5G gNodeB and eNodeB Tester

Fronthaul Monitor

Packet Capture Tool

High-end FPGA Board

Test & Measurements

Network Analyzers/Visualization

Ethernet Switch

Packet Timing Solutions

LTE eNodeB Tester