카테고리 없음

WebRTC 알아 보기

시커먼수르 2021. 4. 3. 05:18

1. WebRTC란

 Browser에서 실시간으로 Video/Audio 커뮤니케이션 및 파일 공유가 가능하도록 하는 Open Source 기술이다.

P2P 통신을 사용하고 있으며, WebRTC가 탑재된 Browser라면 별도의 Plug in 없이도 사용할 수 있다는 장점이 있다.

현재 Android 및 IOS 에서도 제공되기 때문에, 관련된 기술이 많이 사용되고 있다.

 

 

2.  ICE (Interactive Connectivity Establishment) : Browser간에 P2P가 가능하도록 해주는 Framework, 방화벽 통과나 공인 IP가 없는 기기와의 통신 등을 위해 ICE candidate를 제공함

 

WebRTC 관련해서 가장 이해하기 쉽게 설명된 블로그. 이보다 더 자세히 설명할 수 없을 것 같음.

wormwlrm.github.io/2021/01/24/Introducing-WebRTC.html

 

WebRTC는 어떻게 실시간으로 데이터를 교환할 수 있을까? - 재그지그의 개발 블로그

WebRTC 연결 절차에 대해 알아보고, 이 과정에서 접할 수 있는 낯선 용어들에 대해 정리해봅니다.

wormwlrm.github.io

3. STUN 과 TURN

STUN : Session Traversal Utility for NAT

단말이 자신의 공인 IP주소와 포트를 확인하는 과정에 대한 프로토콜

STUN 서버에 내 IP가 뭔지 요청하면 알려준다.

 

TURN : Traversal Using Relay NAT

네트워크 미디어어를 중개하는 서버를 이용해서 IP를 얻어오는 방식
(엄밀히 말하면 P2P 방식은 아니다)

라우터에 따라 방화벽 정책을 다르게 할 수 있으며, 이전에 연결된적이 있던 네트워크만 연결할 수 있게 제한을 걸수도 있기 때문에, 이경우엔 최후의 보루로 TURN  서버를 사용한다.

 

NAT : Network Address Translation ( 네트워크 주소 변환)

 

4. 주요 API

WebRTC의 주요 구성 요소는 여러 자바스크립트 API를 포함하고 있다:

getUserMedia: 오디오와 비디오 미디어를 가져온다. (예: 장치의 카메라와 마이크로폰에 접근하여)
RTCPeerConnection: 피어 간 오디오, 비디오 통신을 활성화한다. 신호 처리, 코덱 관리, P2P 통신, 보안, 대역폭 관리를 수행한다.
RTCDataChannel: 피어 간 양방향 임의 데이터 통신을 허용한다. 웹소켓과 동일한 API를 사용하며 매우 낮은 레이턴시를 보인다.

jaynewho.com/post/36

 

2018 webRTC 정리 | Jayne.who();

< Back 2018 webRTC 정리 web | 19 April 2019 Tags | webrtc js p2p frontend 2018년도에 webRTC 를 이용한 ‘코딩 실시간 화상 강의실 서비스’ 를 만들던 경험을 떠올리며, webRTC API 를 이용한 애플리케이션 작성법을

jaynewho.com