ETC
WebRTC키워드 정리 - RTCPeerConnection, ICE, ICE Candidate
Peppo
2023. 1. 17. 10:00
728x90
회사에서 사용하고 있는 WebRTC에 대한 개념을 공부하기 위해 블로깅 해봅니다.
WebRTC ?
Web RealTime Communication 의 약자로 플러그인 설치없이 실시간 소통(비디오, 오디오)이 가능하도록 만들어주는 기술입니다.
WebRTC를 사용하는 서비스
Google Meet, Zoom 등
별다른 프로그램 설치없이도 실시간 소통을 할 수 있는것!
통신원리
일반적으로 P2P(Peer to Peer)를 사용하며,
P2P란, 두개의 단말이 서로 1:1 통신을 한다는 뜻으로,
서버의 개념없이 동등한 노드들로 구성되어 데이터를 주고받는 형식으로 되어있습니다.
RTCPeerConnection
WebRTC 컴포넌트로, peer들간의 데이터를 안정적이고 효율적으로 통신하게 도와줍니다.
커넥션이 이루어지고 열리면, MediaStream과 RTCDataChannel들을 커넥션에 연결할 수 있습니다.
ICE(Interactive Connectivity Establishment)
두 단말이 서로 통신할 수 있는 최적의 경로를 찾을 수 있도록 도와주는 프레임워크 입니다.
단말 간에 연결을 해도 정상 작동하지 않는 이유가 있습니다.
- 방화벽 통과 문제
- 단말에 퍼블릭 IP가 없을 경우, 유일한 주소값을 할당 해야하는 문제
- 라우터가 단말간의 직접연결을 허용하지 않을때, 데이터를 릴레이(질문) 해야하는 문제
이를 해결하기 위해 STUN과 TURN 서버를 활용합니다.
ICE Candidate
STUN과 TURN서버를 활용해 찾아낸 연결가능한 네트워크 주소들.
- Local Address: 단말 Private IP 주소와 포트번호
- Server Reflexive Address: 단말의 Public IP 주소와 포트번호
- Relayed Address: TURN서버의 IP주소와 포트번호
참고
https://brunch.co.kr/@linecard/156
https://developer.mozilla.org/ko/docs/Web/API/WebRTC_API/Protocols
https://temasys.io/guides/developers/webrtc-ice-sorcery/
다음주 스터디
- NAT
- ✩SDP
- ✩STUN - 해당 단말의 퍼블릭IP주소를 보내는 역할을 함(두 단말이 같은 NAT 환경에 있거나, NAT의 보안정책이 엄격할 경우 연결되지않음)
- ✩TURN - STUN에서 연결에 실패할경우 최후 수단으로 이 서버를 사용 (리소스 낭비가 심하다는 단점)
- ✩Signaling
개인공부
- UDP/ TCP
- SFU/ MFU - (여러유저와 통신할경우)
728x90