[ WebRTC ] 1일차 - 기초지식 주입중 ...
최대한 알기 쉽게 요약 !
- WebRTC를 통해 화상통화 + 채팅 + 게임 + 파일전송등을 손쉽게 할 수 있음.
- 대표적인 예 카톡영상통신, 행아웃 등 생각하면 됨
- P2P(개인간 통신)이 기본이지만 쫌 머리쓰면 다자 통신도 가능(서버 추가구성 필요)
1. WebRTC 미리보기
1.1 기본 체계
WebRTC 를 통해 다른 웹 브라우저에 P2P(개인간) 연결을 손쉽고 빠르게 할 수 있습니다. 일반적으로 통신을 배우려 한다면 NAT, 데이터손실, 연결 끊기 등 다양한 문제를 처리해야 되는데 WebRTC를 사용하면 이런 기능을 브라우져에서 기본적으로 제공하게 됩니다.
WebRTC API는 미디어 캡춰, 음성 및 영상의 인/디코딩 처리, 전송/세션 레이어관리를 지원합니다.
- 미디어 캡춰 : 사용자의 카메라와 마이크 권한 획득 후 스트림 처리
- 음성 및 영상의 인/디코딩 처리 : 영상을 프레임단위로, 음성을 작은 단위로 나눠 압축/복원 하는 코덱 지원(H.264, iSAC, Ipus, VP8 등)
- 전송 레이어 : 패킷 교환, 정렬, 손실 및 다른 유저에게 접속하는 것을 WebRTC API를 통해 손쉽게 관리
- 세션 관리 : 접속 관리, 연결, 조직화 등을 관리(signaling 이라 부름)하며 RTCDataChannel API를 통해 처리
1.2 WebRTC의 활용
- 실시간 마켓팅
- 실시간 광고
- 백오피스 통신(CRM, ERP, SCM, FFM)
- 채용 괸리
- 소셜 네트워킹
- 데이팅 서비스
- 온라인 의료 상담
- 금융 서비스
- 감시
- 멀티 게임
- 실시간 방송
- 이러닝
2. WebRTC 아키텍처
복잡함
여러 구성이 있긴 하지만 (개인 - 서버 - 개인 형태로 연결) 이구성을 통해 개발해보기로 함. (중간에 ICE + STUN / TURN은 일단 배제)
접속 => 연결관리(세션관리, 응답, 스트리밍관리, ICE 후보관리) => 이벤트 처리
2.1 RTCPeerConnection
- WebRTC API의 진입점
- 개인간 연결 초기화할 때 유용
2.2 MediaStream
- getUserMedia API
- 음성 및 영상 스트림에 접속권한 부여
- 사용자 기기(카메라, 마이크) 선택 정보 관리
- 스트림(영상,음성) 전송 중 보안레벨 지원
2.3 RTCDataChannel
- 개인간의 미디어 스트림 전송 채널 관리
2.4 요약
- RTCPeerConnection : 접속 관리
- MediaStream : 사용자 기기관리 및 보안
- RTCDataChannel : 데이터 처리, 채널링
3. 환경구성
3.1 정적 웹서버 설치
- nodejs 설치
- node-static 설치
sudo npm install -g node-static - 실행
static명령어가 실행된 기준 해당 디렉토리가 static 하게 웹호스팅 된다
3.2 WebRTC 프로토콜
실시간 데이터 통신은 두 사용자간 빠른 속도로 대화하는 것이다. 고품질 유지를 위해서는 초당 약 30~60회 음성/영상 데이터가 교환이 필요하다. 그래서 중요한건 최신 데이터(프레임)를 상대에게 보내는 것이 중요
3.3 라우팅 기술
- STUN (Session Traversal Utilities for NAT) : 세션 순회 유틸
STUN 서버를 통해 사용자 식별(IP정보) 후 사용자 간의 연결을 도움.
실운영(production) 환경에서는 자체 STUN 및 TURN을 배포해야합니다.
- TURN (Traversal Using Relays around NAT) : 릴레이를 사용한 순회
STUN 을 허용하지 않는 네트워크에서는 TURN을 활용하여 사용자 식별
하지만, 왠만한 곳에서 TURN 없이 STUN 으로만 사용자 식별이 가능함.
- ICE (Interactive Connectivity Establishment) : 대화 형 연결 설정
ICE는 STUN 서버를 사용하여(연결 실패 시 TURN 사용) 연결된 사용자정보를 클아이언트 응용 프로그램에 알린 후 연결을 설정합니다.
3.4 데이터 전송
WebRTC에서는 SCTP 프로토콜을 통해 DataChannel 개체로 감싸서 데이터를 보내는 API를 제공합니다. (SCTP 프로토콜 : UDP의 높은 성능과 신뢰성이 포함된 프로토콜)
Leave [ WebRTC ] 1일차 - 기초지식 주입중 ... to:
Read more #kr posts
Best Posts From wonsama
We have not curated any of wonsama's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From wonsama
- 오랜만의 하이브 포스팅 입니다.
- [게임] splinterlands - 카오스 레기온팩 판매정보
- test
- [잡설] 샤크트론 LV4/9
- [잡설] 토큰 이야기 거래량 TOP10
- [잡설] 샤크트론 가즈앙~
- [트론] 샤크 - 샤크 다이스
- [잡설] 붉은 물결 ~ 오르즈앗~
- [잡설] 이제다시 상승?
- [잡설] 리퍼리움 ... 1000% 실화 ㄷ
- [드디어] 데이터 동기화가 완료 되었네요 휴...
- [잡설] 퇴근길
- [개털풀] 9월분 배분
- [잡설] 구글에서 검색하다 우연하게 본 3년 전 글
- [트론] SSK - 썬 스테이크 네트워크
- [잡설] 연휴 마지막 날이 ...
- [잡설] 트럼프 코로나 걸려서 ... 대공황 흠...
- [잡설] 추석 잘 보내세요
- [잡설] 라이언방향제
- [잡설] 추석 연휴네요