netstat 에서 나오는 용어들을 알고 싶습니다.
글쓴이: cguy / 작성시간: 수, 2003/08/06 - 10:38오후
netstat -nap 쳤을때 State 탭에 나오는 용어를 알고 싶습니다.
ESTABLISHED , LISTEN , SYN_RECV , TIME_WAIT , FIN_WAIT2
검색을 해봐도 적합한 답을 얻지 못했습니다.
답변 주실분들께 미리 감사드립니다.
그럼 리눅스 선배님들의 지도 부탁합니다.
Forums:
man netstat 하니 쭉 나오네요..제가 설명하는것
man netstat
하니 쭉 나오네요..
제가 설명하는것 보다... man페이지가 나은듯 하네요..
처음에 리눅스 공부하면서 잘모르겠으면 man으로 참고해보세요..
정말 많은 정보가 있습니다.
그리고 스티븐 아저씨책 TCP/IP VOL 1책을 참고하셔셔 읽어보세요..
..
질문을 쓰기전에 man page 는 참고했으나 이해가 가지 않네요. 흑흑.
쉬운내용이라 귀찮으시겠지만 제가 질문드린 용어좀 이해하기 쉽게
설명해주시면 감사하겠습니다.
[code:1] TCP A
위의 내용을 보면 어느 정도 이해가 될 수 있으리라 생각됩니다.
1. CLOSED LISTEN
TCP A는 클라이언트 측이며, TCP B는 서버 측이라고 생각하면 되겠네요. 클라이언트는 연결을 위한 소켓이 사용중이지 않으며(closed), TCP B는 연결요청이 들어오면 응답하기 위해 대기중입니다.(listen) STATE 탭에서 listen은 서버에서 현재 서비스가 가능한 목록이라고 봐도 되겠네요.
2. SYN-SENT --> <SEQ=100><CTL=SYN> --> SYN-RECEIVED
클라이언트가 서버에 접속하기 위해 어떤 일련번호(SEQuence number)로 된 SYN 메시지를 보냅니다. 서버에서는 이 메시지를 수신(SYN_RECV)하고 응답을 보내게 됩니다.
3. ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK> <-- SYN-RECEIVED
서버에서는 클라이언트가 보낸 SYN 메시지(SEQ=100)를 잘 받았다는 뜻으로 여기에 1을 더하여 ACK=101 과 자신의 SYN 메시지(SEQ=300)을 보내어 서버와 클라이언트 사이의 연결이 성립됩니다.(ESTABLISHED)
4. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK> --> ESTABLISHED
5. ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED
4번 과정은 3번의 역으로 생각하면 되겠고, 성공적으로 연결이 성립되어 5번에서 데이터를 전송하고 연결을 종료합니다. 막상 글로 적으려니 생각처럼 설명이 되지 않는군요. RFC 793에 나오는 내용입니다. 참고하시고요, 네트워크 책의 TCP Handshake에 관련된 부분을 참고하시면 도움이 될 것 같습니다.
Unix Network Programming Vol.1 의앞부분을 보
Unix Network Programming Vol.1 의
앞부분을 보면 잘 나와있습니다. :D
댓글 달기