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);

 

반응형