티스토리 뷰
Web RTC?
- Web Real-Time Communication의 약자
- 웹, 앱에서 별다른 소프트웨어 없이 비디오 및 음성, 일반 데이터를 P2P방식으로 피어간의 전송 되도록 실시간 커뮤니케이션을 제공 해준다.
-P2P 방식으로 피어간 전송이 되도록 지원해주어, 중간에 거치는 서버등이 없어 레이턴시가 낮을 수 있다.
- 알아야 하는 기술
: STURN Server, Turn Server, ICE, Signalling
Why WebRTC?
WebRTC는 별도의 플러그인 설치 없이 간편하게 웹 브라우저를 통해 각종 영상, 음성 텍스트등을 네트워크로 전달 및 전송 할 수 있다. 그리고 양질의 오디오 그리고 비디오 데이터를 별도 3rd part 소프트웨어 혹은 플러그인의 도움 없이 전달 할 수있다.
이런 기술을 제공하기 위해서는 많은 장벽이 있는데 데이터 손실 그리고 네트워크 연결 안정성, NAT Traversal등을 해결 해야한다. 하지만 이런 많은 장벽들을 Google에서 오픈소스로 지원 해주고 있어 보다 쉽게 이를 구현할 수 있게된다.
영상 및 음성은 데이터 사이즈가 매우크다. 따라서 작은 단위로 빠른 네트워크를 통해 전송 해야하는데, 영상과 음성의 커다란 데이터 사이즈를 작게 만들 수 있는 기술이 바로 코덱이다. 웹 자체에서는 별도의 지원 없이 Encoding Data를 Decoding 하는데 어려움이 있지만, 웹브라우저의 VP8 Engine은 H.264 등의 Decoding 기술을 제공한다.
WebRTC API?
Web RTC API는 아래와 같은 주 기능으로 구성 되어있다
* RTCPeerConnection
. 다른 유저와 UDP 커넥션을 관리해주고 유지해준다.
. 미디어 스트림정보를 추가 할 수 있도록 해준다
* Signaling and negotiation
* Session Description Protocol (SDP)
. 네트워크를 통한 데이터 전송시 해당 데이터 혹은 통신방식등 데이터를 주고 받기위한 상세 내역을 스트링 형태로 제공하는 프로토콜로 [key]=[value]\n 형태의 프로토콜
*STURN
.두 피어이에 좋은 연결을 찾기 위한 첫 단계. STRUN은 각 유저를 인터넷상에서 식별 할 수 있게해준다.
*TURN
.방화벽등은 STURN베이스의 통신을 허용하지 않는다. 따라서 두 유저가 통신을 하기위한 별도의 방법을 찾아야하는데 그 방법중 하나가 각 클라이언트간의 통신을 중계 해주는 것이다. TURN은 TURN Server로 부터 각 필요한 데이터를 요청하고 전송하여 클라이언트들 간에 데이터를 중계 해줄 수 있는 기능을 한다.
* Interactive Connectivity Establishment (ICE)
. 브라우저가 각 피어를 통한 연결이 가능하도록 하게 해주는 프레임워크. TURN혹은 STURN 서버를 이용해 상대방과의 연결 가능한 후보 리스트를 갖고 있다
'Tech > Web' 카테고리의 다른 글
| Vue Js를 이용한 트리 컨트롤 (0) | 2021.09.10 |
|---|---|
| HTTP - "OPTIONS" 요청의 발생 (0) | 2021.09.01 |