Wireshark の tcptrace グラフを使用した、パフォーマンスのトラブルシューティング方法を紹介します。
tcptrace グラフの利用方法
1. パフォーマンスを確認したいTCP ストリームのパケットを一つ選択します。
2. [統計] → [TCP ストリームグラフ] → [タイムシーケンス(tcptrace)] をクリックします。
3. tcptrace のグラフが表示されます。
グラフの意味
x 軸は時間で、y 軸はシーケンス番号です。
上部の緑色の線は、ACK 番号にクライアントの受信ウィンドウを足した値です。
下の黒色の線は、受信したACK 番号です。拡大するとわかる下部の I 字になっているのが、送信されたデータです。
グラフの見方
上の緑線と、下のI 字の線が近い場合
上の緑線と、下のI 字の線が近い/交差している場合は、クライアントの受信ウィンドウがなくなっていることを意味します。
そのため、クライアントに問題があることがわかります。
(スクリーンショットは、How to Troubleshoot Throughput and TCP Windows より。以下同様。)
tcptrace のグラフ上の線をクリックをすると、該当のパケットの詳細を確認できますが、グラフが交差する部分をクリックして
その時のパケットを見ると、「TCP Window Full」がでています。
下のI 字の線が上がらない場合
下のI 字の線が、上の緑線に交差しないにもかかわらず上がらない場合は、送信バッファーがなくなっている可能性があります。
該当時間のパケットを見ると、PSH フラグが付与されており、また、データーの長さも最大値である1514 バイトまで行っていません。
すなわち、送信側の境界に引っかかっていることがわかります。
そのため、送信バッファーサイズを上げる必要があります。