tcpinfo

   tcpinfo

  사용법


	tcpinfo -V
	tcpinfo [-t][-u] [-m|-k|-b] interval [count]
	tcpinfo -R [-t][-u]

	Options are as follows:

	-?             print this help
	-b             display value in bytes
	-k             display value in kilobytes; (default)
	-m             display value in megabytes)
	-R             display accumulated data since boot
	-t             show TCP information; (default)
	-u             show UDP information
	-V             show version
	interval       interval time(second)
	count          times to get the info
  설명

tcpinfo 명령어를 실행하면, TCP 와 관련된 정보를 다음과 같이 보여준다.

# tcpinfo 1 5
# Date.time 0819.145759 interval 1
    Time CurEs AOpen POpen +DrpQ +DrpQ0 +DrpR   ISeg   OSeg   IData   OData +RSeg +RData +Rst_a +Rst_e +Rst_o
14:58:00     5   0.0   0.0     0      0     0    3.0    6.0  0.141K  0.141K     0 0.000K      0      0      0
14:58:01     5   0.0   0.0     0      0     0    4.0    7.0  0.141K  0.188K     1 0.000K      0      0      0
14:58:02     7   1.0   1.0     0      0     0   29.0   35.0  4.888K  4.888K     0 0.000K      0      0      0
14:58:03     5   0.0   0.0     0      0     0    8.0    7.0  0.194K  0.092K     0 0.000K      0      1      1
14:58:04     5   0.0   0.0     0      0     0    0.0    0.0  0.000K  0.000K     0 0.000K      0      0      0

위의 예제는 TCP 정보를 1초 간격으로 5번 실행한 예제이다.

-u 옵션을 지정하면 UDP 와 관련된 통계 정보를 다음과 같이 보여준다

# tcpinfo -u 1
# Date.time 0819.150153 interval 1
    Time  U_DG_i  U_DG_o +U_NP +U_Ov +U_ck +I_rf
15:01:55     0.0     0.0     4     0     0     0
15:01:56     0.0     0.0     2     0     0     0
15:01:57     0.0     0.0     1     0     0     0
15:01:58     0.0     0.0     1     0     0     0
15:01:59     0.0     0.0     2     0     0     0
15:02:00     0.0     0.0     7     0     0     0
... skip ...

tcpinfo 명령어에서 출력되는 필드의 의미는 다음의 표에서 설명한다.

헤더설명
Time 데이타가 수집된 시간을 표시한다.
CurEs 현재 "ESTABLISHED" 된 TCP 소켓의 개수 (현재값)

[netstat -stcpCurrEstab 컬럼과 같음]

AOpen TCP socket을 active open한 횟수 (초당값)

[netstat -stcpActiveOpens 컬럼과 같음]

POpen TCP socket을 passive open한 횟수 (초당값)

[netstat -stcpPassiveOpens 컬럼과 같음]

+DrpQ TCP queue에서 drop된 페킷의 개수 (차이값)

[netstat -stcpListenDrop 컬럼과 같음]

+DrpQ0 TCP queue0 에서 drop된 페킷의 개수 (차이값)

[netstat -stcpListenDropQ0 + tcpHalfOpenDrop 컬럼과 같음]

+DrpR TCP 재전송에 끝내 실패하여 타임아웃 되어 drop된 connection 의 개수 (차이값)

[netstat -stcpTimRetransDrop 컬럼과 같음]

ISeg 입력한 TCP 세그먼트의 개수 (초당값)

[netstat -stcpInSegs 컬럼과 같음]

OSeg 출력한 TCP 세그먼트의 개수 (초당값)

[netstat -stcpOutSegs 컬럼과 같음]

IData 입력한 TCP 데이타 양 (초당값)

[netstat -stcpInInorderBytes + tcpInUnorderBytes 컬럼과 같음]

OData 출력한 TCP 데이타 양 (초당값)

[netstat -stcpOutDataBytes 컬럼과 같음]

+Rseg 재전송한 TCP 세그먼트의 개수 (차이값)

[netstat -stcpRetransSegs 컬럼과 같음]

+RData 재전송한 TCP 데이타 양 (차이값)

[netstat -stcpRetransBytes 컬럼과 같음]

+Rst_a TCP connection을 open하는 과정에서 받은 Reset packet의 개수 (차이값)
이것은 TCP connection을 맺을려고 하는 도중에 상대방으로 부터 Reset packet을 수신하였다는 것을 의미한다.

The number of times that TCP connections have made a direct transition to the CLOSED state from either the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition to the LISTEN state from the SYN-RCVD state.

[netstat -stcpAttemptFails 컬럼과 같음]

+Rst_e TCP connection이 ESTABLISHED 상태에서 받은 Reset packet의 개수 (차이값)
이것은 TCP connection이 맺어져서 ESTABLISHED 상태가 되었는데, 상대방으로 부터 Reset packet을 수신하였다는 것을 의미한다.

The number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.

[netstat -stcpEstabResets 컬럼과 같음]

+Rst_o 전송한 TCP Reset packet 개수 (차이값)

The number of TCP segments sent containing the RST flag.

[netstat -stcpOutRsts 컬럼과 같음]

U_DG_i 입력된 UDP datagram의 개수 (초당값)

[netstat -sudpInDatagrams 컬럼과 같음]

U_DG_o 출력한 UDP datagram의 개수 (초당값)

[netstat -sudpOutDatagrams 컬럼과 같음]

+U_NP 오픈되어 있지 않는 UDP 포트에 들어온 페킷의 개수 (차이값)

[netstat -sudpNoPorts 컬럼과 같음]

+U_Ov UDP 버퍼가 full되에 손실된 페킷의 개수 (차이값)

[netstat -sudpInOverflows 컬럼과 같음]

+U_Ck 책섬(check sum) 오류가 발생한 UDP 페킷의 개수 (차이값)

[netstat -sudpInCksumErrs 컬럼과 같음]

+I_Rf IP 단에서 UDP 재조립에 실패한 횟수 (차이값)

네트웍 인터페이스의 MTU 크기보다 더 큰 UDP 데이타를 전송할 경우에 IP 단에서 MTU에 적합한 크기로 짤라서 전송하고, 수신 측에서 이것을 재조립하는데 여기서 문제가 발행한 경우에 횟수가 기록된다.

[netstat -sipReasmFails 컬럼과 같음]

다음은 tcpinfo 명령어의 옵션이다.

옵션설명
-b -b 옵션은 지정하면 전송되는 데이타 양을 byte 단위로 보여준다.
-k -m 옵션은 지정하면 전송되는 데이타 양을 KB 단위로 보여준다.
-m -m 옵션은 지정하면 전송되는 데이타 양을 MB 단위로 보여준다.
-R -R 옵션은 지정하면, 시스템 부팅이후 누적 통계정보를 보여준다.

시스템 내부적으로 4바이트 변수에 통계값을 가지고 있기 때문에 overlap 된 값이 보일 수 있다.

-t -t 옵션은 지정하면, TCP 관련 통계 정보를 보여준다.
-u -u 옵션은 지정하면, UDP 관련 통계 정보를 보여준다.
-V -V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
interval [count] interval의 시간 간격으로 count 횟수 만큼 반복하여 네트웍 인터페이스 정보를 수집한다. count를 지정하지 않으면, 지정한 시간 간격으로 무한히 반복한다.

데이타를 수집할 때, 지정한 시간 간격으로 데이타를 수집한다. 그런데 지정한 시간 간격이 지나도 앞 시간대의 정보를 모두 수집하지 못 했을 때 그 시간대의 데이타는 수집하지 않고 다음 데이타 수집 시간에 데이타를 수집한다.