Tcpdump

tcpdumpとは、コマンドライン上で利用する一般的な計算機ネットワーク調査ツールである。
tcpdumpにより、利用者はコマンドを実行した計算機がつながっているネットワーク上を流れるTCP/IPなどのパケットを横取って、表示させることが出来る。
このプログラムは開発当時にローレンス・バークリー研究所ネットワーク研究グループに所属していたバン・ジェイコブソン、Craig Leres、Steven McCanneによって書かれた。

tcpdumpはほとんどのUnix系オペレーティングシステム上で動作する。
たとえば、BSD系Unix、Solaris、Linux、HP-UX、AIX、macOSなどで動作する。
これらのシステムでは、tcpdumpはpcapライブラリ上に構築されている。

Windowsにも、WinDumpというソフトウェアがある。
これは、tcpdumpをWindows上で動くようにしたものである。

Unix系オペレーティングシステムやその他の多くのオペレーティングシステムでは、
tcpdumpを使うにはスーパーユーザーになる必要がある。
なぜなら、tcpdumpはプロミスキャス・モードを利用するからである。
-Z オプションを使うことで、キャプチャをセットアップした後でスーパーユーザー権限を破棄することができる。
また別のUnix系オペレーティングシステムではスーパーユーザー権限なしでパケットキャプチャのメカニズムを利用できるように設定できる。

tcpdumpを使うときには、
いくつかのフィルターを出力に適応して見ることが出来る。
こうすることで、大量の通信が行われているようなネットワークでもより簡単にパケットの調査をすることができるようになる。

tcpdumpの主な利用目的 
 ネットワーク通信を行うプログラムのデバッグを行うため。
 ネットワーク設定の確認のため。具体的には、必要なルーティングが正確に行われているかを調べ、問題を特定するのに使うことができる。
 他の利用者や計算機の通信を横取り、表示するため。telnetやHTTPのようなプロトコルはネットワークに平文で情報を流すため、ルーターやゲートウェイの管理者はtcpdumpを用いてログインIDやパスワード、URLなどの様々な情報を得ることが出来る。

参考 
WiresharkとはGUIのフロントエンドを持った同様のツールであり、様々なフォーマット、ソート、表示方法に対応している
tsharkはWiresharkのCLIフロントエンドである
EtherealはWiresharkの元になったプログラムである
snoopはSolaris上で利用できる同様のプログラムである
LANアナライザ

脚注

外部リンク 

tcpdump (および libpcap)オフィシャルサイト
WinDumpオフィシャルサイト
ngrep

ネットワークソフト
UNIXのソフトウェア
ネットワーク・アナライザ
オープンソースソフトウェア