프로그래머...
필고 개발자그룹에서는 필리핀에 계시는 개발자분들이 함께 성장 할 수 있는 공간입니다. 정모: 11월 1일 Sub Page View
|
ICE 는 생각보다 많은 일을 합니다. ICE 가 하는 주요한 일이 바로 Hole Punching 입니다. P2P 가 방화벽이나 NAT 에 막혀 있을 때 그러한 장벽을 뚫고 두 개체를 연결 시키는 역활을 하죠. 본 글에서는 ICE 의 STUN 부분에 대해서만 설명을 하고 있습니다. 차차 더 많은 정보를 올리도록 하겠습니다.
가능하다면 필고에서 오프라인 모임을 통해서 실제로 화상 통화 프로그램 제작을 선 보이며 소스 파일에 하나 하나 타이핑해서 완성하는 모습을 보여드리고 싶습니다.
ICEhttp://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment 서로 Session Description 을 교환 했으면 hole punching 을 통해서 P2P 상의 두 개체를 연결시켜야 한다. 이것이러한 hole punching 작업을 ICE 가 담당한다. 먼저 STUN 으로 가능한지 보고 그렇지 않다면 TURN 으로 두 개체를 연결한다.
사진 : ICE 동작 방식 Transport Address 를 얻고 Offer 와 Answer 과정을 잘 살펴보기 바란다. 위 사진에서 TURN 의 기능은 빠져 있다. 가장 먼저 하는 것이 offer 를 하는 caller 가 자신의 transport address 를 STUN 서버를 통해서 확인하는 것이다. 이것이 모든 P2P 에서 가장 먼저 하는 것이다. callee 의 경우 ( Signaling 과정 중에서 ) session request 가 들어오자 마자 (caller 가 보내는 offer 를 받자 마자) 곧 바로 callee 자신의 transport address 정보를 STUN 서버를 통해서 확인한다. Transport Address 는 다른 말로 Candidate Address 라고도 한다. Candidate Address 에는 총 4가지가 있다.
( 사진 : SDP 의 예 ) Foundation(s) 그룹을 표시하는 문자열이다. typ srflx (server reflexive) 는 STUN 서버로 부터 받은 (브라우저의) transport address 정보이다. typ relay 는 Relay (TURN) Server 의 transport address 정보이다. host candidate 는 내부 네트워크이므로 IP 정보는 해당 브라우저의 IP 정보와 동일하다.
Reminder :
DELETED
( 1 )
|
@알림 : 코멘트를 작성하시려면 로그인을 하십시오.