CoMirror (Smart Mirror)
WebRTC에 대해서
경걍
2022. 8. 16. 01:07
반응형
P2P (Peer to Peer)
중앙 서버 등 어떤 것도 거치지 않고 Peer(Client, 컴퓨터)끼리 직접 통신하는 방식
RTC (Real-time communications)
송신자에서 수신자로 모든 유형의 통신 서비스를 통해 전송 지연 시간이 별로 없어 거의 동시에 정보를 교환하는 것
- RTC 데이터와 메시지는 송수신 사이에 저장되지 않는다.
- RTC는 일반적으로 브로드 캐스팅이나 멀티캐스팅이 아닌 P2P 전송 방식이다.
WebRTC (Web Real-Time Communications)
웹 응용 프로그램과 사이트에서 오디오 및/또는 비디오 미디어를 캡처 및 선택적으로 스트리밍하고 중개자 없이 브라우저 간에 임의의 데이터를 교환할 수 있도록 하는 기술
→ Web + RTC : Web에서 사용하는 RTC
WebRTC 연결 흐름도
WebRTC 기본 용어
- Signaling
: 클라이언트들이 데이터를 교환하기 위하여 통신 설정 수행 과정이 필요하여 이 과정을 통해 네트워크 주소 변환 및 방화벽에 대응하게 된다 (위에 연결 흐름도가 즉 sinaling 과정)
- ICE(Interactive Connectivity Establishment)
: 웹 브라우저 간에 직접적인 P2P를 할 수 있도록 해주는 프레임워크로 이를 통해 공인 IP 주소가 없는 기기에게 식별할 수 있는 주소를 부여한다
- SDP(Session Description Protocol)
: Peer가 가진 세션의 정보들을 포함한 프로토콜로 연결하고자 하는 Peer 서로 간의 미디어와 네트워크에 관한 정보를 이해하기 위해 사용한다.
- STUN(Session Traversal Utilities for NAT)
: 사용자의 공인 주소를 찾고 P2P로 직접적인 연결을 방해하는 요소가 라우터 내에 있는지 알아내는 프로토콜이다
+ 이는 구글 등에서 무료로 제공되고 있다. 이를 사용하면 편리하다
- TURN(Traversal Using Relays around NAT)
: Peer가 직접 연결에 실패할 때 Peer들 사이의 오디오, 비디오, 데이터 스트리밍 데이터를 중계해준다. peer가 방화벽, 프록시 때문에 접속하지 못할 때 대안으로 사용된다.
Offer SDP
먼저 연결하고자 하는 Peer가 만든 SDP
RTCPeerConnection.createOffer(successCallback, failureCallback[, options]);
// chorme 51버전 부터
RTCPeerConnection.createOffer([options]).then(successCallback).catch(failureCallback);
Answer SDP
응답하는 Peer 가 만든 SDP
RTCPeerConnection.createAnswer(successCallback, failureCallback[, options]);
// chorme 51버전 부터
RTCPeerConnection.createAnswer([options]).then(successCallback).catch(failureCallback);
반응형