본문 바로가기
네트워크

소켓

by 개발자doc 2024. 6. 16.
목차
1. 소켓?
2. 어떻게 이루어져 있나?
3. 소켓확인 방법

1. 소켓?
  • 네트워크에서 전송계층와 응용계층을 이어주는 역할을 하는 인터페이스

네트워크를 통해 통신을 진행할 때 전송계층에서 바로 응용프로그램에 보내지 않는다. 전송계층까지 온 데이터를 응용계층의 프로세스까지 전달할 수 있어야 하는데 그 역할을 소켓이라는 것을 통해 진행한다. 

소켓은 프로그램이 통신을 시도할 때 생성하며 통신에 필요한 정보를 가지고 있다. 

 

2. 어떻게 이루어져 있나?

1) 인터넷 프로토콜

2 ) IP

3 ) PORT

4 ) 상태

소켓의 현재 상태를 의미하고 다음과 같은 유형이 있다

LISTEN 서버 소켓이 클라이언트의 연결 요청을 기다리는 상태
SYN_SENT 클라이언트 소켓이 서버로 SYN 패킷을 보낸 상태.
SYN_RECEIVED 서버 소켓이 클라이언트로부터 SYN 패킷을 받고, SYN-ACK 패킷을 보낸 상태.
ESTABLISHED 클라이언트와 서버 간의 연결이 성립된 상태.
FIN_WAIT, CLOSE_WAIT, LAST_ACK등 연결 종료

 

3. 소켓확인 방법

소켓은 컴퓨터에서도 확인이 가능하다. 해당 명령을 프롬프트 또는 터미널에 입력하면 통신에 필요한 소켓을 확인할 수 있다.

netstat

해당 명령어 만으로도 소켓을 볼 수 있지만 옵션을 통해 필요한 정보만 표시할 수도 있다.

-l Listen중인 소켓을 표시
-p 소켓의 pid와 프로그램의 이름을 표시
-n 주소를 숫자로 표시
-i 인터페이스 정보표시
-t tcp 소켓을 표시
-u udp소켓을 표시
-r 라우팅 소켓을 표시
-a 모든 소켓 표시
-c 매 초 명령실행

 

또한 소켓 말고 통신시 데이터 전송에 사용되는 버퍼도 표시된다.

  • Recv-Q : 전송받은 데이터 중 처리하지 못한 데이터
  • Send-Q : 전송은 되었으나 처리되지 않고 대기하는 데이터

 

 

참고자료

https://blog.naver.com/tescom9/50041179020

 

netstat 의 Send-Q, Recv-Q의 의미

netstat 의 Send-Q, Recv-Q의 의미Posted 2007/10/16 21:09 by ijbaek QUESTION:netstat 의 ...

blog.naver.com

https://reakwon.tistory.com/221

 

[리눅스] socket의 상태를 확인 - netstat 명령어 개념과 사용 방법 모음

리눅스 네트워크 프로그래밍에 관한 더 많은 정보와 예제를 담은 리눅스 교재를 배포했습니다. 아래의 페이지에서 리눅스 교재를 받아가세요. https://reakwon.tistory.com/233 리눅스 프로그래밍 note 배

reakwon.tistory.com

 

'네트워크' 카테고리의 다른 글

요청헤더 내용분석  (0) 2024.06.07
네트워크의 내 주소 IP  (0) 2024.06.02
HTTP?  (0) 2024.06.01
어디로 접속해야돼?...PORT  (0) 2024.05.30
TCP vs UDP  (0) 2024.05.26