netstat은 접속되어있는 서비스들의 네트워크 상태를 표시하는데 사용한다.
네트워크접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여준다.
주로 서비스의 포트가 열려있는지 확인할 때 쓴다고 한다.
옵션
-l : 연결 가능한 상태( Listen )
-n : 포트넘버 ( number port )
-t : tcp (tcp)
-u : udp (udp)
-p : 프로그램 이름(pid)
-r : 라우팅테이블
-s : 네트워크통계
-i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인
-a : 모두
netstat 상태값
State | Description |
CLOSED | 완전히 종료된 상태 |
CLOSING | 흔하지 않으나 주로 확인 메시지가 전송 도중 유실된 상태 |
UNKONWN | 소켓의 상태 태가 온술 수 없음 |
ESTABLISHED | 서버와 클라이언트 간에 세션 연결이 성립되어 통신이 이루어지고 있는 상태 (클라이언트가 서버의 SYN을 받아서 세션이 연결된 상태) |
SYN_SENT | 클라이언트가 서버에게 연결을 요청한 상태 |
CLOSE_WAIT |
TCP 연결이 상위 응용프로그램 레벨로부터 연결 종료를 기다리는 상태
|
FIN_WAIT1 |
클라이언트가 서버에게 연결을 끊고자 요청하는 상태(FIN을 보낸 상태)
|
FIN_WAIT2 |
서버가 클라이언트로부터 연결 종료 응답을 기다리는 상태
(서버가 클라이언트로부터 최초로 FIN을 받은 후, 클라이언트에게 ACK를 주었을 때 |
TIME_WAIT |
연결은 종결되었지만 당분간 소켓을 열어 놓은 상태, 약 1분 정도이며 시간이 지나면 사라짐
|
TIME_WAIT은 설명과 마찬갈지로 연결을 완전히 닫지않고 소켓을 열어둔다.
이는 지연패킷이 발생할 경우를 대비하기 위함이다.
패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 나타난다.
두번째는 두 장치가 연결이 닫혔는지 확인하기 위해서이다. 만약 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어있기 때문에 접속오류가 나타나게 될 것이다.
출처
면접을 위한 CS 전공지식 노트 page 85,86
'네트워크' 카테고리의 다른 글
네트워크에 대한 이해 (0) | 2022.07.29 |
---|