1. WebRTC란?
브라우저간 바이너리 데이터를 P2P 형식으로 교환하는 기술.
별도의 플러그인 설치가 없음.
구글의 오픈소스 프로젝트로 웹표준.
아직 완성되지 않은 기술.
2. 절차
1) 퍼미션 허용
2) IP, Port 등 공유
3) 연결
4) 데이터 교환
3. 용어 정리
* STUN ( Session Traversal Utilities for NAT )
- 단말이 자신의 공인 IP 주소와 포트를 확인하는 과정에 대한 프로토콜.
- 자신을 식별할 수 있는 정보를 반환해줌.
* TURN ( Traversal Using Relay NAT )
- STUN을 통해서 자신을 식별할 수 없는 경우 사용
- 네트워크 미디어를 중개하는 서버 ==> 중간의 서버를 거치기 때문에 P2P 통신이 아니며 지연이 발생하게 됨.
* Candidate
- STUN, TURN 서버를 통해 얻은 IP 주소, 프로토콜, 포트로 구성된 연결 가능한 네트워크 주소들의 후보
> 자신의 사설 IP와 포트 넘버
> 자신의 공인 IP와 포트 넘버 (STUN, TURN 서버로부터 획득)
> TURN 서버의 IP와 포트 넘버 (TURN 서버로부터 획득)
* ICE (Interactive Connectivitiy Establishment)
- 두 개의 단말이 P2P 연결을 위한 최적의 경로를 찾는 프레임워크
- Trickle ICE : Candidate 수집에는 오랜 시간이 걸리며, 그 과정중 지연이 발생 가능함. 따라서 이런 비효율적인 교환 작업을 병렬 프로세스로 수행할 수 있게 해줌. (비동기 처리를 통해 Candidate를 찾게되면 즉시 교환을 시작함)
- ICE 프레임 워크는 STUN or TURN 서버를 통해서 상대방과 연결 가능한 후보들(Candidate)를 가지고 있음.
* Signaling
- RTCPeerConnection 통신에 사용할 프로토콜, 채널, 미디어 코덱 및 형식, 데이터 전송 방법, 라우팅 정보와 NAT 통과 방법, IP 등을 포함한 통신 규격을 교환하기 위해 두 장치간 제어 정보를 교환하는 과정.
'Android > etc' 카테고리의 다른 글
외부 웹서버와 로컬 웹서버의 연계 (0) | 2022.08.03 |
---|---|
WebRTC Test (With Flutter) (0) | 2022.05.24 |
WebRTC Build (0) | 2022.05.23 |
안드로이드 앱 런칭용 이미지 및 기타 사이트 (0) | 2020.02.19 |
구글 마테리얼 디자인 (0) | 2020.01.08 |