👊 시작하기
팀 프로젝트로 WebRTC를 활용한 웹사이트를 만들게 되면서 사용되는 기술에 대해 알아보려고 합니다.
1. WebRTC란?
- WebRTC(Web Real-Time Communication)는 웹 브라우저 간에 플러그인 없이 서로 통신할 수 있는 API입니다.
- 카메라 또는 마이크를 활용한 음성통화, 영상통화, 화면 공유나 P2P 파일 공유 등으로 활용됩니다.
2. WebRTC 장점, 단점
2-1. 장점
- 지연시간(Latency)이 짧다.
콘텐츠를 잘개 쪼개서 전송하는(Cunked Streaming) 방식으로 파일 사이즈를 줄여서 전송 지연시간을 단축한다.
- Chunked Streaming
전송되기 전에 전체 세그먼트가 로드될 때까지 기다리지 않고 chunk가 준비될 때 각 세그먼트를 점진적으로 전달할 수 있다.
- 보안성이 좋다.
암호화된 스트림을 위해 DTLS 및 SRTP와 함께 매우 높은 보안 기능이 내장되어 있다.
그래서 암호화되지 않는 RTMP보다 보안성이 좋다.
- DTLS (Datagram Transmission Layer Security)
- 도청, 변조 또는 메시지 위조를 방지하기 위해 고안된 방식으로 데이터 그램 기반 애플리케이션에 대한 보안을 제공하는 통신 프로토콜이다.
- SRTP (Secure Real-time Transport Protocol)
- 실시간으로 전송되는 멀티미디어 데이터를 암호화하여 송, 수신하는 프로토콜을 의미한다.
- RTMP (Real Time Messaging Protocol)
- RTMP는 어도비 시스템사의 독점통신 규약으로 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할 때 쓰인다.
2-2. 단점
- STUN/TURN 서버가 필요하다.
방화벽 문제로 인해 다른 네트워크 상에서는 STUN/TURN 서버를 설치한 후에 사용할 수 있다.
- STUN
- 클라이언트가 자신의 Public IP 확인 위해 STUN 서버 요청 보냄 -> 서버로부터 자신의 Public IP 받기
- TURN
- Client 간 통신할 때 Public 망에 존재하는 TURN서버를 경유하여 통신한다.
- 클라이언트가 자신의 Private IP 포함된 TURN 메세지를 턴 서버로 보내면,
- Network Layer IP 주소와 Transport Layer의 UDP 포트 넘버와 차이 확인해서 Public IP로 응답한다.
3. WebRTC 원리
WebRTC는 NAT 우회 과정을 거치기 때문에 웹에서 실시간으로 데이터를 교환할 수 있다.
- NAT (network address translation)
- IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
🍉 Reference
https://ko.wikipedia.org/wiki/WebRTC
https://gh402.tistory.com/38?category=935378
'Coding > project' 카테고리의 다른 글
WebRTC (8) | 온라인 발표 서비스 "북쪽행성" 개발기 (0) | 2021.08.18 |
---|---|
WebRTC (6) | OpenVidu 튜토리얼 시작하기 (0) | 2021.08.03 |
WebRTC (4) | Windows10 에서 Kurento의 GroupCall 예제 실행하기 (2) | 2021.07.23 |
WebRTC (3) | Windows10 에서 Kurento의 HelloWorld 예제 실행하기 (0) | 2021.07.23 |