Web RTC - swkim0128/PARA GitHub Wiki


type: Server archive: false

WebRTC


WebRTC(Web Real-Time Communication)๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‚ฌ์ดํŠธ๊ฐ€ ์ค‘๊ฐ„์ž ์—†์ด ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ์˜ค๋””์˜ค๋‚˜ ์˜์ƒ ๋ฏธ๋””์–ด๋ฅผ ํฌ์ฐฉํ•˜๊ณ , ์ž์œ ๋กœ์šด ์ŠคํŠธ๋ฆผ๊ณผ ๋”๋ถˆ์–ด ์ž„์˜์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๊ธฐ๋Šฅ๋„ ์ œ๊ณต.

์ฃผ๋กœ ํ™”์ƒ ์ปจํผ๋Ÿฐ์Šค, ํŒŒ์ผ ๊ณต์œ , ํ™”๋ฉด ๊ณต์œ , ๋ฐฉ์†ก ๋“ฑ์— ์“ฐ์ž…๋‹ˆ๋‹ค.

[WebRTC API] https://developer.mozilla.org/ko/docs/Web/APIWebRTC_API

[WebRTC ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜] https://wormwlrm.github.io/2021/01/24/Introducing-WebRTC.html

[WebRTC STUN, TURN ์„œ๋ฒ„] https://andonekwon.tistory.com/59

STUN/TURN


์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ์—๋Š” ๋ฐฉํ™”๋ฒฝ์ด ์กด์žฌํ•˜๋ฉฐ, NAT(Network Address Translation)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ์„œ๋ฒ„, ํ˜ธ์ŠคํŠธ ๋“ฑ์ด ์ผ๋ถ€ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋งคํ•‘ํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค.

WebRTC๋Š” ์‹œ๊ทธ๋„๋ง(Signaling)์ด๋ผ๋Š” ํ†ต์‹  ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด P2P(Peer to Peer)๋กœ ํ†ต์‹ ํ•˜๋ฉฐ, ์ด ๋•Œ ๋ฐฉํ™”๋ฒฝ ๋’ค์— ์ˆจ์€ ๋„คํŠธ์›Œํฌ์— ์†ํ•œ ํด๋ผ์ด์–ธํŠธ Private IP ๊ฐ„์˜ P2P ํ†ต์‹ ์€ ๋ถˆ๊ฐ€ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด ๋•Œ STUN ๋˜๋Š” TURN ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

STUN(Session Traversal Utilities for NAT)


STUN ์„œ๋ฒ„๋Š” UDP ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์˜ Public IP๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹œ๊ทธ๋„๋ง ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Signaling Server ๋˜๋Š” Kurento ๋ฏธ๋””์–ด ์„œ๋ฒ„๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

TURN(Traversal Using Relays around NAT)


TURN ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋“ค์ด ์„œ๋กœ ํ†ต์‹ ํ•  ๋•Œ Public ๋ง์— ์กด์žฌํ•˜๋Š” TURN ์„œ๋ฒ„๋ฅผ ๊ฒฝ์œ ํ•˜๋„๋กํ•˜์—ฌ ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋ฐ์„ ๋ฆด๋ ˆ์ดํ•˜๋„๋ก Peer ์™€ Peer๊ฐ€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. TURN์€ STUN์˜ ํ™•์žฅ ๊ฐœ๋…์ด๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ NAT ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ ๋’ค์— ์ผ์„ ๋•Œ, NAT ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ์„ ์‰ฐํšŒํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ค‘๊ฐœ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Kurento ๋ฏธ๋””์–ด ์„œ๋ฒ„


Kurento ๋ฏธ๋””์–ด ์„œ๋ฒ„๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ WebRTC์˜ ์‚ฌ์–‘์ด ๋ชจ๋‘ ๊ตฌํ˜„๋œ WebRTC ๋ฏธ๋””์–ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ API๋ฅผ ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€์ด๋ฉฐ, WebRTC ํ™”์ƒ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