trpt コマンド
目的
TCP ソケットについてのプロトコル・トレースを実行します。
構文
説明
trpt コマンドは、伝送制御プロトコル (TCP) トレース・レコードのバッファーを照会します。 このバッファーは、ソケットが setsockopt サブルーチンによりデバッグのためにマーク付けされるときに作成されます。 次に、trpt コマンドは、これらのトレース・レコードの記述を表示します。
注: デーモン用のソケット・レベルのデバッグをオンにするには、 traceson コマンドを使用します。
オプションを指定しなければ、trpt コマンドはシステム内で見付かったトレース・レコードをすべて表示し、 それぞれの TCP/IP 接続プロトコル制御ブロック (PCB) に従ってグループ化します。
trpt コマンドを使用する前に、以下の操作を実行しなければなりません。
- 問題を突き止め、接続に関係するソケットにデバッグを表すマークを付けます。
- netstat -aA コマンドを使用して、これらのソケットに関連するプロトコル制御ブロックのアドレスを検出します。
- 次に、-p フラグを使用して対応するプロトコル制御ブロックのアドレスを与えると、 trpt コマンドを実行できます。1 つの trpt コマンドに複数の -pAddress フラグを指定することができます。
-f フラグを使用すると、一度突き止めたトレース・ログをたどれます。 -j フラグを使用すると、問題のソケットに関してトレース・レコードが存在するかどうかを検査できます。
システム・イメージに正しい記号が入っていないためにトレース・バッファーが見付からなければ、 trpt コマンドは失敗に終わります。
出力フィールド
trpt コマンドが表示する情報は、どのフラグを使用するかによって異なります。 各種の出力に入っているフィールドの定義を以下に示します。
| 項目 | 説明 |
|---|---|
| プロトコル制御ブロック ID | 以下の例に示すように、トレースの対象となるプロトコル・ブロックを識別します。
|
| タイム・スタンプ | 以下の例に示すように、接続が試行される時刻を指定します。
|
| 接続状態 | プロトコル制御ブロックとの接続状態を指定します。
|
| アクション | パケット・トレース接続の現在の状況を指定します。
コマンドの出力はアクションに応じて変化します。
実際には次の例のようになります。
実際には次の例のようになります。
|
|
|
| Drop | データは前のセグメント内に入っていることを指定します。データは削除されます。 |
| Window and Sequence Variables | ウィンドウ変数とシーケンス変数のタイプは、以下のとおりです。
|
フラグ
| 項目 | 説明 |
|---|---|
| -a | 通常の出力の他に、記録済みの各パケットの送信元アドレスと宛先アドレスの値を表示します。 |
| -f | トレースの発生時にそれをたどり、ログの終わりに達するたびに追加レコードを待機します。 |
| -j | トレース・レコードが存在するプロトコル制御ブロックのアドレスのみをリストします。 |
| -pAddress | Address 変数に 16 進数で指定されたプロトコル制御ブロックに関連するトレース・レコードのみを表示します。 -p フラグを複数指定する場合は、必ず -p フラグに Address 変数を指定しなければなりません。 |
| -s | 通常の出力の他に、パケット・シーケンス情報の詳細記述を表示します。 |
| -t | 通常の出力の他に、トレース内のポイントごとに、すべてのタイマーの値を表示します。 |
例
- トレース情報と一緒に記録済みの各パケットの送信元アドレスと宛先アドレスを表示するには、次のように入力します。
これにより、以下のような出力が表示されます。$ trpt -a124b0c: 900 ESTABLISHED:input (src=192.9.201.3,4257, dst=192.9.201.2,102 5)2326e6e5@ad938c02(win=200)<ACK,FIN,PUSH> -> CLOSE_WAIT 900 CLOSE_WAIT:output (src=192.9.201.2,1025, dst=192.9.201.3,425 7)ad938c02@2326e6e6(win=4000)<ACK> -> CLOSE_WAIT 900 LAST_ACK:output (src=192.9.201.2,1025, dst=192.9.201.3,4257) ad938c02@2326e6e6(win=4000)<ACK,FIN> -> LAST_ACK 900 CLOSE_WAIT:user DISCONNECT -> LAST_ACK 900 LAST_ACK:user DETACH -> LAST_ACK 12500c: 800 ESTABLISHED:output (src=192.9.201.2,1024, dst=192.9.201.3,51 2)ad8eaa13@2326e6e5(win=4000)<ACK> -> ESTABLISHED 800 ESTABLISHED:input (src=192.9.201.3,512, ¥ dst=192.9.201.2,1024) [2326e6e5..2326e727)@ad8eaa13(win=1ef)<ACK,PUSH> -> ESTABLISHED 800 ESTABLISHED:user RCVD -> ESTABLISHED 900 ESTABLISHED:output (src=192.9.201.2,1024, dst=192.9.201.3,51 2)ad8eaa13@2326e727(win=4000)<ACK> -> ESTABLISHED 900 ESTABLISHED:input (src=192.9.201.3,512, ¥ dst=192.9.201.2,1024) [2326e727..2326e82f)@ad8eaa13(win=1ef)<ACK,PUSH> -> ESTABLISHED 900 ESTABLISHED:user RCVD -> ESTABLISHED 900 ESTABLISHED:output (src=192.9.201.2,1024, dst=192.9.201.3,51 2)ad8eaa13@2326e82f(win=4000)<ACK> -> ESTABLISHED 900 ESTABLISHED:input (src=192.9.201.3,512, ¥ dst=192.9.201.2,1024) 2326e82f@ad8eaa13(win=1ef)<ACK,FIN,PUSH> -> CLOSE_WAIT 900 CLOSE_WAIT:output (src=192.9.201.2,1024, ¥ dst=192.9.201.3,512) ad8eaa13@2326e830(win=4000)<ACK> -> CLOSE_WAIT 900 LAST_ACK:output (src=192.9.201.2,1024, dst=192.9.201.3,512)a d8eaa13@2326e830(win=4000)<ACK,FIN> -> LAST_ACK 900 CLOSE_WAIT:user DISCONNECT -> LAST_ACK 900 LAST_ACK:user DETACH -> LAST_ACK $ _ - トレース・レコードを持つプロトコル制御ブロックをリストするには、次のように入力します。
これにより、以下のような出力が表示されます。trpt -j124b0c, 12500c - 単一のプロトコル制御ブロックと対応するトレース・レコードを表示するには、次のように入力します。
これにより、以下のような出力が表示されます。trpt -p 12500c800 ESTABLISHED:output ad8eaa13@2326e6e5(win=4000)<ACK> -> ESTABLISHED 800 ESTABLISHED:input [2326e6e5..2326e727)@ad8eaa13(win=1ef) <ACK,PUSH> -> ESTABLISHED 800 ESTABLISHED:user RCVD -> ESTABLISHED 900 ESTABLISHED:output ad8eaa13@2326e727(win=4000)<ACK> -> ESTABLISHED 900 ESTABLISHED:input [2326e727..2326e82f)@ad8eaa13(win=1ef) <ACK,PUSH> -> ESTABLISHED 900 ESTABLISHED:user RCVD -> ESTABLISHED 900 ESTABLISHED:output ad8eaa13@2326e82f(win=4000)<ACK> -> ESTABLISHED 900 ESTABLISHED:input 2326e82f@ad8eaa13(win=1ef)<ACK,FIN,PUSH> -> CLOSE_WAIT 900 CLOSE_WAIT:output ad8eaa13@2326e830(win=4000)<ACK> -> CLOSE_WAIT 900 LAST_ACK:output ad8eaa13@2326e830(win=4000)<ACK,FIN> -> LAST_ACK 900 CLOSE_WAIT:user DISCONNECT -> LAST_ACK 900 LAST_ACK:user DETACH -> LAST_ACK $ _