티스토리 뷰

WebRTC

[WebRTC] WebRTC 프로토콜은 무엇인가?

HyunSang Park 2021. 1. 10. 10:00

안녕하세요, 요즘 주변에 WebRTC에 대해서 관심이 많으신 분들이 많아보여서 기분이 좋습니다 ㅎㅎ

WebRTC 기술에 대해서 많은 관심 부탁 드립니다.

이번 글은 WebRTC 프로토콜에 대해서 소개해 볼려고 합니다.

 

목차

  • Interactive Connectivity Establishment (ICE)

  • Session Traversal Utilities for NAT (STUN)

  • Network Address Translation(NAT)

  • Traversal Using Relays around NAT(TURN)

  • Session Description Protocol(SDP)

Interactive Connectivity Establishment(ICE)

Interactive Connectivity Establishment(ICE)는 브라우저가 peer를 통한 연결이 가능하도록 하게 해 주는 프레임워크입니다.

간단히 이야기 하자면! PeerA에서 Peer B까지 단순히 연결하는 것으로는 작동하지 않는 것에 대한 이유가 많이 있습니다.

연결을 시도하는 방화벽을 통과해야하기도 하며, 단말에 퍼블릭 IP가 없다면 유일한 주소값을 할당해야할 필요도 있으며 라우터가 peer간의 직접연결을 허용하지 않을 때에는 데이터를 릴레이해야할 경우도 있습니다. ICE는 이러한 작업을 수행하기 위해 STUND과 TURN 서버 두 개 다 혹은 하나의 서버를 사용합니다.

 

Session Traversal Utilties for NAT(STUN)

Session Traversal Utilties for NAT(STUN)는 공개 주소(Public Address)를 발견하거나 Peer 간의 직접 연결을 막는 등의 라우터의 제한을 결정하는 프로토콜입니다.

클라이언트는 인터넷을 통해 클라이언트의 공개주소와 라우터의 NAT 뒤에 있는 클라이언트가 접근가능한지 대한 답변을ㅇ 위한 요청을 STUN 서버에 보냅니다.

 

Network Address Translation(NAT)

Network Address Translation(NAT)는 단말에 공개 IP 주소(Public Address)를 할당하기 위해 사용됩니다.

라우터는 공개IP 주소를 갖고 있고 모든 단말들은 라우터에 연결되어 있으며 비공개 IP주소(Private IP Address)를 갖고 있습니다. 요청은 단말의 비공개 주소로부터 라우터의 공개 주소와 유일한 포트를 기반으로 번역될 것입니다. 이러한 경유로 각각의 단말이 유일한 공개 IP 없이 인터넷 상에서 검색될 수 있는 방법입니다.

 

어떠한 라우터들은 네트워크에 연결할 수 있는 제한을 갖고 있습니다. 따라서 STUN서버에 의해 공개 IP 주소를 발견한다고 해도 모두가 연결을 할 수는 없습니다. 이를 위해서는 TURN이 필요합니다.

 

Network Address Translation(NAT)

몇몇의 라우터들은 Symmetric NAT이라고 불리우는 제한을 위한 NAT를 채용하고 있습니다. 이 말은 Peer들이 오직 이전에 연결한 적 있는 연결들만 허용한다는 것입니다.

 

Traversal Using Relays around NAT(TURN)은 TURN 서버와 연결하고 모든 정보를 그 서버에 전달하는 것으로 Symmetric NAT 제한을 우회하는 것을 의마합니다. 이를 위해서는 TURN 서버와 연결을 한 후에 모든 Peer들에게 서버에 모든 패킷을 보내고 다시 나에게 전달을 해 달라고 해야 합니다. 이것은 명백히 오버헤드(OverHead)가 발생하므로 이 방법으로 다른 대안이 없습니다.

 

Session Description Protocol(SDP)

Session Description Protocol(SDP)은 해상도나 형식, 코덱, 암호화등의 멀티미디어 컨텐츠의 연결을 설명하기 위한 표준입니다.

이러한 것이 두 개의 Peer가 다른 한이 데이터가 전송되고 있다는 것을 알게 해 줍니다. 이것은 기본적으로 미디어 컨텐츠 차제가 아닌 컨텐츠에 대한 메타데이터 설명이 됩니다.

 

기술적으로 보자면 SDP는 프로토콜이 아닙니다. 그러나 데이터 포멧을 디바이스 간의 미디어를 공유하기 위한 연결을 설명하기 위해 사용됩니다.

 

Session Description Protocol(SDP) 구조

SDP는 한 줄 이상의 UTF-8 텍스트로 구성됩니다. 이 텍스트의 시작은 한 글자로 구성되며 한 글자 뒤에 등호 기호("=")가 옵니다.

그리고 그 뒤에는 포멧에 맞게 값이나 설명이 적혀 있습니다. 한 글자로 시작되는 그 글자는 일반적으로 "letter-lines"를 뜻합니다. 예를들어 미디어 설명을 제공하는 것이라면 "m" 이라고 적어두고 이것은 m-lines을 뜻합니다.

 

Session Description Protocol(SDP) 참고하면 좋을 자료

참고한 자료

'WebRTC' 카테고리의 다른 글

[WebRTC] WebRTC 프로토콜은 무엇인가?  (1) 2021.01.10
[WebRTC] WebRTC란?  (0) 2020.11.30
댓글
  • 프로필사진 ㅁㅇㅇ 안녕하세요 글 잘 보고 있습니다.

    webrtc에 관해서 통신을 하는데 한쪽 영상정보를 없앨수있나요 프레임확보하기위해
    2021.02.23 15:29
댓글쓰기 폼