名前 tcptrace - TCPコネクション分析ツール 書式 tcptrace [options] filename 説明 tcptraceはコマンドライン上でtcpdumpファイル(または標準入力から)の詳細を 取得し、コネクションの概要を生成する。 オプション 出力形式オプション -b 簡単な出力形式 -l 詳細な出力 -r print rtt statistics (大きなファイルは遅くなる) -W ウィンドウサイズの予想を報告する (普通役に立たない) -q 出力しない (モジュールの出力だけ欲しい場合) グラフ描画オプション -T スループットのグラフを作成する (10セグメント以上の平均、-Aを参照) -R Round Trip Timeのグラフを作成する -S タイムシーケンスのグラフを作成する -N 輻輳ウインドウのグラフを作成する (ネットワーク上の輻輳データ) -F セグメントサイズのグラフを作成する -G すべてのグラフを作成する 出力形式の詳細オプション -D 10進数で表示 -X 16進数で表示 -n ホストまたはサービス名の名前解決をしない (高速) -s 短い名前を使う (リスト "picard.cs.ohiou.edu" は "picard" になる) コネクションフィルタリングオプション -iN コネクション番号Nを無視する (複数指定可能) -oN[-M] コネクション番号Nだけ(またはNからM)を対象にする。引数は複数指定可能。 Nは番号よりもむしろ、代わりにファイルからリストを読む。 -c 完結していないコネクション(SYNとFINが見つからない)を無視する -BN 分析の最初のシーケンス番号 (デフォルト 1) -EN 分析の最後のシーケンス番号 (デフォルト ファイルの最後) グラフ描画の詳細オプション -C カラー描画出力 -M モノクロ描画出力 -AN スループットグラフでN個のセグメントを平均する。デフォルトは10。 -z 0軸オプション: -z 時間軸を時刻ではなく0からでプロットする (下位互換) -zx 時間軸を時刻ではなく0からでプロットする -zy シーケンス番号を0からでプロットする (タイムシーケンスグラフ専用オプション) -zxy X軸、Y軸とも0からでプロットする -y スループットグラフで、瞬間スループットの(黄色の)点を省略する その他のオプション -Z 生のrtt sample timesをファイルにダンプする -p パケットの内容すべてを表示する (とても長くなり得る) -P 選択したコネクションのパケットの内容を表示する -t 進捗度をパケット数で刻む'tick' off the packet numbers as a progress indication -v バージョン情報を表示して終了する -w 警告を多く表示する -d 動作中は合図する (デバッグ有効。さらに出力するには -d -d を使う) -e 各TCPストリームの内容をファイルに抜き出す -h ヘルプメッセージを表示する -u 最小限のUDPの情報も表示する -Ofile マッチしたパケットをtcmdumpファイル 'file' にダンプする +[v] -[v]の設定内容を逆にする (bool型用) bool型の拡張オプション (未指定でもデフォルト値で動作) --showsacks タイムシーケンスのグラフでSACKブロックを表示する (デフォルト) --noshowsacks タイムシーケンスのグラフでSACKブロックを表示しない --showrexmit タイムシーケンスのグラフで再送をマークする (デフォルト) --noshowrexmit タイムシーケンスのグラフで再送をマークしない --showoutorder タイムシーケンスのグラフで破損をマークする (デフォルト) --noshowoutorder タイムシーケンスのグラフで破損をマークしない --showzerowindow タイムシーケンスのグラフでウィンドウが0をマークする (デフォルト) --noshowzerowindow タイムシーケンスのグラフでウィンドウが0をマークしない --showurg タイムシーケンスのグラフでURGENTビットがセットされたパケットをマークする (デフォルト) --noshowurg タイムシーケンスのグラフでURGENTビットがセットされたパケットをマークしない --showrttdongles Round Trip Time以外が生成した、特殊な記号付きACKをマークする --noshowrttdongles Round Trip Time以外が生成した、特殊な記号付きACKをマークしない (デフォルト) --showdupack3 タイムシーケンスのグラフで3重複ACKをマークする (デフォルト) --noshowdupack3 タイムシーケンスのグラフで3重複ACKをマークしない --showzerolensegs タイムシーケンスのグラフで長さが0のパケットを描画する (デフォルト) --noshowzerolensegs タイムシーケンスのグラフで長さが0のパケットを描画しない --showzwndprobes ウィンドウが0のProbeパケットを描画する (デフォルト) --noshowzwndprobes ウィンドウが0のProbeパケットを描画しない --showtitle グラフにタイトルを描画する (デフォルト) --noshowtitle グラフにタイトルを描画しない --res_addr IPアドレスの名前解決を行う (たぶん遅い) (デフォルト) --nores_addr IPアドレスの名前解決を行わない (たぶん遅いw) --res_port ポート番号の名前解決を行う (デフォルト) --nores_port ポート番号の名前解決を行わない --checksum IPとTCPのチェックサムを検証する --nochecksum IPとTCPのチェックサムを検証しない (デフォルト) --dupack3_data 運ぶデータの重複したACKを3重複ACKとして数える --nodupack3_data 運ぶデータの重複したACKを3重複ACKとして数えない (default) --check_hwdups ハードウェアの重複をチェックする (デフォルト) --nocheck_hwdups ハードウェアの重複をチェックしない --warn_ooo パケットのタイムスタンプが破損していたら警告を表示する --nowarn_ooo パケットのタイムスタンプが破損していても警告を表示しない (default) --warn_printtrunc パケットが分析には短すぎる場合に警告を表示する --nowarn_printtrunc パケットが分析には短すぎる場合でも警告を表示しない (default) --warn_printbadmbz 0であるべきTCPの列が0でない場合に警告を表示する --nowarn_printbadmbz 0であるべきTCPの列が0でない場合でも警告を表示しない (default) --warn_printhwdups ハードウェアの重複を警告する --nowarn_printhwdups ハードウェアの重複を警告しない (default) --warn_printbadcsum パケットのチェックサムが不一致なら警告を表示する --nowarn_printbadcsum パケットのチェックサムが不一致でも警告を表示しない (default) --warn_printbad_syn_fin_seq SYNかFINが異なるシーケンス番号で再送したとき警告を表示する --nowarn_printbad_syn_fin_seq SYNかFINが異なるシーケンス番号で再送したときでも警告を表示しない (default) --dump_packet_data パケットとTCP/UDPのダンプデータをすべて表示する --nodump_packet_data パケットとTCP/UDPのダンプデータを表示しない (default) --continuous 連続的に実行し、概要を提供しない --nocontinuous 連続実行はせず、概要を提供する (default) --print_seq_zero 最初のシーケンス番号からのオフセットで表示する --noprint_seq_zero シーケンス番号をオフセットではなく本来の値で表示する (default) --limit_conn_num リアルタイムモードで一度に保持するコネクションに上限を設ける --nolimit_conn_num リアルタイムモードで一度に保持するコネクションに上限を設けない (default) --xplot_all_files 生成したすべてのxplotファイルを最後に表示する --noxplot_all_files 生成したすべてのxplotファイルを最後に表示しない (default) --ns_hdrs nsのuseHeadersフラグがtrueだと仮定する (IP+TCP ヘッダを使う) (default) --nons_hdrs nsのuseHeadersフラグがfalseだと仮定する --csv 長い出力をカンマ区切りデータとして表示する --nocsv 長い出力をカンマ区切りデータとして表示しない (default) --tsv 長い出力をタブ区切りデータとして表示する --notsv 長い出力をタブ区切りデータとして表示しない (default) 拡張変数オプション (未指定でもデフォルト値で動作) --output_dir=``STR'' すべての出力ファイルが配置されるディレクトリ (default: '') --output_prefix=``STR'' この文字列がすべての出力ファイルの接頭辞 (default: '') --xplot_title_prefix=``STR'' すべての xplot ファイルに付けられる接頭辞 (default: '') --update_interval=``STR'' リアルタイムモードで、更新する時間間隔 (default: '') --max_conn_num=``STR'' リアルタイムモードで一度に保持するコネクションの最大数 (default: '') --remove_live_conn_interval=``STR'' リアルタイムモードで、開いている接続が外されるまでのアイドルタイム (default: '') --remove_closed_conn_interval=``STR'' リアルタイムモードで、閉じている接続が外されるまでの時間間隔 (default: '') --xplot_args=``STR'' tcptrace から xplot を呼び出すときに渡す引数 (default: '') --sv=``STR'' 長い出力を、STRに設定された値で分割する (default: '') 含まれているモジュール http Http分析モジュール tcplib TCPLib分析モジュール traffic トラフィック分析モジュール slice 時間で区切ったトラフィック効率データ rttgraph RRT分析モジュール collie コネクション概要モジュール realtime リアルタイムモードの例 モジュールの詳細なオプションは `tcptrace -hxargs` を使ってください。 フィルター変数: フィルター変数の完全なリストは 'tcptrace -hfilter' を使ってください。 フィルター文法: フィルターの文法は 'tcptrace -hfilter' を使ってください。 環境変数 オプションは、まず (存在すれば) $HOME/.tcptracerc を読み、そして (存在 すれば) 環境変数 TCPTRACEOPTS を読み、最後にコマンドラインから読む。 著者 Shawn Ostermann (ostermann@cs.ohiou.edu) CREDITS Thanks to Mark Foster (mafoster@george.arc.nasa.gov) for writing this manual page. Thanks to Avinash Lakhiani (alakhian@irg.cs.ohiou.edu) for updating it. ファイル ダンプファイル名 あとに続く引数を、ひとつ以上のファイル名になるように取ります(認識はされていない)。 ファイルは圧縮されていてもかまわない。設定は compress.h を参照。 ダンプファイルの名前が 'stdin' なら、ファイルではなく標準入力から読み込む。 関連項目 xplot tcptrace から出力された .xpl ファイルを調べる対話型ツール。 jPlot xplotのJava版。 翻訳者 http モジュール: 使いかた: -xHTTP[P] HTTPのトラフィック情報を表示する (ポートP、デフォルトは80) traffic モジュール: 使いかた: -xtraffic"[ARGS]" 全体のトラフィックの情報を表示する モジュールの引数書式: -iS 統計の間隔を S(float) 秒に設定する。デフォルトは15.0。 -pP ポート番号Pの情報を含める -pP1-P2 ポート番号が [P1-P2] の範囲の情報を含める -p-P ポート番号Pの情報を除く -p-P1-P2 ポート番号が [P1-P2] の範囲の情報を除く -pSPEC,SPEC commas chain together specs -G すべてのグラフを生成する -A 'アクティブコネクション' のグラフを生成する -B 'bps(bytes per second)' のグラフを生成する -C 'opens and closes' のグラフを生成する -H 'halfopen connections' のグラフを生成する -K 'pure acKs/second' のグラフを生成する -L 'losses per second' のグラフを生成する -O 'open connections' のグラフを生成する -I 'instantaneous open connections' のグラフを生成する -P 'packets per second' のグラフを生成する -Q 'idle (Quiet) connections' のグラフを生成する -R[MIN[-MAX]]'round trip time' のグラフを生成する with args, ignore samples outside MIN to MAX (in ms) -T 'total data' のグラフを生成する。 -D[SECS] 長く持続したコネクションのグラフを生成する。「長く」のデフォルトの定義は60秒。 -d このモジュールのローカルデバッグを有効にする 例 -xtraffic" -p23" ポート23だけ -xtraffic" -p1-1023" ポート1-1023だけ -xtraffic"-p1-1023,-10-20 -L -O" ポート1-1023からポート10-20を除いたものだけ ポート番号を明示的に指定しなければすべてのポートが含まれる。 With ANY spec, all ports are initially EXCLUDED slice モジュール: 使いかた: -xslice"[ARGS]" sliceのデータ情報を表示する モジュールの引数書式: -iS slice の間隔を S (float) 秒に設定する。デフォルトは15.0。 -d このモジュールのローカルデバッグを有効にする -tb 日付と時刻を簡単な形式で表示 -tl 日付と時刻をUnix形式で長く表示 -tu 日付と時刻をエポック秒で表示 (secs) -tU 日付と時刻をエポック秒で表示 (secs.usecs) rttgraph モジュール: 使いかた: -xrttgraph rttgraphトラフィックについての情報を表示 collie モジュール: 使いかた: -xcollie"[-ln] コネクションの概要を提供する -l attach labels -n no labels please realtime モジュール: 使いかた: -xrealtime リアルタイム tcptrace の使い方を示すモジュールの例 フィルター変数: 変数名 種類 説明 ----------------- -------- ----------------------- hostname STRING 完全修飾ドメイン名 (-n は除く) portname STRING ポートのサービス名 (-n は除く) port UNSIGNED ポート番号 mss SIGNED 最大セグメントサイズ f1323_ws BOOL 1323 window scaling requested f1323_ts BOOL 1323 time stampts requested fsack_req BOOL SACKs requested window_scale BOOL window scale factor bad_behavior BOOL bad TCP behavior data_bytes UNSIGNED bytes of data data_segs UNSIGNED segments of data data_segs_push UNSIGNED segments with PUSH set unique_bytes UNSIGNED non-retransmitted bytes rexmit_bytes UNSIGNED retransmitted bytes rexmit_segs UNSIGNED segments w/ retransmitted data ack_segs UNSIGNED segments containing ACK pureack_segs UNSIGNED segments containing PURE ACK (no data/syn/fin/reset) win_max UNSIGNED MAX window advertisement win_min UNSIGNED MIN window advertisement win_zero_ct UNSIGNED 0が広告されたウィンドウの数 min_seq UNSIGNED シーケンス番号の最小値 max_seq UNSIGNED シーケンス番号の最大値 num_sacks UNSIGNED number of ACKs carrying SACKs max_sacks UNSIGNED most SACK blocks in a single ACK segs UNSIGNED total segments packets UNSIGNED total segments syn_count UNSIGNED SYNs sent fin_count UNSIGNED FINs sent reset_count UNSIGNED RESETs sent min_seg_size UNSIGNED smallest amount of data in a segment (not 0) max_seg_size UNSIGNED largest amount of data in a segment out_order_segs UNSIGNED out of order segments sacks_sent UNSIGNED SACKs sent ipv6_segs UNSIGNED number of IPv6 segments sent max_idle UNSIGNED maximum idle time (usecs) num_hw_dups UNSIGNED number of hardware-level duplicates initwin_bytes UNSIGNED number of bytes in initial window initwin_segs UNSIGNED number of segments in initial window rtt_min UNSIGNED MIN round trip time (usecs) rtt_max UNSIGNED MAX round trip time (usecs) rtt_count UNSIGNED number of RTT samples rtt_min_last UNSIGNED MIN round trip time (usecs) (from last rexmit) rtt_max_last UNSIGNED MAX round trip time (usecs) (from last rexmit) rtt_count_last UNSIGNED number of RTT samples (from last rexmit) rtt_amback UNSIGNED number of ambiguous ACKs rtt_cumack UNSIGNED number of cumulative ACKs rtt_unkack UNSIGNED number of unknown ACKs rtt_dupack UNSIGNED number of duplicate ACKs rtt_nosample UNSIGNED ACKs that generate no valid RTT sample rtt_triple_dupack UNSIGNED number of triple duplicate ACKs (fast rexmit) retr_max UNSIGNED MAX rexmits of a single segment retr_min_tm UNSIGNED MIN time until rexmit (usecs) retr_max_tm UNSIGNED MAX time until rexmit (usecs) trunc_bytes UNSIGNED number of bytes not in the file trunc_segs UNSIGNED number of segments not in the file num_zwnd_probes UNSIGNED number of zero window probes zwnd_probe_bytes UNSIGNED number of window probe bytes urg_data_pkts UNSIGNED Number of packets with URGENT bit set urg_data_bytes UNSIGNED Number of bytes of urgent data hostaddr IPADDR IP Address (v4 or v6 in standard textual notation thruput UNSIGNED スループット (バイト/秒) フィルター文法: numbers: 変数: 上の表 c_を頭につければクライアント側 s_を付ければサーバー側 b_は両方とも。 e_はどちらか。 デフォルトは何もついていない。 anything from the above table with a prefix of either 'c_' meaning the one for the Client or 's_' meaning the value for the Server. If the prefix is omitted, it means "either one" (effectively becoming "c_VAR OR s_VAR)"). As shorthand for a conjunction instead, you can use the syntax 'b_' (as in b_mss>100), meaning 'B'oth, (effectively becoming "c_VAR AND s_VAR)"). For completeness, 'e_' means 'E'ither, which is the normal default with no prefix. 定数: 文字列: ダブルクォーテーションで囲ったもの何でも 真偽値: TRUE FALSE 数: 符号付き/符号なしの定数 算術演算子: any of the operators + - * / % performed on 'numbers'. Normal operator precedence is maintained (or use parens) 関係演算子 any of < > = != >= <= applied to 'numbers' 論理演算子 AND, OR, NOT applied to the relational operators above その他 優先度がわからなければ括弧を使う。 とにかく括弧を使っておけば私よりかっこいいはず! :-) you'll probably need to put the '-fexpr' expression in single quotes matched connection numbers are saved in file PF for later processing with '-oPF' (for graphing, for example). This is helpful, because all the work is done in one pass of the file, so if you graph while using a filter, you'll get ALL graphs, not just the ones you want. Just filter on a first pass, then use the "-oPF" flag with graphing on the second pass most common synonyms for NOT, AND, and OR also work (!,&&,||,-a,-o) (for those of us with very poor memories 例 tcptrace '-fsegs>10' file tcptrace '-fc_segs>10 OR s_segs>20 ' file tcptrace '-f c_segs+10 > s_segs ' file tcptrace -f'thruput>10000 and segs > 100' file tcptrace '-fb_segs>10' file