리눅스/유닉스 환경에서 네트워크 관련 프로그램 운용시 상태를 보기 위해 netstat 명령어를 많이 사용한다. 명령어 실행 결과로 표시되는 값과 이때의 status 값이 의미하는 바는 다음과 같다(아래는 시스코 홈페이지(https://www.cisco.com/assets/sol/sb/CVR100W_GUI_EN/help/EN_help/status13.html)의 설명 내용 번역).
연결 시작 과정
연결 종료 과정
netstat 상태 값
항목 | 설명 | |
Proto | 소켓에서 사용중인 프로토콜 (TCP, UDP, or raw) | |
Recv-Q | 소켓에 연결된 사용자 프로그램이 복사하지 않은 바이트 수 | |
Send-Q | 원격 호스트에서 확인하지 않은 바이트 수 | |
Local Address | 로컬 주소(ip) 포트 | |
Foreign Address | 원격 주소(ip) 포트 | |
State | 소켓 상태. Raw mode나 UDPD에서는 상태값이 없기 때문에 빈값일수 있음 | |
ESTABLISHED | - 소켓이 연결된 상태 | |
SYN_SENT | - 클라이언트가 서버에게 연결을 요청하는 중 | |
SYN_RECV | - 네트워크로부터 연결 요청을 받는 중 | |
FIN_WAIT1 | - 소켓이 닫혔고 연결이 종료되는 중 - FIN(연결을 끊기 위한 요청)을 보낸 상태 |
|
FIN_WAIT2 | - 연결이 종료되었고 소켓이 원격지의 종료를 기다리고 있는 중 - 서버가 클라이언트로부터 FIN을 받은후 클라이언트에게 ACK를 준 상태 |
|
TIME_WAIT | - 소켓이 아직 네트워크에 있는 패킷을 처리하기 위해 대기중(연결은 종료된 상태) | |
CLOSED | - 연결이 완전 종료됨 | |
CLOSE_WAIT | - 연결 종료 대기중인 상태 | |
LAST_ACK | - 원격지의 연결 종료 요청 승인을 기다리는 상태 | |
LISTEN | - 서버가 클라이언트의 접속 요청에 대기중인 상태 | |
CLOSING | - 양쪽 소켓이 연결을 종료하였으나 모든 보낸 데이터를 모두 받지 못한 상태 | |
UNKNOWN | - 소켓의 상태를 알수 없음 |
과도하게 연결이 빈번한 경우 TIME_WAIT의 갯수를 측정하고 그 갯수가 줄어드는지 확인해 봐야 한다. FIN_WAIT1, FIN_WAIT2, CLOSE_WAIT등은 응용 S/W의 버그로 인해 처리가 안되고 남는 경우도 발생할수 있는데 장기적으로 봤을때 이러한 것들이 누적되면 서버 장애로 발생하기 때문에 그전에 조치를 취해야 한다.
반응형
'IT 기술 관련 > OS 관련 (linux,window,mac)' 카테고리의 다른 글
[linux] vi명령어 정리 (0) | 2023.07.04 |
---|---|
[linux] 메모리 캐시 삭제 (0) | 2023.06.20 |
[mac] 사용 포트 확인 및 강제 종료 (0) | 2023.06.20 |
[mac] 윈도우 키보드 한영 전환 단축키 (일본어키로 인식) (0) | 2023.06.14 |
[mac] ls -l 명령어 결과화면의 권한 항목에 @가 붙는 경우 (0) | 2023.06.12 |