サーバーで負荷テストを行っており、tsharkを使用して一部のデータをpcapファイルにキャプチャしてから、wireshark GUIを使用して、分析->エキスパート情報にアクセスし、pcapを読み込んで表示します..
まだわからない、またはまだ完全に理解していないさまざまなものを見ています。
[警告]の下にある:779 TCPに関する警告:キャプチャされなかったACKされたセグメント(キャプチャ開始時に共通)446 TCP:前のセグメントがキャプチャされなかった(キャプチャ開始時に共通)
例は次のとおりです:40292 0.000 xxx xxx TCP 90 [TCP ACKed unseen segment] [TCP Previous segment not capture] 11210> 37586 [PSH、ACK] Seq = 3812 Ack = 28611 Win = 768 Len = 24 TSval = 199317872 TSecr = 4506547
また、データのコマンドライン列を作成するNiceコマンドを使用してpcapファイルを実行しました
コマンド
tshark -i 1 -w file.pcap -c 500000
基本的にはtcp.analysis.lost_segment列にいくつかの項目が表示されますが、多くは表示されません。
誰が何が起こっているのかを知っていますか? tsharkはデータの書き込みに追いつくことができません、他の問題?誤検知?
それは非常によく誤検知である可能性があります。警告メッセージにあるように、キャプチャはtcpセッションの途中で開始されるのが一般的です。これらの場合、その情報はありません。本当にackが欠落している場合は、ホストからアップストリームを探し始め、それらが消えている場所を探します。 tsharkがデータに追い付かない可能性があるため、一部のメトリックが削除されている可能性があります。キャプチャの最後に、「カーネルドロップパケット」とその数が通知されます。デフォルトでは、tsharkはDNSルックアップを無効にしますが、tcpdumpは無効にしません。 tcpdumpを使用する場合、「-n」スイッチを渡す必要があります。ディスクIOの問題がある場合は、メモリ/ dev/shmへの書き込みなどを行うことができます。ただし、キャプチャが非常に大きくなると、マシンがスワップを開始する可能性があるため注意してください。 。
私の賭けは、非常に長時間実行されているtcpセッションがあり、キャプチャを開始すると、そのためにtcpセッションの一部が欠落しているだけです。とはいえ、重複/欠落したAckの原因として私が見たもののいくつかを以下に示します。
「TCP ACKed Unseen」のもう1つの原因は、キャプチャでドロップされる可能性のあるパケットの数です。ビジー状態のインターフェイス上のすべてのトラフィックに対してフィルタリングされていないキャプチャを実行すると、tsharkの停止後に大量の「ドロップされた」パケットが表示されることがあります。
これを見た最後のキャプチャでは、2893204パケットがキャプチャされましたが、Ctrl-Cを押すと、87581パケットのドロップメッセージが表示されました。これは3%の損失であるため、wiresharkがキャプチャを開くと、パケットが失われ、「見えない」パケットが報告される可能性があります。
先ほど述べたように、キャプチャフィルタのない非常に忙しいインターフェイスをキャプチャしたため、tsharkはすべてのパケットをソートする必要がありました。キャプチャフィルタを使用してノイズの一部を除去すると、エラーは発生しなくなりました。
未確認サンプルの取得
こんにちは、みんな!キャプチャで見つけたものからのいくつかの観察:
多くの場合、パケットキャプチャはクライアントサイドで「キャプチャされなかったACKセグメント」を報告し、クライアントPCがデータパケットを送信したこと、サーバーがそのパケットの受信を確認したことを警告します。ただし、クライアントで行われたパケットキャプチャには、クライアントが送信したパケットは含まれません。
最初は、「たとえば、Wiresharkを実行しているマシンが遅い」ため、PCが送信するパケットをキャプチャに記録できないことを示していると思いました( https:// osqa-ask。 wireshark.org/questions/25593/tcp-previous-segment-not-captured-is-that-a-connectivity-issue )
ただし、この「キャプチャされなかったACKセグメント」アラートを見るたびに、クライアントPCから送信された「無効な」パケットの記録を見ることができることに気付きました。
上記のキャプチャ例では、フレーム67795は10384のACKを送信します
Wiresharkが偽のIP長(0)を報告しているにもかかわらず、フレーム67795の長さは13194であると報告されています