728x90
반응형
SMALL
📌 netstat란?
- netstat = Network Statistics의 약자 - 네트워크 상태를 보여주는 명령어 - 리눅스 환경과 윈도 cmd 모두 사용 가능 - 네트워크의 문제를 찾아내고, 성능 측정으로서 네트워크 상 트래픽 양을 결정하기 위해 사용됨 |
📌 netstat 명령 옵션
- a (all) | 모두 보여주기(현재 다른 pc와 연결되어있거나 대기중인 모든 포트번호 확인 ) |
- n (number port) | 도메인 주소 대신 숫자 출력(주소를 ip로 표시) |
- o | 프로세스 번호를 알려줘서 작업관리자에 추적이 가능해짐 |
- b | 각 연결에 사용되는 응용프로그램의 이름을 출력한다. |
- p(PID) | Pid 와 Program 명 표시 |
- l (Listen) | 대기중인 소켓 리스트만 보여줌 |
- t (TCP) | TCP 프로토콜 보기 |
- u (UDP) | UDP 프로토콜 보기 |
📌 netstat 상태 값
CLOSED | 완전히 연결이 종료된 상태 |
CLOSING | 흔하지 않으나 주로 확인 메세지가 전송 도중 유실된 상태 |
CLOSE_WAIT | TCP연결이 상위 응용프로그램 레벨로부터 연결 종료를 기다리는 상태 |
ESTABLISHED | 서버와 클라이언트 간에 세션 연결이 성립되어 통신이 이루어지고 있는 상태 (클라이언트가 서버의 SYN을 받아서 세션이 연결된 상태) |
FIN_WAIT1 | 클라이언트가 서버에게 연결을 끊고자 요청하는 상태 (FIN을 보낸 상태) |
FIN_WAIT2 | 서버가 클라이언트로부터 연결 종료 응답을 기다리는 상태 (서버가 클라이언트로부터 FIN 받은 후, 클라이언트에게 ACK 보냈을 때) |
LAST_ACK | 호스트가 원격지 호스트의 연결 종료 요구 승인을 기다리는 상태 (서버가 클라이언트에게 FIN을 보냈을 때) |
LISTEN | 서버의 데몬이 떠 있어서 클라이언트의 접속 요청을 기다리고 있는 상태 |
SYN_SENT | 클라이언트가 서버에게 연결을 요청한 상태 |
SYN_RECEIVED | 서버가 클라이언트로부터 접속 요구(SYN)를 받아 클라이언트에게 응답 (SYN/ACK)하였지만, 아직 클라이언트에게 확인 메세지 (ACK)는 받지 못한 상태 |
TIME_WAIT | 연결은 종료되었지만 당분간 소켓을 열어놓은 상태, 약 1분정도이며 시간이 지나면 사라짐 |
UNKNOWN | 소켓의 상태는 알 수 없음 |
📌 netstat 자주 사용하는 예시
netstat -nap : 연결을 기다리는 목록과 프로그램을 보여준다. netstat -an | grep 포트번호 : 특정 포트가 사용 중인지 확인한다. (grep 명령어는 windows에서 사용못함) netstat -nlpt : TCP listening 상태의 포트와 프로그램을 보여준다. netstat -anb : 자세한 라이브러리까지 보여주어 유용성이 커 보이지만 결과를 호출하는 시간이 오래걸린다. netstat -ano : -anb 대용으로 사용되어서 PID를 표시한다. netstat 명령어 뒤에 숫자를 붙이면 ex) 5 5초에 한 번씩 명령어를 친 결과가 출력된다. |
📌 netstat 관련 내용
프로토콜 | 로컬주소(내부 IP) | 외부주소(외부 IP) | 포트 | 상태 |
네트워크상 사용되는 약속된 절차(TCP/UDP) |
현재 사용하고 있는 컴퓨터의 IP 주소 |
컴퓨터가 연결하고자 하는 주소 | 컴퓨터에서 네트워킹에 사용할 프로그램에 할당하는 번호 | TCP전용으로 접속중인 컴퓨터에 대한 내 컴퓨터의 네트워크 상태 |
- 127.0.0.1 : localhost라고도 하며 자신의 컴퓨터를 의미 - 0.0.0.0 : 모든 local address를 받을 수 있다는 의미 |
📌 프로토콜이란(Protocol)?
- netstat 명령어에는 프로토콜이 나타난다. - 프로토콜이란 양쪽에서 서로 통신을 하기 위한 일종의 약속이다. - 전송계층에서는 TCP와 UDP 프로토콜이 대표적이다. |
📌 TCP (Transmission Control Protocol) 프로토콜이란?
- 현재 가장 많이 사용되고 있는 프로토콜로 연결에 중점을 두고 있는 프로토콜이다. - 데이터를 전송하는 측과 데이터를 전송받는 측에서 전용의 데이터 전송 선로를 만든다. 즉, 연결 지향적이다. - 데이터의 신뢰도가 중요하다고 판단될때 주로 사용된다. - 일반적으로 TCP와 IP는 함께 사용되며, IP는 배달을 TCP는 패킷의 추적 및 관리를 하게 된다. - TCP 프로토콜은 연결과정에 3 Way handshaking 과정을 거친다. 1. 송신자가 수신자에게 "데이터를 보내도 될까?"라는 신호를 전달 2. 수신자가 송신자에게 "ㅇㅋ 보내도 돼." 라고 확인 신호를 전달 3. 다시 송신자가 "ㅇㅋ 보낼게." 라고 확인 신호를 전달 - 이는 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달을 시작하기 전에 한쪽이 다른쪽에서 준비되었다는 것을 알 수 있도록 한다. - 즉 TCP는 신뢰도 확보가 중요하거나 용량이 큰 데이터를 전달해야할 경우, 실시간일 필요가 없을때 활용한다. - 이는 연결이 성립되었음에도, 전송되는 데이터를 상대가 무사히 받았는 지 매번 확인한다는 점에서 속도가 느리다. - 대신 데이터의 무결성, 연결의 안정성이 요구되는 작업에서 사용되고 있다. |
📌 UDP (User Datagram Protocol) 프로토콜이란?
- 데이터를 데이터그램 단위로 처리하는 프로토콜이다 - 비연결형 프로토콜로서, 할당되는 논리적인 경로가 없고 각각의 패킷이 다른 경로로 전송되고 이 각각의 패킷은 독립적인 관계를 지니게 되는데, 데이터를 서로 다른 경로로 독립적으로 처리하는 프로토콜이다. - 상대에게 데이터를 전송하지만 상대의 수신가능성 여부, 연결상태, 데이터 손상, 누락은 감안하지 않는다. - TCP 보다 속도가 상대적으로 빨라, 동영상 스트리밍, voip같은 통신에서 사용된다. - 신뢰성이 낮다. |
📌 포트번호란?
- 포트번호란 네트워킹에 사용되는 프로그램에 대해 운영체제가 붙여주는 번호다. - 운영체제는 우리가 흔히 사용하는 HTTPS / FTP / SSH 등 여러가지 프로그램들에 대해 번호를 할당하고 있다. - 컴퓨터를 건물에 비유하자면, 포트번호는 건물의 호실번호라고 생각하면 된다. - 즉, 해당 IP 주소가 가리키는 PC에 접속할 수 있는 통로다. - A아파트 이름을 IP 주소라고 가정할 때, 00동 00호로 상세한 집 주소를 나타내는 역할이 port 번호라 생각하면 된다. - 포트 번호는 0 ~ 65535번까지 있는데, 하나의 pc로 연결 할 떄 포트 번호에 따라 6만가지 이상으로 구분이 가능하다. ① 잘 알려진포트 : 0~ 1023 번 (http : 80포트 / SSH : 22포트) ② 등록된 포트 :1024 ~49151번 ③ 동적 포트 : 49152 ~65535번 - 일반적으로 컴퓨터 웹서버는 기본적으로 80번 포트와 연결(Listening)되어 있다. - 만약 웹서버를 하나 더 사용하고 있는 경우, 기존의 80번 포트는 이미 사용 중이기에 사용할 수 없다. - 그런 경우에는 잘알려진 포트가 아닌 다른 포트들과 연결하는 데 주로 8080포트를 많이 사용한다 (tomcat) |
아래 사이트에 접속하면 포트번호를 검색할 수 있다.
https://wintelguy.com/port-search/
📌 참조사이트
https://itknowledgeshare.tistory.com/115
https://code-killer.tistory.com/111
https://m.blog.naver.com/heosj95/221350509878
728x90
반응형
LIST
'NetWork > 네트워크 기초이론' 카테고리의 다른 글
[네트워크] ChatGPT로 공부하는 네트워크 기본 - 0.공부 커리큘럼 (0) | 2024.07.05 |
---|---|
[네트워크기초이론] 6. 멀리 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다 (0) | 2023.05.04 |
[네트워크기초이론] 5. 통신하기 전 반드시 필요한 ARP 프로토콜 (0) | 2023.05.03 |
[네트워크기초이론] 4. 실제로 컴퓨터끼리는 IP주소를 사용해 데이터를 주고받는다 (0) | 2023.05.03 |
[네트워크기초이론] 3. 가까이 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다. (0) | 2023.05.03 |