한 번만 더 해보자

[Network] 소켓 vs 웹소켓 본문

Network

[Network] 소켓 vs 웹소켓

정 하임 2024. 12. 18. 23:23

주요 차이점

특징 소켓(Socket) 웹소켓(WebSocket)
용도 전반적인 데이터 통신 웹 기반의 실시간 데이터 통신
초기 설계 모든 네트워크 환경 웹 브라우저와 서버 간의 통신을 위해 설계됨
유지 방식 사용자가 직접 데이터 연결/해제를 관리 연결을 자동으로 관리(웹 브라우저 친화적)
프로토콜 TCP/IP 또는 UDP HTTP로 시작, 이후 WebSocket 프로토콜 사용
연결 유지 필요 시마다 연결을 설정하고 끊음 한 번 연결하면 계속 유지
통신 방향 단방향 또는 양방향 양방향 통신 가능
사용 환경 모든 네트워크 환경(웹포함) 주로 웹 브라우저와 서버 간의 통신에 사용
초점 데이터 전송의 기본 기술 실시간 웹 애플리케이션 구현에 초점
  • 소켓은 네트워크 통신의 기본 도구로 다양한 환경에서 사용됨.
  • 웹소켓은 특히 웹 환경에서 실시간 통신을 위해 설계된 소켓 기술.

 

 

1. 소켓(Socket)

  • 정의:
  • 소켓은 네트워크에서 데이터를 송수신하기 위한 인터페이스. 컴퓨터와 컴퓨터 간에 데이터를 주고받는 기본적인 도구로, 프로그램이 네트워크 연결을 통해 서로 대화할 수 있게 해줌.
  • 작동 방식:
    • TCP 소켓: 안정적인 데이터 전송(데이터 손실 방지). 예: 파일 전송, 이메일.
    • UDP 소켓: 빠른 데이터 전송(데이터 손실 가능). 예: 스트리밍, 온라인 게임.
  • 소켓은 주로 TCP/IP 또는 UDP 프로토콜 위에서 동작함.
  • 특징:
    • 한 번 연결을 설정하면 데이터를 주고받을 수 있음.
    • 데이터를 보낼 때는 송신 쪽에서 요청을 하고, 수신 쪽에서 응답을 받아야 함(클라이언트-서버 구조).
    • 프로그래머가 직접 데이터를 전송하거나 처리 방식을 설계해야 함.
  • 사용 사례:
    • 온라인 게임
    • 채팅 애플리케이션
    • 파일 전송 프로토콜(FTP)

 

2. 웹소켓(WebSocket)

  • 정의:
  • 웹소켓은 웹 환경에서 실시간 데이터 통신을 가능하게 하는 프로토콜. 일반적인 HTTP 요청-응답 방식과 달리, 한 번 연결을 설정하면 연결을 계속 유지하면서 데이터를 양방향으로 실시간 교환할 수 있음.
  • 작동 방식:
    1. 초기 연결: 웹소켓은 HTTP 요청으로 시작해 서버와 연결을 설정함.
    2. 업그레이드: 연결이 설정되면 프로토콜이 웹소켓으로 업그레이드되어 계속 연결이 유지됨.
    3. 양방향 통신: 이후 클라이언트와 서버가 자유롭게 데이터를 주고받을 수 있음.
  • 특징:
    • 실시간 데이터 전송이 필요할 때 매우 효율적.
    • 서버와 클라이언트가 동시에 데이터를 주고받을 수 있는 양방향 통신을 지원.
    • 연결이 유지되므로, HTTP 요청-응답보다 더 적은 오버헤드(부하)가 발생.
  • 사용 사례:
    • 실시간 채팅(예: 카카오톡, 슬랙)
    • 실시간 알림(예: 주식 가격 변동)
    • 온라인 게임
    • 실시간 협업 도구(예: 구글 문서)
반응형

'Network' 카테고리의 다른 글

[Network] 서버 vs 클라이언트  (0) 2024.12.18