프로그래머...

필고 개발자그룹에서는
필리핀에 계시는 개발자분들이 함께 성장 할 수 있는 공간입니다.

정모: 11월 1일
Image at ../data/upload/7/1203907Image at ../data/upload/4/1112674Image at ../data/upload/2/1046612Image at ../data/upload/9/838729Image at ../data/upload/6/820796Image at ../data/upload/9/766049Image at ../data/upload/0/766040Image at ../data/upload/5/746745
Sub Page View
Today Page View: 0
Yesterday View: 22
30 Days View: 317
Image at ../data/upload/3/2288953

강좌 : 화상 통화 시스템 개발 프로젝트 Video Call System Development Project - ICE

Views : 5,835 2013-09-12 12:57

QR 스캔해주세요.
필고 개발자 그룹 1269547305
Report List New Post

출처 : 필고 개발자 스터디 그룹 http://www.philgo.com

 

ICE 는 생각보다 많은 일을 합니다.

ICE 가 하는 주요한 일이 바로 Hole Punching 입니다. P2P 가 방화벽이나 NAT 에 막혀 있을 때 그러한 장벽을 뚫고 두 개체를 연결 시키는 역활을 하죠.

본 글에서는 ICE 의 STUN 부분에 대해서만 설명을 하고 있습니다.

차차 더 많은 정보를 올리도록 하겠습니다.

 

가능하다면 필고에서 오프라인 모임을 통해서 실제로 화상 통화 프로그램 제작을 선 보이며 소스 파일에 하나 하나 타이핑해서 완성하는 모습을 보여드리고 싶습니다.

 

 

ICE

http://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가지가 있다.

  • Host
    이 candidate address 는 로컬 네트웍에서 사용이 된다.

  • Server Reflexive ( srflx 로 표기 )
    이 candidate address 는 STUN 에 의해서 얻어지는 것으로 현재 브라우저가 있는 최근방의 Public IP 정보를 가지고 있다.

  • Peer Reflexive ( prflx 로 표기 )
    이 candidate address 는 STUN 에 의해서 얻어지는 것으로 현재 브라우저가 아닌 연결을 하려는 상대방의 연결 정보를 가지고 있다.

  • Relayed
    이 candidate address 는 TURN 의 주소 정보를 가지고 있다.


( 사진 : SDP 의 예 )

Foundation(s) 그룹을 표시하는 문자열이다.

typ srflx (server reflexive) 는 STUN 서버로 부터 받은 (브라우저의) transport address 정보이다.

typ relay 는 Relay (TURN) Server 의 transport address 정보이다.

host candidate 는 내부 네트워크이므로 IP 정보는 해당 브라우저의 IP 정보와 동일하다.

  본 글을 신고하시겠습니까?
Report List New Post
필고 개발자 그룹
No. 95
Page 3
권오창@페이스...  3224  19-04-07
만강이  2860  15-08-31
Photo Post thumbbail image
whizenglish  4309  15-06-20
Post thumbnail image
whizenglish  7196  15-05-21
커먼웰쓰  3479  15-05-14
바다디다  2591  15-02-21
dnfkfkfkfkf  3464  15-01-25
필고관리자  2991  15-01-03
Post thumbnail image
필고관리자  9941  15-01-03
굿리  3395  15-01-02
요잇  3259  14-12-11
jeremyPark  3053  14-12-03
Post thumbnail image
thruthesky  39687  14-09-30
필고관리자  3444  14-09-30
오늘도잠온다  3776  14-05-03
오늘도잠온다  3375  14-04-07
필고관리자  4233  14-01-15
thruthesky  10564  14-01-11
thruthesky  5611  13-12-22
Post thumbnail image
thruthesky  6819  13-12-16
thruthesky  10268  13-11-26
thruthesky  3825  13-11-24
thruthesky  2184  13-11-10
thruthesky  2557  13-11-10
thruthesky  4845  13-11-10
thruthesky  3689  13-11-10
thruthesky  2698  13-09-29
Post thumbnail image
thruthesky  7972  13-09-28
Post thumbnail image
thruthesky  10947  13-09-28
오늘도잠온다  4605  13-09-27
오늘도잠온다  2133  13-09-27
Photo Post thumbbail image
필고관리자  10219  13-09-21
thruthesky  2790  13-09-15
Photo Post thumbbail image
thruthesky  5836  13-09-12
Photo Post thumbbail image
thruthesky  2574  13-09-11
Photo Post thumbbail image
thruthesky  12933  13-09-10
Photo Post thumbbail image
thruthesky  12162  13-09-08
Photo Post thumbbail image
thruthesky  5245  13-09-07
thruthesky  3951  13-09-03
깜씨  3561  13-09-02