aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/tcpslice.1
blob: 13501d17d4a987c39f85f45dcc5ee72f0c1acae4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpslice.1,v 1.1.1.1 1998-02-25 04:54:16 hanai Exp $ (LBL)
.\" jpman %Id: tcpslice.1,v 1.3 1997/09/07 14:12:55 horikawa Stab %
.\"
.\" Copyright (c) 1988-1990 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that: (1) source code distributions
.\" retain the above copyright notice and this paragraph in its entirety, (2)
.\" distributions including binary code include the above copyright notice and
.\" this paragraph in its entirety in the documentation or other materials
.\" provided with the distribution, and (3) all advertising materials mentioning
.\" features or use of this software display the following acknowledgement:
.\" ``This product includes software developed by the University of California,
.\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
.\" the University nor the names of its contributors may be used to endorse
.\" or promote products derived from this software without specific prior
.\" written permission.
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
.TH TCPSLICE 1  "14 Oct 1991"
.SH 名称
tcpslice \- tcpdump ファイルの分割/結合
.SH 書式
.na
.B tcpslice
[
.B \-dRrt
] [
.B \-w
.I file
]
.br
.ti +9
[
.I start-time
[
.I end-time
] ]
.I file ...
.br
.ad
.SH 解説
.LP
.I tcpslice
は、
\fItcpdump(1)\fP
の
.B \-w
フラグ
を用いて作成されたパケットトレースファイルの一部を切り出すプログラムです。
また、以下に示すように、複数のパケットトレースファイルを結合する事も
できます。
.LP
.I tcpslice
の基本機能は、入力となるファイルに含まれるパケットの時刻が与えられた範囲に
あるものを
.I stdout
にコピーする事です。
開始時刻および終了時刻の範囲は、コマンド行で指定できます。範囲は指定した
時刻自身を含みます。開始時刻のデフォルトは最初の入力ファイルの最初の
パケットの時刻で、これを
.I first time
と呼びます。終了時刻のデフォルトは開始時刻の 10 年後です。
したがって、
.I tcpslice trace-file
というコマンドは単に
.I trace-file
を \fIstdout\fP にコピーします(ファイルには 10 年分のデータがない事を
想定しています)。
.LP
時刻の指定にはいくつかの方法があります。ひとつは
.I sssssssss.uuuuuu
の形式の Unix 時刻形式を用いる方法です
(これは、\fItcpdump\fP の
.B \-tt
フラグで指定される形式です)。
例えば、
.B 654321098.7654
は、1990 年 9 月 25 日、午後 8 時 51 分 (PDT) から、
38 秒と 765,400 マイクロ秒後の時刻を示します。
.LP
このマニュアルの例は全て PDT の時刻で示しますが、
以下で示すように時刻を表示したり解釈したりする場合、
.I tcpslice
は、\fItcpdump\fP のファイルがどのタイムゾーンで生成されたかに関わらず、
ローカルのタイムゾーンを使用します。
夏時間の設定は、対象となる日のローカルのタイムゾーンで適切な物が用いられます。
例えば、夏季の期間の時刻は、夏時間の影響を反映し、冬季の期間の時刻は
影響しません。
.LP
時刻は
秒数の前に `+' を付けて指定する事により、
.I first time
(開始時刻を指定する場合)
や開始時刻(終了時刻を指定する場合)
からの相対的な時刻として指定する事もできます。
例えば、
.B +200
は
.I first time
から 200 秒後を示し、ふたつの引数
.B +200 +300
は
.I first time
から 200 秒後から、
.I first time
から 500 秒後までを示します。
.LP
時刻は、年 (y)、月 (m)、日 (d)、時 (h)、分 (m)、秒 (s)、マイクロ秒 (u) で
指定する事もできます。例えば、上記で示した Unix 時刻 654321098.7654 は、
.B 90y9m25d20h51m38s765400u
と指定する事もできます。
.LP
この形式で時刻を指定した場合、省略されたフィールドのデフォルトは以下の様に
なります。省略されたフィールドが最初に指定されたフィールドより
.I 大きい
単位ならば、そのデフォルト値は、
.I first time
(開始時刻を指定する場合) または開始時刻(終了時刻を指定する場合)と同じ
値となります。
省略されたフィールドが最初に指定されたフィールドより
.I 小さい
単位ならば、そのデフォルト値はゼロとなります。
例えば、入力ファイルの
.I first time
の Unix 時刻が上記の値、すなわち、1990 年 9 月 25 日、午後 8 時 51 分 (PDT)
から 38 秒と 765,400 マイクロ秒後としましょう。この時、同じ日の 午後 9 時
36 分 (PDT) ちょうどを指定するには、
.B 21h36m
と表す事ができます。
午後 9 時 36 分 (PDT) から翌日の午前 1 時 54 分 (PDT) までを指定するには、
.B 21h36m 26d1h54m
と表す事ができます。
.LP
.I ymdhmsu
形式を使用する時にも相対時刻を指定する事ができます。
この時、省略されたフィールドが指定された最初のフィールドより
.I 大きい
単位ならば、デフォルト値は 0 となり、
省略されたフィールドが指定された最初のフィールドより
.I 小さい
単位ならば、デフォルト値は
.I first time
あるいは開始時刻と同じ値となります。
.I first time
が上記で示した Unix 時刻だった場合、
.B 22h +1h10m
はその日の午後 10 時 00 分 (PDT) から 午後 11 時 10 分 (PDT) までを示し、
.B +1h +1h10m
は午後 9 時 51 分 (PDT) の 38.7654 秒後から 午後 11 時 01 分 (PDT) の
38.7654 秒後までを示します。
.B +0 +1h
と指定すれば、ファイルの最初から 1 時間分のデータを取り出す事ができます。
.LP
.I ymdhmsu
形式を用いる場合、
.I m
が、`月' を示すのか `分' を示すのかが曖昧になります。
この曖昧さは、以下のように決定されます。もし、
.I m
フィールドの後に
.I d
フィールドが来た場合、それは月であると判断され、それ以外の場合は、
分であると判断されます。
.LP
複数の入力ファイルが指定された場合、
.I tcpslice
はまず、最初のファイルの与えられた時刻の範囲にあるパケットをコピーします。
次に、範囲の開始時刻を最初のファイルの最後のパケットの時刻の直後に変更し、
次のファイルを処理し、以降これを繰り返します。したがって、時間的に
分散したパケットを含むような複数のファイルをまとめる事は
.I できません。
与えられたファイルのうち、先に処理されたファイルより新しいパケットに対して
のみ処理されます。この機構によりひとつのパケットが複数回出力に現れる
事を防ぐ事ができます。
.SH オプション
.LP
.B \-R,
.B \-r,
.B \-t
のいずれかが指定された場合、
.I tcpslice
は、各入力ファイルの最初および最後のパケットの時刻を表示して終了します。
これらの 3 個のオプションのうち、ひとつだけを指定することができます。
.TP
.B \-d
指定された範囲の開始時刻と終了時刻をダンプして終了します。
このオプションは、指定した範囲が想定している時間と本当に一致しているかどうかを
確認するのに有効です。
.B \-R,
.B \-r,
.B \-t
のいずれかが指定された場合、それらに相当する形式で時刻をダンプします。
指定がない場合は、加工しない形式 (\fB \-R\fP) が使用されます。
.TP
.B \-R
各入力ファイルの最初および最後のパケットの時刻を加工しない形式
(つまり、\fI sssssssss.uuuuuu\fP の形式) でダンプします。
.TP
.B \-r
.B \-R
と同じですが、\fI date(1)\fP で使用される物と同様の、読みやすい形式で
時刻をダンプします。
.TP
.B \-t
.B \-R
と同じですが、時刻を
.I tcpslice
形式、すなわち、上記に示した
.I ymdhmsu
の形でダンプします。
.TP
.B \-w
結果を \fIstdout\fP ではなく、\fIfile\fR に出力します。
.SH 関連項目
tcpdump(1)
.SH 作者
Vern Paxson (vern@ee.lbl.gov), of
Lawrence Berkeley Laboratory, University of California, Berkeley, CA.
.SH バグ
数字や `+' で始まるファイル名を入力ファイルとして指定すると、
開始/終了時刻と区別できません。このようなファイル名は、たとえば、
`04Jul76.trace' というファイル名ならば `./04Jul76.trace' のように、
先頭に `./' をつけて指定して下さい。
.LP
.I tcpslice
は、入力ファイルをくまなく探すためにランダムアクセスを使用するため、
\fIstdin\fP から入力を読み込むことはできません。
.LP
.I tcpslice
は、出力を (\fIisatty(3)\fP で示される) 端末へ出力しようとしません。
これはバグではなく仕様で、ユーザの端末にバイナリデータをまき散らすことを
防ぎます。つまり、\fIstdout\fP をリダイレクトするか、\fB\-w\fP により
出力ファイルを指定する必要があります。
.LP
.I tcpslice
は、1 年以上にわたる \fItcpdump\fP のファイルや、
もともとのパケットの長さが 65,535 バイトを超えるようなパケットの一部を
含むようなファイル、3 パケットより少ないパケットしかないファイル
に対しては正しく働かないでしょう。
これらのファイルを処理しようとすると、
`couldn't find final packet in file' というエラーメッセージが出力されます。
これらの問題は、大きなトレースファイルを扱う場合に、
.I tcpslice
が処理速度を大きく改善するために使用している補間機能に起因します。
一方、
.I tcpslice
は、如何なるサイズのトレースファイルでも中央のスライスを効率的に取り出す
ことができ、分断されたトレースファイル (ファイルの中の最後のパケットが
一部しか存在しない様なファイル、\fItcpdump\fP が強制的に終了させられた
場合にできる場合がある) に対しても正しく動作します。