달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]
-a 모든 커넥션 - 모든 접속 및 listen 포트 정보 알아내기
-e Ethernet 통계정보
-n 주소와 포트 정보
-p proto 지정된 프로토콜과 관련된 커넥션 정보
   netstat -s -p tcp 3 (tcp관련된 패킷량을 3초 마다 다시 보여주기)
-r 라우팅 테이블 정보
interval 통계 정보를 지정 시간마다
 

netstat 상태확인시 서버 프로그램에서는 connection갯수가 11개이고
                   클라이언트 쪽에는 conection갯수가 10개인 경우
서버와 클라이언트가 연결을 끊을때
1. 클라이언트가 서버에게 연결을 끊겠다고알린다.
2. 서버는 클라이언트에게 알았다고 대답한다.
3. 클라이언트는 이 응답을 받고 연결을 끊는다.
4. 하지만 서버는 연결을 바로 끊지않고 일정시간동안 연결을 유지시킨다
   - 서버가 클라이언트로부터 연결을 끊겠다는 신호를 받고 알았다고 응답패킷을
     보냈는데 클라이언트가 이것을 받지 못하고 다시 서버측에 연결을 끊겠다고 신호를 보낼때가 있다.
     이때 서버쪽에서 바로 연결을 끊어버렸다면 이 신호를 무시하게 될테고,
     클라이언트는 연결을 끊기 위해 서버쪽에 계속 신호를 보낼수 있기 때문이다.

State
state는 TCP Connection state를 말하는 것으로 아래와 같은 의미를 가진다.
CLOSED      - TCP 소켓의 최초상태
              또는 서버로 SYN을 보낸후 SYN-ACK를 못 받아서 TIME OUT 된 상태
CLOSE_WAIT  - 애플리케이션이 FIN패킷을 받고 ACK를 보낸상태
SYN_SENT    - TCP소켓을 성립시키기 위해 SYN 패킷을 서버쪽으로 보낸 상태
ESTABLISHED - SYN을 보내고 SYN-ACK를 받은후 ACK패킷을 서버쪽으로 보낸 상태
FIN_WATE_1  - 소켓 종료를 위해 FIN 패킷을 보낸 상태
FIN_WAIT_2  - FIN 패킷을 보내고 FIN_ACK를 받은 상태
TIME_WAIT   - FIN_WAIT_2에서 상대가 FIN을 보내고 그것에 대해 ACK로 답한후의 상태
              LAST_ACK이 손실될 경우를 대비해서 2MSL을 대기한 후 CLOSED로 바뀐다.

LISTEN
서버 애플리케이션이 적재되어 수동적인 모드로 포트를 개설하였음을 의미.
TCP는 연결 요청이 수신 되기를 기다림

SYN-SENT
로컬 시스템의 클라이언트 애플리케이션이 원격 호스트에 능동적인 개설을
요청. TCP는 Synchronize flag 를 설정한 시작 세그먼트를 전송 하였으며, 원격 시스
템도 역시 Synchronize flag 를 설정한 시작 세그먼트로 응답할 것을 기다림.

SYN-RECEIVED
서버의 TCP가 원격 클라이언트로부터 Synchronize flag가 설정된 시작 세
그먼트를 수신하였고 자신의 시작 세그먼트로 응답 하였으며, 그 세그먼트에 대한 확인
메세지를기다림.

ESTABLISHED
가상회선이 작동. 3단계 핸드셰이킹 과정이 완료되면 두 시스템은 이 상태
에 들어감.

FIN-WAIT-1
로컬 애플리케이션은 가상 회선에 능동적인 종결을 요청하였으며, TCP는
Finish flag가 설정된 종결 세그면트를 전송. 그러나 TCP는 아직도 원격 시스템이 세그
먼트에 대한 확인 메세지와 자신만의 종결 세그먼트로 응답하기를 기다림. 회선이 완
전히 종결될 때까지 원격 시스템으로부터 데이터는 수신하지만, 추가적인 데이터를 전
송하지는않음.

COLSE-WAIT
(FIN-WAIT-1 의 설명과 같이) Finish flag 가 설정된 종결 세그먼트가 수신
되었고 로컬 TCP는 그 세그먼트에 대한 확인 메세지를 송신 시스템에 전송함. 그러
나 로컬 TCP는 로컬 애플리케이션에서 작업을 종료하지않아 자신의 종결 세그먼트를 생
성하지 못함
 
FIN-WAIT-2
(FIN-WAIT-1 의 설명과 처럼) 로컬 TCP는 Finish flag 가 설정된 종결 세그
먼트를 전송하였으며, (WAIT-CLOSE 의 설명대로) 원격 시스템으로 부터 그 세그먼
트에 대한 확인 메세지를 수신함. 그러나 원격 애플리케이션이 아직 작업을 종료 하지 않
아 원격TCP가 자신의 종결 세그먼트를 생성하지 못하고 있는 상태임.
 
LAST-ACK
(FIN-WAIT-1의 설명과 같이) Finish flag 가 설정된 종결 세그먼트가 수신되
었고, 로컬 애플리케이션은 회선의 종결에 합의하여 자신도 종결을 요청함. 그 결과
로컬 TCP는 Finish flag 가 설정된 자신의 종결 세그먼트를 전송 하였으며, 이 세그먼
트에 대한 확인 메세지가 수신되면 종결됨.
 
CLOSING
이 상태는 흔하지 않으며, 일반적으로 세그먼트가 네트워크에서 분실되었다
는것을 나
타냄. 이런 경우 로컬 TCP는 (FIN-WAIT-1 의 설명과 같이) Finish flag 가
설정된 종결 세그먼트를 전송 하고 (LAST-ACK 의 설명과 같이) 원격 시스템의 종결
세그먼트도수신하였지만, FIN-WAIT-1 단계에서 전송한 세그먼트에 대한 확인 메세지
가 수신되지않은 상태임. 이 상태는 보통 확인 메세지가 전송 도중 분실되었다는 의미임.
 
TIME-WAIT
회선의 종결 절차가 완결되었으나 TCP 는 분실되었을지 모르는 느린 세그
먼트를 위해 당분간 소켓을 열어 놓은 상태로 유지. 이 상태는 새로운 연결이 기존의 연결
에서 사용된 일련번호를 다시 사용하는 것을 막음. 원격 시스템이 종결하는 호스트
로부터 더이상 데이터를 수신할 가능성이 없으므로, 이 상태는 능동적인 종결을 요청
한 호스트에서만 나타남.
 
CLOSED
아무일도 발생하지 않음. 회선은 종결되었고, TCP는 그 가상 회선에 사용하
였던 모든자원을 놓아줌. 이 상태를 보여줄 수 있는 가상 회선이 없으므로 아무 일도
발생하지 않음.

'OS > LINUX' 카테고리의 다른 글

뻘짓거리.. ㅡㅡ;  (0) 2004.12.16
[펌] [Apache] httpd.conf 환경설정  (0) 2004.12.08
[펌] FreeBSD설치 안내서  (0) 2004.11.11
[펌] Installing Oracle9i on FreeBSD  (0) 2004.11.11
[펌] FreeBSD 5.0 설치하기  (0) 2004.11.11
Posted by tornado
|