42.8. TCP 상태 변경 정보 표시

TCP 세션 중에 TCP 상태가 변경됩니다. tcpstates 유틸리티는 eBPF 함수를 사용하여 이러한 상태 변경 사항을 추적하고 각 상태의 기간을 포함한 세부 정보를 출력합니다. 예를 들어 tcpstates 를 사용하여 연결이 초기화 상태에서 너무 많은 시간을 소비하는지 확인합니다.

절차

  1. 다음 명령을 사용하여 TCP 상태 변경 추적을 시작합니다.

    # /usr/share/bcc/tools/tcpstates
    SKADDR           C-PID C-COMM     LADDR     LPORT RADDR       RPORT OLDSTATE    -> NEWSTATE    MS
    ffff9cd377b3af80 0     swapper/1  0.0.0.0   22    0.0.0.0     0     LISTEN      -> SYN_RECV    0.000
    ffff9cd377b3af80 0     swapper/1  192.0.2.1 22    192.0.2.45  53152 SYN_RECV    -> ESTABLISHED 0.067
    ffff9cd377b3af80 818   sssd_nss   192.0.2.1 22    192.0.2.45  53152 ESTABLISHED -> CLOSE_WAIT  65636.773
    ffff9cd377b3af80 1432  sshd       192.0.2.1 22    192.0.2.45  53152 CLOSE_WAIT  -> LAST_ACK    24.409
    ffff9cd377b3af80 1267  pulseaudio 192.0.2.1 22    192.0.2.45  53152 LAST_ACK    -> CLOSE       0.376
    ...

    연결이 해당 상태를 변경할 때마다 tcpstates 는 업데이트된 연결 세부 정보가 포함된 새 행을 표시합니다.

    여러 연결이 동시에 상태를 변경하는 경우 첫 번째 열의 소켓 주소를 사용하여 동일한 연결에 속하는 항목을 확인합니다.

  2. Ctrl+C 를 눌러 추적 프로세스를 중지합니다.

추가 리소스

  • tcpstates(8) 매뉴얼 페이지
  • /usr/share/bcc/tools/doc/tcpstates_example.txt file