소켓

최승아·2022년 2월 9일
0

정의

  • 소켓은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로 부터 데이터를 받기 위한 실젝적인 창구 역할
  • 그러므로 , 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로 부터 데이터를 읽어들여야 함

구성

  • 소켓은 프로토콜, IP, 주소, 포트 넘버로 정의됨
  1. 프로토콜 : 프로토콜은 원래 외교상의 언어로써 의례나 국가간에 약속을 의미하며, 통신에서는 어떤 시스템이 다른 시스템과 통신을 원활하게 수용하도록 해주는 통신 규약, 약속
  2. IP : 전 세계 컴퓨터에 부여된 고유의 식별 주소
  3. 포트 : 포트는 네트워크 상에서 통신하기 위해서 호스트 내부적으로 프로세스가 할당받아야 하는 고유한 숫자 / 즉 , 같은 컴퓨터 내에서 프로그램을 식별하는 번호

👉 다시 말해, 소켓은 떨어져 있는 두 호스트를 연결해주는 도구로써, 인터페이스의 역할을 하는데 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어짐

HTTP 통신 vs SOCKET 통신

  1. HTTP 통신
  • Client의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
  • Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신
  • Server로 부터 응답을 받은 후에는 연결이 바로 종료됨
  • 실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용
  1. SOCKET 통신
  • Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식
  • Server와 Client가 계속 연결을 유지하는 양방향 통신
  • Server와 Client가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
  • 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용

참조 : https://helloworld-88.tistory.com/215

profile
⭐ 개발 정리 공간 ⭐

0개의 댓글