본문 바로가기

학습 기록 (Learning Logs)/CS Study

WebRTC - Communicating with clients

 

 


 

출처: https://www.youtube.com/watch?v=bWcNEk0H4Y0

 

 


web socket

중간에 서버 있다

 

client가 늘어날수록 서버에 부담

 
오디오, 영상이 실시간으로 주고 받는 경우 서버가 더더욱 힘들 것이다
 

 

 

 

 


서버 없이 client 끼리 주고 받는 방법이 없을까?

 
 
 
 

 


Web RTC

클라이언트 간 직접 연결

표준화 된 구현

높은 호환성

기본적으로 암호화된 통식 방식

 

사용되는 곳

실시간 화상채팅, 회의

원격 협업 업무

 

클라이언트와 클라이언트가 데이터를 주고 받음

 
음성 통화, 화상 채팅

 

브라우저 API로 사용 가능

 

모바일, desktop 에서는 라이브러리 필요함

 

 

 

 

 

 

 


Web RTC 동작 원리

영상 통화 예시

 

연결 되기 전
peer to peer

signaling
시그널링
무엇으로 대화할까?
어떻게 대화할까?
 
 

 

 


SDP

SDP
Sesstion
Description
Protocol

- 시그널링에 사용되는 프로토콜

 


 

 

 
클라이언트들은
서로 소통에 사용할 수 있는
네트워크 경로의 정보를 보낸다
 
 
 
host candidate

두 사용자가
같은 로컬 네트워크에 속한 경우

port 번호만 교환하면 된다
server reflexive candidate

화상통화는
대부분 먼거리에 있는 사람들에서 일어난다
NAT
네트워크에 연결됨

하나의 공인 ip 주소을 통해서
여러 장치가 
인터넷에 접속한다

특정 기기와 연락을 주고 받으려면
해당 기기에 연결된 라우터의
공인 ip + port를 알아야한다
 

 

 

 

 


STUN

sesstion

Traversal

Utilities

for NAT Server

 

- 나의 주소를 알아내기 위한 방법

client 자기자신의 자주 변경되는 ip, port를 알아내기 위한 것

 

 

클라이언트는 stun server에 요청을 보낸다

 

stun 서버는 응답으로 ip, port를 알려준다

 

 

 

 

 
 
   
   

 

 


TURN

Traversal Using Relays around NAT

 

 

 

 


 

데이터 전송

 

화상 채팅
음성 통화
udp 사용
신뢰성
빠른 전송
 

 

 

 

SRTP

secure Real-time transport protocol

- 비디오, 오디오 실시간 전송

 

 

 

SCTP

Stream Control Transmission Protocol

- 신뢰성

- 파일 보낼 때 사용

 

 


WebRTC 적용하면 안되는 경우?

다 : 다 통신

 

Selective Forwarding Unit Multipoint Control Unit