작성일 댓글 남기기

nestat 알아보기

nestat : 네트워크 상태 모니터링 

  1. 라우팅테이블 확인
  2.  프로토콜 서비스된 통계 
  3. 포트 프로세스들 상태정보
  4.  네트워크 연결 상태 

netstat  옵션 

옵션기능
a모든연결 및 수신대기 포트
c초단위 실행
lLISTEN하고 있는 포트
tTCP 연결된 포트
uUTP 연결된 포트
n주소나 포트 형식을 숫자로 표현
p [프로토콜]해당프로세스를 사용하고 있는 프로그램이름
r라이팅 테이블

netstat -ant

  1. 22,13306 port 대해 상태 LISTEN 되어있어서 연결 가능함
  2. 22 port에 대해 6개 연결 되어 있고 13306 port에 대해 2개 연결되어 있음 

netstat 상태 정보 

상태내용비고
LISTENport Open 상태 연결 요청 대기상태windows LISTENING
SVN_SENT클라이언트가 서버에게  연결 요청 상태SNY 패킷을 보냄
SYN_RECV원격으로 부터 연결 요청을 받은 상태요청을 받아 SYN+ACK 신호로 응답은 한 상태 ACK는 받지 못했다.
SYN_RECV가 많을 경우   TCP SYN 플러딩(Flooding) 공격 의심
ESTABLISHED서로 연결 되어 있는 상태 (SYN–> SYN/ACK –> ACK)
TIME_WAIT연결종료 
CLOSE_WAIT연결이 종료 되길 기다리는 상태 
LAST_WAIK연결이 종료 후 승인대기 상태 
CLOSED연결종료 된 상태 
FIN_WAIT1소켓이 닫히고 연결이 종료되고 있는 상태서버의 응답은 받을 수 있다.
FIN_WAIT2클라이언트가  서버으로 부터 연결 종료 기다리는 상태 
CLOSING연결은 종료되었으나 전송도중 데이타가 분실된 상태 
UNKNOWN소켓의 상태를 알 수 없음 

TCP  정상 연결   

순서TCP (클라이언트)SegmentTCP (서버)
1CLOSED LISTEN  
2SYN-SENTSEQ=1000, SYNSYN-RECEIVED
3ESTABLISHEDSEQ=2000, ACK=1001,SYN ACKSYN-RECEIVED
4ESTABLISHEDSEQ=1001, ACK=2001,ACKESTABLISHED
5ESTABLISHEDSEQ=1001, ACK=2001,ACK DATAESTABLISHED

Backlog 는 2. SNY+ACK 보낼때  Backlog 큐에 저장  , 3. ACK 올때 Backlog 큐에서 제거 

TCP  정상 종료

순서TCP (클라이언트)SegmentTCP (서버)
1ESTABLISHED   ESTABLISHED  
2(Close)  
 FIN-WAIT-1SEQ=1000, ACK=2000,FIN ACKCLOSE-WAIT
3FIN-WAIT-2SEQ=2000, ACK=1001,ACKCLOSE-WAIT
4  (Close)
 TIME-WAITSEQ=2001, ACK=1001,FIN ACKLAST-WAIT
5TIME-WAITSEQ=1001, ACK=2002,ACKCLOSED
6CLOSED  

FIN_WAIT1, FIN_WAIT2, CLOSE_WAIT 3개 상태는 연결 종료를 위해 서로간에  신호를 주고 받는 과정  
close 과정에서 바로 종료 되는 것이 아니라 time wait상태 거치고 약 1~4분동안 유지 한다. 
유지 하는 이유는 TCP는 신뢰성을 보장 하기 위해 서로 CLOSE 확인후 종료 한다. 
tcp_timewait  수치는 Default 60초 이며 권장 수치는 10초 이다  

sysctl -a | grep .tcp_fin_timeoutnet.ipv4.tcp_fin_timeout = 60sysctl -w net.ipv4.tcp_fin_timeout = 10

출처: https://experiences.tistory.com/14 [IT경험]

답글 남기기