1. ホーム
  2. tcp

[解決済み] TCP ACKされた未視聴セグメント] [TCP前のセグメントをキャプチャしていない]を理解する。

2022-01-28 01:36:41

質問

tshark を使ってデータを pcap ファイルに取り込み、wireshark GUI を使って、pcap を読み込んだ状態で Analyze -> expert Info に行って、どんなエラーや警告が表示されるかを見ています。

まだよくわからない、あるいは完全に理解できていないものがいろいろと出てきているのですが...。

警告の下にあります。 779 TCPの警告:キャプチャされていないセグメントをACKした(キャプチャ開始時に共通)。 446 TCP: 前のセグメントがキャプチャされていない (キャプチャ開始時に共通)

例としては、: 40292 0.000 xxx xxx TCP 90 [TCP ACKed unseen segment] [TCP Previous segment not captured] 11210 > 37586 [PSH, ACK] Seq=3812 Ack=28611 Win=768 Len=24 TSval=199317872 TSecr=4506547

また、データのコマンドライン列を作成する素晴らしいコマンドを使用して、pcap ファイルを実行しました。

コマンド

tshark -i 1 -w file.pcap -c 500000

但し、tcp.analyze.lost_segmentの欄は、基本的に少し見ただけで、多くはない。

Tシャークがデータの書き込みについていけないのか、それとも他の問題なのか?誤認識?

解決方法は?

それは誤検出の可能性が高いです。警告メッセージにあるように、tcpセッションの途中でキャプチャが開始されることはよくあることです。そのような場合、その情報は得られません。もし本当にacksが消えているのなら、ホストから上流にあるどこで消えているのかを調べ始めるべきでしょう。tshark がデータについていけず、いくつかのメトリクスを落としている可能性があります。キャプチャの最後に、quot;kernel dropped packet"があるかどうか、いくつあるか教えてくれます。デフォルトでは、tshark は DNS ルックアップを無効にしますが、tcpdump は無効にしません。tcpdump を使用する場合は、"-n" スイッチを渡す必要があります。もしディスクIOの問題があるのなら、メモリ /dev/shm に書き込むようなことができます。ただし、キャプチャが非常に大きくなると、マシンがスワップを開始する可能性があるので、注意してください。

私の推測では、あなたは非常に長い時間tcpセッションを実行しており、キャプチャを開始するときに、単にそのためにtcpセッションの一部を欠落させているのではないかと思います。とはいえ、私が見た中で、acksの重複や欠落の原因となったものをいくつか挙げてみます。

  1. スイッチ - (非常に低い可能性ですが、時々病的な状態になることがあります)
  2. ルーター - スイッチより可能性が高いが、それほどでもない。
  3. ファイアウォール - ルータより可能性が高い。ここで注目すべきは、リソースの枯渇(ライセンス、CPUなど)です。
  4. クライアント側のフィルタリングソフトウェア - アンチウイルス、マルウェア検出など