투케이2K

58. (Aws/Amazon) [Aws Kinesis Video Streams] Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리 본문

Aws (Amazon)

58. (Aws/Amazon) [Aws Kinesis Video Streams] Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리

투케이2K 2025. 5. 7. 20:09

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services

- 기술 구분 : Aws / Kinesis Video Streams / KVS / WebRTC

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. WebRTC 설명 : 

  >> WebRTC 란 실시간 라이브 비디오를 웹 브라우저 및 모바일, 연결된 디바이스 간에 실시간 통신을 가능하게 하는 API 입니다

  >> WebRTC 는 연결된 피어간 지연시간이 짧은 미디어 스트리밍을 제공합니다


2. WebRTC 기술 : 

  >> P2P 연결을 설정하기 위해 상호연결설정(ICE), TURN, STUN을 비롯한 IETF 프로토콜을 포함합니다

    - P2P 연결은 인터넷을 사용중인 다수의 사용자들이 서버를 거치지 않고 직접 데이터를 전송할 수 있도록 하는 연결 방식을 의미합니다

  >> WebRTC [ICE] 연결 형태 : 

    - Relayed Address : TURN 서버가 패킷 릴레이를 위해 할당하는 주소

    - Server Reflexive Address : NAT 가 매핑한 클라이언트의 공인망 (Public IP, Port)

    - Local Address : 클라이언트의 사설주소 (Private IP, Port)

  >> WebRTC 통신은 표준화된 암호화 프로토콜을 통해 안전하게 암호화됩니다


3. WebRTC 구성 요소 및 용어 정리 : 

  >> 네트워크 주소 변환 (NAT) : 비공개 IP 주소를 공개 IP 주소에 매핑하거나 가장 일반적으로는 여러 비공개 IP 주소를 하나의 공개 IP 주소에 매핑하는 기술입니다

    - IP 주소는 장치 간 연결을 설정하는 데 필수적입니다

  >> Signaling Channel (신호 채널) : 애플리케이션이 신호 메시지를 교환하여 P2P 연결을 검색, 설정 제어 및 종료할 수 있도록하는 리소스입니다

  >> Peer : 웹캠, 모바일 등 Kinesis Video Strams WebRTC 를 사용해서 실시간 양방향 스트리밍을 위해 구성된 모든 디바이스입니다

  >> Master : 신호 채널에 연결을 시작하고 신호 채널에 연결된 Viewer (뷰어) 와 미디어를 검색하고 교환할 수 있는 Peer 입니다

    - 신호 채널에는 최대 1개의 Master 만 연결 가능합니다

  >> Viewer : 신호 채널에서 Master 의 미디어를 검색하고 교환할 수 있는 Peer 입니다

    - 제공되는 신호 채널을 통해 다른 시청자를 발견하거나 상호 작용은 할 수 없으며, 채널 당 최대 10개의 Viewer 만 연결 가능합니다

  >> SDP : 데이터가 전송되면 두 Peer 가 서로 이해할 수 있도록 해상도, 포트, 코덱, 암호화 등과 같은 스트리밍 정보를 담은 멀티미디어 콘텐츠 설명 텍스트 포맷입니다

  >> Offer / Answer	: 통신 연결을 협상하기 위한 SDP 메시지입니다 (초기 연결 설정)

    - SDP Offer : 세션을 생성하거나 수정하기 위해 세션 설명을 생성하는 에이저트가 보낸 SDP 메시지입니다

    - SDP Answer : 제안자로부터 받은 제안에 대한 응답으로 응답자가 보낸 SDP 메시지입니다

  >> ICE : NAT/P2P 환경에서도 연결 가능한 경로 (IP, 포트 등) 를 찾기 위한 기술로 Peer 와 통신에 사용할 수 있는 방법입니다

  >> ICE candidate : 연결 가능한 (IP + Port 조합) 경로로 Peer 가 통신에 사용할 수 있는 방법입니다

  >> TUN (Traversal Using Relay around NAT) : 주변의 릴레이를 사용한 순회를 의미하며, 서버를 통해 모든 정보를 중계하여 대칭 NAT 제한을 우회하는데 사용되는 방식입니다

    - (릴레이서버 사용) TURN 서버는 Relayed Address와 Server Reflexive Address 를 모두 응답합니다

    - STUN, TURN 서버를 이용해 SDP Answer IP주소 를 취득 후 RTCPeerConnection Remote 연결을 수행합니다

    - 대칭 NAT 는 동일한 내부 IP 주소 및 포트에서 특정 목적지 IP 주소 및 포트로의 모든 요청이 동일한 외부 IP 주소 및 포트에 매핑되는 대칭 NAT입니다

  >> STUN (Session Traversal Utilities for NAT) : 두 장치가 서로의 공용 IP 주소를 검색하고 직접 연결을 시작할 수 있는 방식입니다

    - (같은 와이파이 망) STUN 서버는 HOST 를 거쳐 >> Server Reflexive Address 만을 응답합니다

    - STUN, TURN 서버를 이용해 SDP Answer IP주소 를 취득 후 RTCPeerConnection Remote 연결을 수행합니다


4. WebRTC 주요 사용 포트 : 

  >> RTP(실시간 전송 프로토콜) : 5004 포트를 사용합니다

  >> Signaling 단계 : 80 / 443 (WebSockets : TCP 접속에 통신 채널을 제공하는 통신 프로토콜) 포트를 사용해서 신호를 보냅니다

  >> Discovery 단계 : 3478 포트를 사용해서 서버와 통신합니다

  >> P2P 연결 : 0 – 65535 범위에서 임의 포트를 사용해서 연결합니다


5. WebRTC SDP 오퍼 생성 및 응답 , 스트리밍 플로우 : 

  >> [Viewer] -- Signaling Server -- SDP Offer --> [Master]
  
  >> [Master] -- SDP Answer --> [Viewer]

  >> [Viewer] -- ICE Candidate --> [Master]
  
  >> [Master] -- ICE Candidate --> [Viewer]

  >> P2P 연결 성립 → 스트리밍 시작

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Aws Kvs WebRTC 실시간 영상 재생 관련 학습 정리]

https://blog.naver.com/kkh0977/223855985471


[Kvs 실시간 영상 재생 관련 STUN , TUN 서버 연결 이슈]

https://blog.naver.com/kkh0977/223162726931?trackingCode=blog_bloghome_searchlist


[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행 - KVS Stream Video]

https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist


[AWS 사이트 주요 질문 정리 사이트]

https://aws.amazon.com/ko/kinesis/video-streams/faqs/

// --------------------------------------------------------------------------------------
 
반응형
Comments