본문 바로가기
Stove Dev Camp

WebRTC Data Channel

by AndoneKwon 2021. 1. 18.

WebRTC Data Channel이 뭔데?

처음 회사에서 프로젝트를 진행할때 만해도 WebRTC를 동영상 스트리밍 용도로 사용하고 채팅은 4 Layer단의 TCP 소켓을 이용하거나 Web Socket을 사용하여 구현할 예정이었다.

 

그러나 이번 프로젝트의 주 맥락이 WebRTC이고 자체로 영상이 아닌 Data를 전송할 수 있는 DataChannel을 지원한다. WebRTC는 당연히 UDP위에서 동작하기 때문에 UDP로 동작한다. WebRTC 프로토콜의 스택은 다음 그림과 같다.

WebRTC 프로토콜 스택(출처 : https://hpbn.co/webrtc/)

따라서, WebRTC를 통해서 Peer to Peer 로 동작하는 데이터 전송 방식이라고 생각하면 된다.

 

Data Channel과 다른 전송 채널과의 차이

일반적으로 생각하고 있는 Web Socket 방식은 TCP위에서 작동되며 보통 Client to Server 구조로 동작하기 위해 디자인 되어있다.

하지만, WebRTC 기술은 애초에 만들어 지기를 UDP Layer위에서 작동하고 P2P를 위해 디자인 된 기술이다.

중간의 서버의 중계가 없기 때문에(단, 시그널링을 위한 서버는 당연히 필요) 더 빠론 속도로 작동하게 된다. 또한 SCTP(Stream Control Transmission Protocol)을 이용하여 일반적인 UDP와는 달리 비순차 전송, 재전송과 같은 설정가능한 전송 시멘틱스를 허용한다)

 

특징

문자열 뿐만 아니라 Blob, ArrayBuffer, ArrayBufferView와 같은 JS의 바이터리 타입의 일부를 지원한다.

따라서, 게임이나 파일전송에서 유용하게 사용할 수 있다.

위에서 설명한 SCTP와 다른 프로토콜의 비교가 된 표는 아래에 있다.

프로토콜 비교(출처 : https://www.html5rocks.com/ko/tutorials/webrtc/datachannels/)

-----------------------------

하지만 우리가 만들고자 하는 서비스는 1:1의 동영상 서비스가 아닌 1:M의 동영상 스트리밍 서비스이기 때문에 이를 구현하기 위해 중간에 Media Server를 두어 구현하는 방법은 다음 글에 정리하도록 한다.

 

 

 

참고자료

www.html5rocks.com/ko/tutorials/webrtc/datachannels/

 

Send data between browsers with WebRTC data channels - HTML5 Rocks

Use WebRTC data channels to enable secure high-performance peer-to-peer data communication and file exchange.

www.html5rocks.com

tools.ietf.org/html/rfc4960#section-1.2

 

RFC 4960 - Stream Control Transmission Protocol

[Docs] [txt|pdf] [draft-ietf-tsvw...] [Tracker] [Diff1] [Diff2] [IPR] [Errata] Updated by: 6096, 6335, 7053, 8899 PROPOSED STANDARD Errata Exist Network Working Group R. Stewart, Ed. Request for Comments: 4960 September 2007 Obsoletes: 2960, 3309 Category:

tools.ietf.org

enro2414-40667.medium.com/a-simple-rtcdatachannel-sample-2d89022b57e4

 

A simple RTCDataChannel sample

원문 (일부 오역이 있을수 있습니다)

enro2414-40667.medium.com

hpbn.co/webrtc/

 

Browser APIs and Protocols: WebRTC - High Performance Browser Networking (O'Reilly)

What every web developer must know about mobile networks, protocols, and APIs provided by browser to deliver the best user experience.

hpbn.co

 

이상한 점이나 틀린점이 있다면 댓글로 달아주세요!