WebRTC 기술 약어 모음집

이 글은 WebRTC and the Ocean of Acronyms에 대한 번역 및 편집본입니다.

WebRTC를 시작하게 됐을 때의 제 경험은 3개의 약어로 요약할 수 있습니다. 그래서, 제가 경험했던 많은 질문들에 대답이 되도록 이 글을 쓰기로 결정했습니다. 저는 늘 이렇게 말합니다. “모르는 약어면 아마 네트워크 프로토콜일거야.”

ICE?

ICE(Interactive Connectivity Establishment)는 웹 브라우저 간에 피어 투 피어 접속을 할 수 있게 해 주는 프레임워크입니다. A에서 B로 직접적인 피어 투 피어 접속이 쉽게 동작 하지 않는데는 많은 이유가 있습니다. 공개된 접속을 막는 방화벽을 통과해야 하기도 하고, 공인 IP 주소를 갖지 않은 기기들에 유일한 주소를 부여해야 하며, 라우터가 직접적인 피어 투 피어 연결을 지원하지 않는 경우 서버를 통해 데이터를 중계 해야 할 수도 있습니다. 이러한 이유들을 해결하기 위해 ICE는 아래에 기술된 기술들을 사용합니다.

STUN

(약어 안에 약어가 존재하는) STAN (Session Traversal Utilities for NAT)은 사용자의 공인 주소를 찾고 피어 투 피어로 직접적인 연결을 막는 요소가 라우터 내에 있는지 알아내는 프로토콜입니다.

클라이언트는 자신의 공인 주소와 라우터의 NAT 뒤에 있는 자신이 접속이 가능한지 여부를 알기 위해 인터넷 상의 STUN 서버에 요청(request)을 보내 묻습니다.

NAT

NAT (Network Address Translation)은 기기에 공인 IP 주소를 부여하는데 사용합니다. 라우터는 공인 IP 주소를 가지고 있고, 라우터에 연결되는 모든 기기는 사설 IP 주소를 갖습니다. 기기가 통신 요청을 하면 기기의 사설 IP 주소는 라우터 공인 IP 주소의 유일한 포트로 연계됩니다. 이런 방법 덕분에 각각의 모든 기기가 공인 IP 주소를 갖지 않아도 인터넷 상에 노출될 수 있습니다.

일부 라우터들은 네트워크를 통해 기기에 접속 하려는 경우에 제약을 가하는 경우가 있습니다. 이런 경우 STUN 서버가 찾은 공인 IP를 가졌다 하더라도 연결을 할 수 없습니다. 이런 상황에서는 TURN으로 턴해야합니다.

TURN

NAT를 사용하는 일부 라우터들은 ‘대칭형 NAT(Symmetric NAT)’이라는 제약 사항을 사용합니다. 이 규칙은 이전에 피어 투 피어로 연결했던 대상에 대해서만 연결을 허용합니다.

TURN (Traversal Using Relays around NAT)은 TURN 서버를 통한 공개된 연결에 대해 대칭형 NAT 제약을 적용하지 않고, TURN 서버를 통해 모든 정보를 중계하는 것입니다. TURN 서버와 연결을 한 후 피어 투 피어로 통신하려는 모든 대상에게 “TURN 서버로 패킷을 보내면 자신에게 포워딩 된다”고 알려 주면 됩니다. 확실히 이 방법은 오버헤드가 있습니다. 그러므로, 다른 대안이 전혀 없는 경우메만 사용하는 것이 좋습니다.

SDP

SDP (Session Description Protocol)는 연결된 멀티미디어 데이터의 해상도, 형식, 코덱, 암호화 방법 등등을 기술하는 표준으로써, 피어 투 피어로 연결된 서로 간에 전송될 데이터를 이해하는데 사용됩니다. SDP는 미디어 자체라기 보다는 메타데이터라고 볼 수 있습니다.

What is an Offer/Answer and Signal Channel?

Offer/Answer, 신호 채널?

안탑깝게도 WebRTC는 중간에 일련의 서버가 없으면 연결을 할 수 없습니다. 우리는 이걸 신호 채널(Signal Channel)이라고 부릅니다. 이 것은 연결을 설정하기 전에 정보를 교환하는 통로의 일종입니다. 그게 이메일이든, 우편이든, 비둘기든, 그 건 여러분에게 달렸습니다.

교환해야 하는 정보는 위에서 언급한 SDP를 포함하는 Offer와 Answer입니다.

연결을 시작하려고 하는 A는 Offer를 만듭니다. 그리고 나서, 선택된 신호 채널을 사용하여 피어 투 피어로 연결하려는 B에게 이 Offer를 보냅니다. B는 신호 채널을 통해 Offer를 받은 후 Answer를 만듭니다. 그리고, 신호 채널을 통해 Answer를 B로 보냅니다.

ICE 후보(candidate)

(위 쪽의 Offer/Answer 그리고 SDP에서 논의한) 미디어에 대한 정보를 교환하는 것 뿐만 아니라, 피어 투 피어 통신을 하려는 양쪽은 네트워크 연결에 관한 정보도 교환해야 합니다. 이 정보는 ICE 후보와 통신 가능한 방법(직접 혹은 TRUN 서버를 통한 방법)에 대한 상세 내용입니다.

역자주: ICE 후보와 관련하여 다음글을 참고하세요.

전체 흐름 다이어그램

image

작성자: Kim, Myung Shin

Kim, Myung Shin가 작성한 문서들…


2 댓글

  1. […] 있습니다. Transport를 설명하는 부분에 있는 STUN, TURN입니다. 이와 관련한 WebRTC 기술 약어 모음집에 있는 설명을 […]

    12월 21st, 2013 at 7:37 오전
  2. 이동훈

    STUN

    (약어 안에 약어가 존재하는) STAN (Session Traversal Utilities for NAT)은 사용자의 공

    STAN 오타입니다.

    9월 9th, 2015 at 1:22 오후

댓글 쓰기