TCPSLICE(1)

명칭
tcpslice - tcpdump 파일의 시작/결합

서식
tcpslice [-dRrt] [-w file] [start-time [end-time]] file ...

해설
tcpslice 유틸리티는, tcpdump(1) 의 -w 플래그 (을)를 이용해 작성된 패킷 트레이스 파일의 일부를 자르는 프로그램입니다. 또, 이하에 나타내도록(듯이), 복수의 패킷 트레이스 파일을 결합하는 일도 할 수 있습니다.

tcpslice 의 기본 기능은, 입력 파일에 포함되는 패킷 가운데, 지정된 시간내의 물건을 stdout 에 출력하는 일입니다. 개시시각 및 종료시각의 범위는, 명령행으로 지정할 수 있습니다. 범위는 지정했다 시각 자신을 포함합니다. 디폴트에서는, 개시시각은 최초의 입력 파일의 첫째의 패킷의 시각입니다. 이 시각을 first time (이)라고 부릅니다. 디폴트에서는, 종료시각은 개시시각의 10 년 다음에. 따라서, tcpslice trace-file 그렇다고 하는 명령은 단지 trace-file (을)를 stdout 에 출력합니다(파일에는 10 년분의 데이터가 없는 것을 상정하고 있습니다).

시각의 지정에는 몇개의 방법이 있습니다. 하나는 sssssssss.uuuuuu 의 형태를 취하는 Unix 시각 형식을 이용하는 방법입니다 (이것은, tcpdump(1) 의 -tt 플래그로 지정되는 형식입니다). 예를 들면, 654321098.7654 (은)는, 1990 년 9 월 25 일, 오후 8 시 51 분 (PDT)부터, 38 초와 765,400 마이크로 세컨드 후의 시각을 나타냅니다.

이 메뉴얼의 예는 모두 PDT 의 시각에 가리킵니다만, 이하로 가리키도록(듯이) 시각을 표시하거나 해석하거나 하는 경우, tcpslice (은)는, tcpdump(1) 의 파일이 어느 타임 존으로 생성되었는지를 관련되지 않고, 로컬의 타임 존을 사용합니다. 서머타임의 설정은, 대상이 되는 날의 로컬의 타임 존으로 적절한 것이 이용됩니다. 예를 들면, 하계의 시각에는, 서머타임의 영향을 반영해, 동계의 시각에는 영향을 주지 않습니다.

시각은 first time (으)로부터(개시시각을 지정하는 경우), 혹은 개시시각으로부터(종료시각을 지정하는 경우) 의 상대적인 시각으로서 지정하는 일도 할 수 있습니다. 지정하려면 초수의 전에 `+'를 붙입니다. 예를 들면, +200 (은)는 개시시각이 first time (으)로부터 200 초 다음에 있는 것을 나타내, 두 인수 +200 +300 하 first time (으)로부터 200 초 후부터, first time (으)로부터 500 초 뒤에까지의 범위를 나타냅니다.

시각은, 년 (y), 월 (m), 일 (d), 시 (h), 분 (m), 초 (s), 마이크로 세컨드 (u)로 지정하는 일도 할 수 있습니다. 예를 들면, 상기의 Unix 시각 654321098.7654 는, 90y9m25d20h51m38s765400u (와)과 지정하는 일도 할 수 있습니다.

이 형식에서 시각을 지정했을 경우, 생략 된 필드의 기본값은 이하 (와)과 같이 됩니다. 최초로 지정된 필드에서(보다) 크다 단위의 생략 된 필드에 대한 기본값은, first time (개시시각을 지정하는 경우) 또는 개시시각(종료시각을 지정하는 경우)과 같다 값이 됩니다. 최초로 지정된 필드에서(보다) 작다 단위의 생략 된 필드에 대한 기본값은 제로가 됩니다. 예를 들면, 입력 파일의 first time 하지만 Unix 시각에 상기의 값, 즉, 1990 년 9 월 25 일, 오후 8 시 51 분 (PDT) (으)로부터 38 초와 765,400 마이크로 세컨드 후로 합시다. 이 때, 같은 날의 오후 9 시 36 분 (PDT) 정확히를 지정하려면 , 21h36m (와)과 나타낼 수가 있습니다. 오후 9 시 36 분 (PDT)부터 다음날의 오전 1 시 54 분 (PDT)까지를 지정하려면 , 21h36m 26d1h54m (와)과 나타낼 수가 있습니다.

ymdhmsu 형식을 사용할 때에도 상대 시각에 지정할 수가 있습니다. 이 때, 생략 된 필드의 단위가 지정된 최초의 필드에서(보다) 크다 단위라면, 기본값은 0 이 되어, 생략 된 필드의 단위가 지정된 최초의 필드에서(보다) 작다 단위라면, 기본값은 first time 혹은 개시시각과 같은 값이 됩니다. first time 하지만 상기의 Unix 시각이었던 경우, 22h +1h10m (은)는 그 날의 오후 10 시 00 분 (PDT)부터 오후 11 시 10 분 (PDT)까지를 나타내, +1h +1h10m (은)는 오후 9 시 51 분 (PDT)의 38.7654 초 후부터 오후 11 시 01 분 (PDT)의 38.7654 초 뒤에까지를 나타냅니다. +0 +1h (와)과 지정하면, 파일의 최초부터 1 시간 분의 데이타를 뽑기 시작할 수가 있습니다.

ymdhmsu 형식을 이용하는 경우, m 하지만,`달'를 나타내는지 `분 '를 나타내는지가 애매하게 됩니다. 머지않아가 될까는, 이하와 같이 결정됩니다. m 필드의 뒤에 d 필드가 왔을 경우, 달이 지정되었다고 판단합니다. 그 이외의 경우는, 분이 지정된 판단합니다.

