2013년 11월 4일 월요일

[튜토리얼/한글화] WebRTC의 실제: STUN, TURN, 시그널링(WebRTC in the real world: STUN, TURN and signaling)

HTML5Rocks에 WebRTC의 전반적인 구조와 방식에 대해 설명하는 "WebRTC in the real world: STUN, TURN and signaling"가 업데이트되었습니다. WebRTC에 대해 공부를 시작하신 분들이나 개념을 잡으려 하시는 분들이 보시면 도움이 될 듯 합니다.


TL;DR;


WebRTC는 P2P 통신을 가능하게 하지만 구축에는 서버가 필요합니다. 클라이언트 간 데이터 교환을 위해 '시그널링(Signaling)'이라고 부르는 통신 설정의 수행 과정이 필요하며 이 과정을 통해 네트워크 주소 변환(NAT) 및 방화벽에 대응하게 됩니다.

이 글은 시그널링(Signaling) 서비스를 어떻게 구축하는지와 STUN 및 TURN 서버를 사용하여 실제 커넥션 상의 문제점을 처리하는지. 그리고 WebRTC 어플리케이션이 어떻게 다자간 통신을 처리하는지와 VoIP 및 PSTN(일반 전화망)과 같은 서비스와 상호 작용하지에 대해 설명합니다.

이 글에서 설명하는 내용들


  • 시그널링
    • 시그널링(Signaling)이란 무엇인가
    • 시그널링이 왜 WebRTC에서 정의되지 않았는가
    • 실제 연결을 위해 RTCPeerConnection을 사용하는 방법
    • 구현 및 Peer의 탐색 방법
  • 시그널링 서비스의 구축 방법
    • 서버에서 클라이언트로의 메세지 푸시
    • 시그널링 확장 방법
    • Node.js에서 Socket.io를 이용한 시그널링 서비스의 구축
    • 시그널링을 위한 RTCDataChannel의 사용
    • 기존 시그널링 서버들
    • 시그널링에서의 보안 
  • NAT와 방화벽을 대응하기 위한 STUN과 TURN 서버에 대한 설명
    • STUN - 외부에서 내부망에 대한 접근을 위한 방법을 제공
    • TURN - UDP를 우선으로 Peer 간의 직접적인 통신을 설정하고 이를 사용할 수 없을 경우 TCP/IP를 기반으로 종단 간의 데이터를 릴레이하는 방법을 제공
  • 기타 사항
    • 다자간 WebRTC
    • VoIP, 전화, 메시징의 활용 방법

참조 링크