TIL: WebRTC | WebRTC 소개

Lumpen·2023년 2월 7일
0

WebRTC

목록 보기
1/8

WebRTC

웹에서 사용하는 실시간 통신으로 WebAPI 를 사용
동영상, 음성, 일반 데이터를 동종 앱 간 전송할 수 있다
WebRTC 는 개방형 웹 표준으로 구현되며
모든 주요 브라우저에서 자바스크립트 API 로 제공된다

Android 와 iOS 에서는 동일 기능을 제공하는
라이브러리를 사용할 수 있다

애플리케이션 흐름

미디어 기기에 엑세스 - 피어 연결 open - 피어 검색 - 스트리밍 시작

ICE 서버

Interactice Connectivity Establishment
웹 브라우저가 피어와 연결할 수 있도록 돕는 프레임워크

피어 A - 피어 B 로의 직선 연결이 작동하지 않는
여러 이유를 우회할 수 있다
연결 open 을 막는 방화벽을 우회하고, 공용 IP 주소가 없는 경우 고유 주소를 제공하고, 라우터가 피어와 직접 연결하는 것을 허용하지 않는 경우 서버를 통해 데이터를 릴레이 한다
ICE 는 STUN 또는 TURN 서버를 사용하여 이를 수행한다

STUN

Session Traversal Utilities for NAT
공용 주소를 검색하고 피어와 직접 연결을 방해하는 라우터의 제한 사항을 결정하는 프로토콜

클라이언트는 클라이언트 공용 주소와 라우터의 NAT 뒤에서 클라이언트에 엑세스할 수 있는지 여부를 응답하는 인터넷의 STUN 서버에 요청을 보낸다

NAT

네트워크 주소 변환
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술
패킷에 변화가 생기기 때문에 IP 나 TCP/DUP의 체크섬도 다시 계산, 재기록 되어야 한다
떄문에 네트워크 성능에 영향을 줄 수 있다

NAT 를 사용하는 이유는 여러 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 경우가 대부분으로
공유기를 사용하는 경우 공유기에 NAT 기능이 탑재되어 있다
방화벽과 비슷한 보안 기능을 제공한다

NAT 의 종류는 1:1 의 Static, n:m 의 Dynamic, 1:n의 PAT 이 있다
대중적으로 IPv4 를 사용한다

TURN

Traversal Using Relays around NAT
NAT 를 사용하는 일부 라우터는 '대칭 NAT' 라는 제한을 사용한다
라우터가 이전에 연결한 피어의 연결만 수락함을 의미한다

TURN 서버와의 연결을 열고 해당 서버를 통해 모든 정보를 릴레이하여 대칭 NAT 제한을 우회하기 위한 것
TURN 서버와의 연결을 생성하고 모든 피어에게 서버로 패킷을 보내도록 지시하면 패킷이 전달된다
오버헤드가 있으므로 다른 대안이 없는 경우에만 사용된다

SDP

Session Description Protocol
데이터가 전송되면 두 피어가 서로를 이해할 수 있도록
해상도, 형식, 코덱, 암호화 등과 같은 연결의
멀티미디어 콘텐츠를 설명하는 표준
콘텐츠를 설명하는 메타데이터

기술적으로 SDP 는 프로토콜이 아니라 장치간 미디어를 공유하는 연결을 설명하는 데이터 형식

SDP 구조

하나 이상의 UTF-8 텍스트 행으로 구성되며
각 행은 한 문자 유형으로 시작하고
등호 ("="), 값 또는 설명으로 구성된 구조화된 텍스트
형식은 유형에 따라 다르고
주어진 문자로 시작하는 텍스트 행을 일반적으로 "문자 행" 이라고 한다
미디어 설명을 제공하는 줄은 유형 "m" 을 갖고
이러한 줄을 m-lines 라고 한다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글