복수의 입력 파일이 지정되었을 경우, tcpslice (은)는 우선, 최초의 파일내의 지정되었을 때 각의 범위에 있는 패킷을 출력합니다. 다음에, 범위의 개시시각을 최초의 파일의 마지막 패킷의 시각의 직후로 변경해, 다음의 파일을 처리해, 이후 이것을 반복합니다. 따라서, 시간순서에 줄서지 않은 패킷을 포함한 복수의 파일을 정리하는 일은 할 수 없습니다. 주어진 파일 가운데, 먼저 처리된 파일보다 새로운 패킷에 대해서 마셔 처리됩니다. 이 기구에 의해 하나의 패킷이 여러 차례 출력에 나타난다 일을 막을 수가 있습니다.

옵션
-R, -r, -t 중 한쪽이 지정되었을 경우, tcpslice (은)는, 각 입력 파일의 최초 및 마지막 패킷의 시각을 표시해 종료합니다. 이러한 3 개의 옵션 가운데, 1 개만을 지정할 수가 있습니다.

이하의 옵션을 지정할 수 있습니다:

-d  지정된 범위의 개시시각과 종료시각을 표시해 종료합니다. 이 옵션은, 지정한 범위가 상정되어 있는 시간과 정말로 일치하고 있는지 어떤지를 확인하는데 유효합니다. -R, -r, -t 중 한쪽이 지정되었을 경우, 그것들에 상당하는 형식에서 시각을 표시합니다. 지정이 없는 경우는, 내부 형식 (-R) 됩니다.

-R  각 입력 파일의 최초 및 마지막 패킷의 시각을 내부 형식 (즉, sssssssss.uuuuuu 의 형식)으로 표시합니다.

-r  -R (와)과 같습니다만, date(1) (와)과 같은, 읽기 쉬운 형식에서 시각을 표시합니다.

-t  -R (와)과 같습니다만, 시각을 tcpslice 형식, 즉, 상기에 나타냈다 ymdhmsu 의 형태로 표시합니다.

-w file
    출력을 stdout (이)가 아니고, file (으)로 합니다.

관련 항목
tcpdump(1)

저자
Vern Paxson <vern@ee.lbl.gov>, of Lawrence Berkeley Laboratory, University of California, Berkeley, CA.

버그
숫자나 `+'로 시작되는 파일명을 입력 파일로서 지정하면(자), 개시/종료시각과 잘못하는 일이 있습니다. 이러한 파일명은, 선두에 `. /'를 붙여 지정합니다. 예를 들어, `04Jul76.trace'라고 하는 파일명이라면 `. /04Jul76.trace'로 합니다.

tcpslice 유틸리티는, 입력 파일을 빠짐없이 찾기 위해서(때문에) 랜덤 억세스를 사용하기 위해(때문에), stdin (으)로부터 입력할 수 없습니다.

tcpslice 유틸리티는, 출력처가 단말 ( isatty(3) 그리고 나타난다)인 경우, 출력하지 않습니다. 이것은 버그가 아니고, 유저의 단말에 바이너리 데이터를 흩뿌리는 것을 막기 위한 사양입니다. 즉, stdout (을)를 리디렉트 하는지, -w 에 의해 출력 파일을 지정하지 않으면 안됩니다.

tcpslice 유틸리티는, 1 년 이상에 걸친다 tcpdump(1) 의 파일이나, 원래의 패킷의 길이가 65,535 바이트를 넘는 것 같은 패킷의 일부를 포함하는 것 같은 파일, 3 패킷 미만의 패킷 밖에 포함되지 않는 파일 에 대해서는 올바르게 일하지 않을 것입니다. 이러한 파일을 처리하려고 하면(자), `couldn't find final packet in file'라고 하는 에러 메세지가 출력됩니다. 이러한 문제는, 큰 트레이스 파일을 취급하는 경우에, tcpslice 하지만 처리 속도를 크게 개선하기 위해서 사용하고 있는 기구에 기인합니다. 한편, tcpslice (은)는, 어떤 사이즈의 트레이스 파일에서도 중앙의 슬라이스를 효율적으로 꺼낸다 일이 생겨 불완전한 트레이스 파일 (예를 들면, 파일중의 마지막 패킷이 도중에 끊어져 있는 파일, tcpdump(1) 하지만 강제적으로 종료 당했다 경우에 잘 할 수 있다)에 대해서도 올바르게 동작합니다.