WebSocket 과 WebRTC의 비교

싱클베어·2022년 2월 7일
0

WebSocket 과 WebRTC의 비교

소켓이란?

  • 네트워크에서 소켓은, 클라이언트와 서버가 데이터를 송수신하기 위해 반드시 거쳐야 하는 연결부에 해당. (벽에 있는 콘센트와 유사)
  • 대표적으로 TCP, UDP 프로토콜을 사용하는 2가지 소켓 존재
    • TCP 프로토콜은 메시지를 보내고 수신했는지를 확인하는 절차가 존재하여, 일반적으로 안정적인 데이터 송수신을 위해 사용.
    • UDP 프로토콜은 일부 패킷이 손실되어도 괜찮거나, 빠른 전송 속도가 필요한 경우 사용.
  • 패킷이라는 단위로 통신하며, 패킷은 소켓을 통해 송수신하는 데이터 덩어리 하나를 의미함.

WebSocket?

  • 서버와 클라이언트가 실시간으로 양방향 통신을 할 수 있게 해주는 Socket
  • 일부 브라우저들은 웹소켓을 지원하지 않으므로, 모든 브라우저에서의 동작을 보장하진 않음
  • 2022년 2월 현재는 일부 구버전 브라우저를 제외하고 모두 지원한다고 볼 수 있다.

socket.io?

  • 웹소켓을 사용할 수 없는 브라우저인 경우, 일정 간격마다 데이터를 받아오는 HTTP polling을 사용해 실시간 통신 기능을 구현하게끔 해주는 자바스크립트 라이브러리.
  • socket.io !== WebSocket

WebRTC

Web Real-Time Communication의 약자로, 브라우저끼리 통신하여 중간자인 서버 없이 브라우저 간에 P2P 형태로 오디오, 영상, 데이터를 교환할 수 있게 하는 기술이다.

WebSocket과 대비되는 점은 아래와 같다.

  • WebRTC는 영상, 오디오, 데이터 통신이 고성능, 고품질이도록 설계되었다.
  • WebRTC는 브라우저간 직접 통신이므로, 훨씬 전송 속도가 빠름
  • WebRTC는 네트워크 지연시간이 짧다.(Latency)

다만, WebRTC만으로 제어하기 어려운 부분이 있으므로 WebSocket, 또는 Socket.io 를 사용해 신호를 주고받을 수 있는 Signaling 서버는 필요하다.

현재 Zoom, Google Meet, 매일 쓰고있는 Gather.town 에서도 이 WebRTC를 이용하여 화상회의 기능을 구현하였다.

더 알아볼만 한 것들

RTMP : TCP 기반의 영상 스트리밍 프로토콜


참고 URL

동영상 - WebRTC? WebSockets? 5분 개념정리!

Websocket과 WebRTC

WebRTC의 특징

WebSocket과 Socket.io - 2011.12.22

Can I use ___ ?

Twitch Engineering: An Introduction and Overview

Video streaming protocols explained: RTMP, WebRTC, FTL, SRT

라이브 비디오 서비스 구축을 위한 노하우 - 2편

profile
안녕하세요.

0개의 댓글