SDP 교환 과정
- 호출자가 SDP offer를 만들면서 시작
- 수신자에게 offer를 전달
- 수신자는 호출자에게 SDP 정보를 포함한 answerSDP를 전송
이 단계를 거쳐서 수신자, 호출자는 서로의 SDP 값을 알게된다. 하지만, 미디어 데이터를 교환할 방법을 모르는 상태
ICE Candidate 교환
- SDP를 교환한 이후에 실행
- ICE Candidate를 교환
- 피어 간 서로 호환되는 ICE Candidate를 찾으면, 미디어 간 통신이 시작
- ICE Candidate 교환은 미디어 통신이 시작되었다 하더라도 지속적으로 교환하고, 더 나은 Candidate가 나오면 바뀐다.
Signaling Server
- 피어간 커넥션을 이어주는 매개자 역할을 하는 서버이다.
- 개발자가 직접 구축해야 하고, 구현방식에 제약이 없다.
- 아래 3가지 정보를 중개한다.
- ICE Candidate 정보 - Network 정보
- SDP - Media Capability 정보 교환
- Session Control Message - 피어간 연결 초기화, 종료, 에러 로그
NAT (Network Address Translation)
- 기술 라우터를 통해 네트워크 트래픽을 주고 받는 기술
- 라우터가 공인 IP를 가지고 있고, 라우터에 연결된 기기는 사설 IP를 갖는다.
- 공유기가 NAT의 기술에 사용되는 기기
ICE (Interactive Connectivity Establishment)
- 기술 P2P간 다이렉트 통신을 위한 기술로 서로의 기기와 통신하기 위해 최적의 경로를 찾게 해주는 프레임워크이다.
STUN (Session Traversal Utilities for NAT)
- 서버 STUN 서버는 기기의 공인 IP를 찾아내고 P2P 연결을 방해하는 요소가 라우터 내에 있는지 알아내는 프로토콜이다.
TURN (Traversal Using Relay around NAT)
- 서버 TURN 서버는 STUN서버를 이용한 연결이 실패했을 경우 미디어 데이터를 릴레이 해주는 역할을 한다.
- TURN 서버를 통해서 모든 정보를 중계하기 때문에 대안이 전혀 없을때만 사용하는 것이 바람직하다.
SDP (Session Description Protocol)
- 정보 P2P가 서로간 주고받을 데이터의 형식, 코덱, 암호화 방법 등을 기술하는 표준이다.
- 미디어 데이터 자체가 아닌 메타데이터이다.
- ICE Candidate 정보 P2P 간 다이렉트 통신을 위한 여러 경로이다.
- P2P 간 ICE Candidate 교환을 통해서 최적으로 경로를 정한다.
- Signaling Server 서버 기기 간 커넥션을 만드는 역할을 한다.
'Study' 카테고리의 다른 글
캐시와 캐싱서버 (0) | 2020.12.10 |
---|---|
Docker 에 mysql 서버 설치 (0) | 2020.12.10 |