netstat 명령
- 네트워크 연결상태, 라우팅 테이블, 인터페이스 상태등을 보여주는 명령어
netstat -na
- 해당 컴퓨터에 연결된 컴퓨터의 ip와 열려진 port와 protocol 타입을 보여줌
- n : 호스트명, 포트명을 lookup하지 않고 그대로 ip, port번호로 보여준다
- a : 모든 네트웍 상태를 보여준다
- t : TCP 프로토콜만 보여준다
- u : UDP 프로토콜만 보여준다
- p : 해당 포트를 사용하는 프로그램과 프로세스ID(PID)를 보여준다
- r : 라우팅 테이블 출력
- s : 프로토콜별(ip, icmp, tcp, udp 등)로 통계를 보여준다
- c : 1초 단위로 연속적으로 보여준다
TCP state
LISTEN : 서버의 데몬이 떠서 접속 요청을 기다리는 상태
SYN-SENT : 로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태
SYN_RECEIVED : 서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태
ESTABLISHED : 3 way-handshaking 이 완료된 후 서로 연결된 상태
FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태
CLOSING : 흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태
TIME-WAIT : 연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어두고 있는 상태
CLOSED : 완전히 종료
3 way - handshaking
- client에서 웹서버로 연결을 최초시도시 먼저 SYN 패킷을 보낸다
- SYN 패킷을 보낸 클라이언트는 SYN-SENT 상태가 된다
- server에서 CLOSED는 port가 닫혀잇는 상태를 뜻하고, 포트가 서비스 가능한 상태인 LISTEN 상태로 만들어 주어야 한다
- LISTEN상태에서 클라이언트로부터 SYN 패킷을 받으면 이에 대한 응답으로 SYN+ACK 패킷을 클라이언트로 보낸다
- server로부터 SYN+ACK 패킷을 받으면, 클라이언트는 ESTABLISHED상태로 변하게 되면서 연결을 확인한다
- 클라이언트는 server에 대한 응답으로 ACK 패킷을 보낸다
- server는 이 ACK 패킷을 받고 해당 클라이언트 IP에 대한 포트 ESTABLISHED상태로 전환
- 이로써 server와 클라이언트의 TCP 3 way handshaking 과정을 마치게 된다
0.0.0.0과 ::의 의미
- 모든 local address를 받을 수 있다는 의미, any의 표기 법
- 0.0.0.0은 IPv4에서의 any의 의미
- ::은 IPv6에서의 any의 의미
[출처] 임영준SE
'책 > DB' 카테고리의 다른 글
DBMS 종류 (Oracle, MySQL 등) 에 대한 이해 (0) | 2015.03.03 |
---|---|
Web : http code에 대한 이해 (0) | 2015.03.03 |
Disk, Network 이중화의 종류, 목적에 대한 이해 (0) | 2015.03.03 |
DAS, NAS, SAN 에 대한 이해 (0) | 2015.03.03 |
WAS : Web 서버와 연동하여 사용하는 환경에 대한 이해 (0) | 2015.03.03 |