소켓이란?

소켓은 네트워크 연결에 필요한 규약을 따르는 연결 엔드포인트다. TCP/IP 프로토콜 위에서 동작하며, 컴퓨터 간 데이터를 주고받는 인터페이스 역할을 한다.

TCP/IP는 데이터를 주고받는 규칙의 집합으로, 인터넷 통신의 기본이 되는 프로토콜이다. TCP, UDP, IP, PORT 모두 이 프로토콜 스택의 일부다.

소켓과 OSI 7계층

소켓은 OSI 7계층 중 전송 계층(4계층)과 세션 계층(5계층) 사이에서 동작한다.

계층역할
전송 계층TCP/UDP 프로토콜 처리
세션 계층연결 설정, 유지, 해제 관리

소켓 통신 구조

서버 소켓

서버 소켓은 연결을 기다리고 클라이언트의 요청을 수락하는 역할을 한다.

  1. bind(): 특정 포트에 소켓 바인딩
  2. listen(): 연결 요청 대기
  3. accept(): 클라이언트 연결 수락
  4. send()/recv(): 데이터 송수신
  5. close(): 연결 종료

클라이언트 소켓

클라이언트 소켓은 서버에 연결을 요청하고 데이터를 교환한다.

  1. connect(): 서버에 연결 요청
  2. send()/recv(): 데이터 송수신
  3. close(): 연결 종료

주요 소켓 API

플랫폼라이브러리
Node.jssocket.io
SpringWebSocket, STOMP
Pythonsocket 모듈

키워드

  • TCP/IP 프로토콜 기반 통신
  • 전송 계층과 세션 계층에서 동작
  • 서버: bind → listen → accept → send/recv → close
  • 클라이언트: connect → send/recv → close