tcpdump: パケット損失

tcpdump: パケット損失

無差別モードかどうかに関係なく実行します。

tcpdump -i "$INTERFACE" -vvv -n -XX -S -s0 -e

停止すると、次の結論が出ます。

601 packets captured
938 packets received by filter
230 packets dropped by kernel

なぜ違いがありますか? 107個のパケットが失われた場所はどこですか?ルータの背後にある自分だけがローカルネットワーク上のパケットを100%取得またはキャプチャできますか?

ベストアンサー1

tcpdumpがパケットを「削除」する理由は、ネットワークから到着するパケットに追いつくのに十分なバッファスペースがないためです。

キャプチャされたパケットと受信されたパケットの違いは、オペレーティングシステムまたはtcpdumpの実装によって引き起こされるか、より一般的に^ Cを使用してプロセスを中断することによって発生する可能性があります。

パケットあたりのバッファサイズを「s0」に設定すると、それぞれ64KBに設定されますman tcpdump。通常、-Xを使用してパケット全体を表示し、tcpdumpを使用してヘッダーを表示するには最大1500に設定します。必須値 - 160バイト、IPv4ヘッダーサイズ。

画面操作も一般的に遅いです。速度が必要な場合、実際にリアルタイムで表示する必要がない場合は、出力をファイルに送信します。

「tcpdump」という人から:

「大きなスナップショットを撮ると、パケットを処理するのに必要な時間が長くなるだけでなく、パケットバッファリングの量も効果的に減ります。これによりパケット損失が発生する可能性があります。snaplenをキャプチャされたプロトコル情報の最小量に制限する必要があります。」

おすすめ記事