DevOps BootCamp/네트워크 기초

Session Layer - Socket(소켓)

cloudmaster 2023. 4. 6. 13:33

소켓(Socket)

"네트워크 환경에서 클라이언트와 서버가 서로 연결할 수 있게 만들어진 연결부"를 의미

네트워크 상에서 돌아가는 두 개의 프로세스 간 양방향 통신의 하나의 엔드포인트

 > 엔드포인트는 IP주소와 PORT 번호의 조합

 

[출처] 코드스테이츠

- 포트 번호에 바인딩되어 전송계층에서 데이터를 주고받는 애플리케이션을 식별

- 어플리케이션 계층에 존재하는 프로세스들은 데이터를 주고받기 위해 소켓을 거쳐 전송 계층의 네트워크로 전달함으로써 데이터를 송수신할 수 있음

 

소켓 안에 있는 정보들

  • 프로토콜
  • 호스트 IP 주소 (Source IP Address)
  • 호스트 Port 번호 (Source Port Nunber)
  • 목적지 IP 주소 (Destination IP Address)
  • 목적지 Port 번호 (Destination Port Number)

 

소켓의 특징

- 양방향 통신을 목적으로 하기 때문에, 클라이언트와 서버의 구조

- 클라이언트는 이미 리스닝하고 있는 서버의 IP주소 및 포트 번호를 알고 있기 때문에, 이에 해당하는 서버에 연결을 시도

- 연결이 진행되고 나면, 서버는 같은 포트에 바인딩 된 새로운 소켓을 형성

- 기존의 연결된 소켓으로는 연결된 클라이언트의 요청을 처리

- 같은 포트에 여러 개의 소켓을 생성하여 사용