본문 바로가기

Computer science/WebRTC

webRTC 용어 정리

Interactive Connectivity Establishment(ICE): 웹 브라우저가 다른 동료들과 연결할 수 있게 하는 프레임 워크

 

Peer A와 Peer B를 직접적으로 연결할 수 없는 다양한 이유가 있다.

1. 연결을 생성하지 못하게 막는 방화벽을 우회해야 한다.

2. public ip 주소를 갖고 있지 않은 장치에게 고유한 주소(unique address)를 배정해야 한다. 

3. 라우터가 직접적으로 동료들과 연결하는 것을 허락하지 않으면 서버를 거쳐 데이터를 주고 받아야 한다.

 

ICE는 STUN 서버나 TURN서버 이용한다.

 

 

 

Session Traversal Utilities for NAT(STUN): public address를 발견하고 라우터에 걸려 있는 제약 사항을 알아내는 프로토콜이다. NAT에 대한 설명은 바로 아래에 있다.

 

클라이언트가 STUN 서버에 요청을 보내면, STUN 서버는 클라이언트의 public address와 클라이언트가 라우터의 NAT에 연결 가능한지 알려준다.

 

Network Address Translation(NAT): 당신의 장치에 public IP 주소를 부여하기 위해 사용한다. 

라우터는 public IP 주소를 갖게 되고, 라우터에 연결되어 있는 장치들은 private IP 주소를 갖게 된다.

이 방법을 통해 모든 장치에 unique public IP를 부여하지 않고도 각 장치를 식별할 수 있게 된다. 

 

몇몇 라우터는 특정 장치만 네트워크에 연결할 수 있는 제약 조건을 가지고 있다. 이 경우 STUN 서버에서 public IP를 찾아도 연결이 불가능하다. 이럴 때 TURN 서버를 이용한다.  

위에서 말하는 제약 조건은 'Symmetric NAT'이라고 불린다. 이 제약은 이전에 연결된 적이 있는 동료들로부터의 연결만 허용한다. 

 

 

Traversal Using Relays around NAT(TURN): 'Symmetric NAT' 제약 조건을 우회하기 위해 사용한다.

TURN 서버와의 연결을 만들고 모든 정보를 서버를 통해 전달한다. 

당신은 TURN 서버와의 연결을 생성하고 다른 모든 동료들에게 packets를 서버로 보내라고 말한다. 그 후 서버는 당신에게 정보를 보낼 것이다.  이 방법은 명백히 오버헤드를 동반한다. 따라서 다른 대안이 없을 때만 사용해야 한다.

 

Session Description Protocol(SDP): mulitmedia content를 묘사하는 기준(standard)이다. 

multimdia content로는 해상도(resoultion), 서식(formats), codecs, 암호화(encryption) 등이 있다. 

따라서, 각각의 참여자들(peers)은 데이터가 전송됐을 때 서로를 이해할 수 있다. 이것은 본질적으로 content를 묘사하는 metadata이지 media content 그 자체를 묘사하는 metadata인 것은 아니다. 

 

엄밀히 말하면 SDP는 프로토콜이 아니다. 장치들 간 media를 공유하기 위한 연결에 사용되는 data format이다. 

 

SDP 더 자세한 자료: RFC 4566: SDP: Session Description Protocol

 

RFC 4566 - SDP: Session Description Protocol

[Docs] [txt|pdf] [draft-ietf-mmus...] [Tracker] [Diff1] [Diff2] [Errata] PROPOSED STANDARD Errata Exist Network Working Group M. Handley Request for Comments: 4566 UCL Obsoletes: 2327, 3266 V. Jacobson Category: Standards Track Packet Design C. Perkins Uni

tools.ietf.org

 

본 게시물은 MDN의 WebbRTC protocols 소개글을 번역한 것입니다. 

원문 주소: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols

'Computer science > WebRTC' 카테고리의 다른 글

WebRTC - multiconnection  (0) 2020.07.18
WebRTC 참고 자료 모음  (0) 2020.07.10
WebRTC - other parts  (0) 2020.07.04
WebRTC - peer connections  (0) 2020.07.02
WebRTC - Media capture and constraints  (0) 2020.07.02