비정상 상태를 정리하면 다음과 같다.

1. SYNC_RECV
  • LISTEN하는 서버쪽에서 나타나며 SYN를 받고 이에대한 SYN를 보냈으나 ACK를 받지 못한 상태
  • 정상적인 접속 요청이 아닌 flood 어택인 경우 혹은 remote가 보낸 ACK 세그멘트가 유실된 경우

2. CLOSE_WAIT
  • remote의 FIN을 받아는데도 local에서 close()를 호출하지 않은 상태
  • 현재 local이 CLOSE_WAIT라는 것은 read()호출시 리턴값이 -1으로 알 수 있다.

3. FIN_WAIT_1
  • local에서 close()를 호출했는데 이에 대한 ACK를 받지 못한 상태.
  • ACK 세그먼트의 유실이 원인

4. FIN_WAIT_2
    - local에서 close()를 호출했으나, remote에서 close()를 하지 않은 경우

5. TIME_WAIT
  • 갯수가 적은것은 정상
  • 갯수가 많을 경우는 FIN_WAIT_2에서 전이한 것으로, FIN_WAIT_2와 원인이 같다.


소켓 상태 정리

1. SYNC_SENT
local에서 connect()를 호출하고 SYN을 못받은 상태
2. SYNC_RECV
LISTEN 상태의 local에서 SYN을 받고, 이에 대한 SYN를 보냈으나 ACK를 받지 못한 상태
3. CLOSE_WAIT
local에서 FIN을 받았는데도  close()를 호출하지 않은것이다.
4. FIN_WAIT_1
local에서 close()를 호출했는데, remote로 부터 ACK를 받지 못한것. 네트워크 문제
5. FIN_WAIT_2
local에서 close()를 호출했는데, remote가 close()를 호출하지 않은것
6. TIME_WAIT
FIN_WAIT_2에서 일정시간 이후의 상태


netstat

1. ESTABLISHED
     The socket has an established connection.
2. SYN_SENT
     The socket is actively attempting to establish a connection.
3. SYN_RECV
     A connection request has been received from the network.
4. FIN_WAIT1
     The socket is closed, and the connection is shutting down.
5. FIN_WAIT2
     Connection is closed, and the socket is waiting for a shutdown from the remote end.
6. TIME_WAIT
     The socket is waiting after close to handle packets still in the network.
7. CLOSED 
     The socket is not being used.
8. CLOSE_WAIT
     The remote end has shut down, waiting for the socket to close.
9. LAST_ACK
     The remote end has shut down, and the socket is closed. Waiting for acknowledgement.
10. LISTEN 
     The socket is listening for incoming connections.
11. CLOSING
     Both sockets are shut down but we still don't have all our data sent.
12. UNKNOWN
     The state of the socket is unknown.

'프로그래밍 > 네트워크' 카테고리의 다른 글

MTU와 MSS  (0) 2010.03.29
IMAP과 POP의 비교  (0) 2010.01.27
Post Office Protocol(POP3)  (0) 2009.09.21
Active Object 패턴  (0) 2009.09.08
소켓 상태 전이  (2) 2009.07.29
Windows I/O 모델  (0) 2009.07.29
리틀엔디안(Little endian)과 빅엔디안(Big endian)  (0) 2009.07.29
Posted by devop

댓글을 달아 주세요

  1. 저위에 컬러로 된 그림 원문 출처는 어딘가요?

    2010.01.04 17:00 [ ADDR : EDIT/ DEL : REPLY ]
    • TCP state로 구글검색해보면 저 그림을 포함하여 많은 그림들이 나옵니다.

      2011.04.22 23:10 [ ADDR : EDIT/ DEL ]