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를 사용하며 매우 낮은 레이턴시를 보인다.
2018 webRTC 정리 | Jayne.who();
< Back 2018 webRTC 정리 web | 19 April 2019 Tags | webrtc js p2p frontend 2018년도에 webRTC 를 이용한 ‘코딩 실시간 화상 강의실 서비스’ 를 만들던 경험을 떠올리며, webRTC API 를 이용한 애플리케이션 작성법을
jaynewho.com