aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/tcpslice.1
blob: 0d3be7d2ca055309d583fe32fc707c3123f57329 (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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
.\" @(#) %Header: /home/ncvs/src/usr.sbin/tcpdump/tcpslice/tcpslice.1,v 1.4 1995/05/14 15:21:36 gpalmer 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
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
.\" %FreeBSD: src/usr.sbin/tcpdump/tcpslice/tcpslice.1,v 1.7.2.1 2000/05/09 14:12:49 sheldonh Exp %
.Dd October 14, 1991
.Dt TCPSLICE 1
.Os
.Sh 名称
.Nm tcpslice
.Nd tcpdump ファイルの切り出し/結合
.Sh 書式
.Nm tcpslice
.Op Fl dRrt
.Op Fl w Ar file
.Op Ar start-time Op end-time
.Ar
.Sh 解説
.Nm
は、
.Xr tcpdump 1
の
.Fl w
フラグ
を用いて作成されたパケットトレースファイルの一部を切り出すプログラムです。
また、以下に示すように、複数のパケットトレースファイルを結合する事も
できます。
.Pp
.Nm
の基本機能は、入力ファイルに含まれるパケットのうち、指定された時間内の
ものを
.Pa stdout
に出力する事です。
開始時刻および終了時刻の範囲は、コマンド行で指定できます。範囲は指定した
時刻自身を含みます。デフォルトでは、開始時刻は最初の入力ファイルの一つ目の
パケットの時刻です。この時刻を
.Em first time
と呼びます。デフォルトでは、終了時刻は開始時刻の 10 年後です。
したがって、
.Nm
.Ar trace-file
というコマンドは単に
.Ar trace-file
を
.Pa stdout
に出力します(ファイルには 10 年分のデータがない事を
想定しています)。
.Pp
時刻の指定にはいくつかの方法があります。ひとつは
.Em sssssssss.uuuuuu
の形をとる Unix 時刻形式を用いる方法です
(これは、
.Xr tcpdump 1
の
.Fl tt
フラグで指定される形式です)。
例えば、
.Em 654321098.7654
は、1990 年 9 月 25 日、午後 8 時 51 分 (PDT) から、
38 秒と 765,400 マイクロ秒後の時刻を示します。
.Pp
このマニュアルの例は全て PDT の時刻で示しますが、
以下で示すように時刻を表示したり解釈したりする場合、
.Nm
は、
.Xr tcpdump 1
のファイルがどのタイムゾーンで生成されたかに関わらず、
ローカルのタイムゾーンを使用します。
夏時間の設定は、対象となる日のローカルのタイムゾーンで適切な物が用いられます。
例えば、夏季の時刻には、夏時間の影響を反映し、冬季の時刻には
影響しません。
.Pp
時刻は
.Em first time
から(開始時刻を指定する場合)、
あるいは開始時刻から(終了時刻を指定する場合)
の相対的な時刻として指定する事もできます。
指定するには秒数の前に `+' を付けます。
例えば、
.Em +200
は開始時刻が
.Em first time
から 200 秒後であることを示し、ふたつの引数
.Em +200 +300
は
.Em first time
から 200 秒後から、
.Em first time
から 500 秒後までの範囲を示します。
.Pp
時刻は、年 (y)、月 (m)、日 (d)、時 (h)、分 (m)、秒 (s)、マイクロ秒 (u) で
指定する事もできます。例えば、上記の Unix 時刻 654321098.7654 は、
.Em 90y9m25d20h51m38s765400u
と指定する事もできます。
.Pp
この形式で時刻を指定した場合、省略されたフィールドのデフォルト値は以下
のようになります。最初に指定されたフィールドより
.Em 大きい
単位の省略されたフィールドについてのデフォルト値は、
.Em first time
(開始時刻を指定する場合) または開始時刻(終了時刻を指定する場合)と同じ
値となります。
最初に指定されたフィールドより
.Em 小さい
単位の省略されたフィールドについてのデフォルト値はゼロとなります。
例えば、入力ファイルの
.Em first time
が Unix 時刻で上記の値、すなわち、1990 年 9 月 25 日、午後 8 時 51 分 (PDT)
から 38 秒と 765,400 マイクロ秒後としましょう。この時、同じ日の 午後 9 時
36 分 (PDT) ちょうどを指定するには、
.Em 21h36m
と表す事ができます。
午後 9 時 36 分 (PDT) から翌日の午前 1 時 54 分 (PDT) までを指定するには、
.Em 21h36m 26d1h54m
と表す事ができます。
.Pp
.Em ymdhmsu
形式を使用する時にも相対時刻で指定する事ができます。
この時、省略されたフィールドの単位が指定された最初のフィールドより
.Em 大きい
単位ならば、デフォルト値は 0 となり、
省略されたフィールドの単位が指定された最初のフィールドより
.Em 小さい
単位ならば、デフォルト値は
.Em first time
あるいは開始時刻と同じ値となります。
.Em first time
が上記の Unix 時刻だった場合、
.Em 22h +1h10m
はその日の午後 10 時 00 分 (PDT) から 午後 11 時 10 分 (PDT) までを示し、
.Em +1h +1h10m
は午後 9 時 51 分 (PDT) の 38.7654 秒後から 午後 11 時 01 分 (PDT) の
38.7654 秒後までを示します。
.Em +0 +1h
と指定すれば、ファイルの最初から 1 時間分のデータを取り出す事ができます。
.Pp
.Em ymdhmsu
形式を用いる場合、
.Em m
が、`月' を示すのか `分' を示すのかが曖昧になります。
いずれになるかは、以下のように決定されます。
.Em m
フィールドの後に
.Em d
フィールドが来た場合、月が指定されたと判断します。それ以外の場合は、
分が指定された判断します。
.Pp
複数の入力ファイルが指定された場合、
.Nm
はまず、最初のファイル内の指定された時刻の範囲にあるパケットを出力します。
次に、範囲の開始時刻を最初のファイルの最後のパケットの時刻の直後に変更し、
次のファイルを処理し、以降これを繰り返します。したがって、時間順に
ならんでいないパケットを含む複数のファイルをまとめる事は
.Em できません。
与えられたファイルのうち、先に処理されたファイルより新しいパケットに対して
のみ処理されます。この機構によりひとつのパケットが複数回出力に現れる
事を防ぐ事ができます。
.Sh オプション
.Pp
.Fl R ,
.Fl r ,
.Fl t
のいずれかが指定された場合、
.Nm
は、各入力ファイルの最初および最後のパケットの時刻を表示して終了します。
これらの 3 個のオプションのうち、1 つだけを指定することができます。
.Pp
以下のオプションが指定できます:
.Bl -tag -width indent
.It Fl d
指定された範囲の開始時刻と終了時刻を表示して終了します。
このオプションは、指定した範囲が想定している時間と本当に一致しているかどうかを
確認するのに有効です。
.Fl R ,
.Fl r ,
.Fl t
のいずれかが指定された場合、それらに相当する形式で時刻を表示します。
指定がない場合は、内部形式 (
.Fl R )
となります。
.It Fl R
各入力ファイルの最初および最後のパケットの時刻を内部形式
(つまり、
.Em sssssssss.uuuuuu
の形式) で表示します。
.It Fl r
.Fl R
と同じですが、
.Xr date 1
と同様の、読みやすい形式で時刻を表示します。
.It Fl t
.Fl R
と同じですが、時刻を
.Nm
形式、すなわち、上記に示した
.Em ymdhmsu
の形で表示します。
.It Fl w Ar file
出力を
.Pa stdout
ではなく、
.Ar file
とします。
.El
.Sh 関連項目
.Xr tcpdump 1
.Sh 作者
.An Vern Paxson Aq vern@ee.lbl.gov ,
of Lawrence Berkeley Laboratory, University of California, Berkeley, CA.
.Sh バグ
数字や `+' で始まるファイル名を入力ファイルとして指定すると、
開始/終了時刻と間違うことがあります。このようなファイル名は、
先頭に `./' をつけて指定します。たとえば、
`04Jul76.trace' というファイル名ならば `./04Jul76.trace' とします。
.Pp
.Nm
は、入力ファイルをくまなく探すためにランダムアクセスを使用するため、
.Pa stdin
から入力することはできません。
.Pp
.Nm
は、出力先が端末 (
.Xr isatty 3
で示される) である場合、出力しません。
これはバグではなく、ユーザの端末にバイナリデータをまき散らすことを
防ぐための仕様です。つまり、
.Pa stdout
をリダイレクトするか、
.Fl w
により出力ファイルを指定しなければなりません。
.Pp
.Nm
は、1 年以上にわたる
.Xr tcpdump 1
のファイルや、
もともとのパケットの長さが 65,535 バイトを超えるようなパケットの一部を
含むようなファイル、3 パケット未満のパケットしか含まれないファイル
に対しては正しく働かないでしょう。
これらのファイルを処理しようとすると、
`couldn't find final packet in file' というエラーメッセージが出力されます。
これらの問題は、大きなトレースファイルを扱う場合に、
.Nm
が処理速度を大きく改善するために使用している機構に起因します。
一方、
.Nm
は、如何なるサイズのトレースファイルでも中央のスライスを効率的に取り出す
ことができ、不完全なトレースファイル (例えば、ファイル中の最後のパケットが
途中で切れているファイル、
.Xr tcpdump 1
が強制的に終了させられた
場合によくできる) に対しても正しく動作します。