Streaming

์ŠคํŠธ๋ฆฌ๋ฐ (Streaming)

Stream์ด๋ž€ ๋ฐ์ดํ„ฐ์˜ "ํ๋ฆ„"์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋™์˜์ƒ์„ HTTP๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋ฐ›๊ฒŒ ๋˜๋ฉด ์ „๋ถ€ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์žฌ์ƒํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋™์˜์ƒ์„ "์ŠคํŠธ๋ฆฌ๋ฐ"ํ•ด ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด(Streaming over HTTP), ์—ฌ๋Ÿฌ ์กฐ๊ฐ(chunk)๋กœ ๋‚˜๋ˆ ์„œ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ ๋„ ๋‹ค์šด๋กœ๋“œ์™€ ๋™์‹œ์— ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ŠคํŠธ๋ฆฌ๋ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด...

  • ๋™์˜์ƒ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Adaptive streaming์ด๋ผ๊ณ  ํ•ด์„œ, bandwidth๋‚˜ video size, network condition์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณด๋‚ผ ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ๊ฐ–๋Š” ๋ฐฉ์‹๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • HTTP-based delivery๋Š” ๋Œ€๋ถ€๋ถ„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง€์›ํ•˜๋ฏ€๋กœ ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ, HLS, DASH์™€ ๊ฐ™์€ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœํ† ์ฝœ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊น”์•„์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • DASH๋Š” ๋„ทํ”Œ๋ฆญ์Šค์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๋„ค์š”. (Streaming Over HTTP)

์ข…๋ฅ˜

  1. Progressive Download

  2. RTSP/RTMP Streaming

  3. Adaptive HTTP Streaming

1. Progressive Download

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. YouTube ๋“ฑ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์šด ๋ฐฉ์‹์ด๋ฉฐ, ์›น ์„œ๋ฒ„์— ๋™์˜์ƒ์„ ์˜ฌ๋ ค ๋‘๋ฉด ํ•ด๋‹น ์˜์ƒ์˜ ์ฃผ์†Œ๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • URL์„ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด๋กœ ์ ‘๊ทผํ•˜๋ฉด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , ๋‹ค์šด๋กœ๋“œ ๋œ ๋ถ€๋ถ„์„ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹จ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ ๋ณด๋Š” ๋งŒํผ์ด ์•„๋‹Œ ๋‹ค์šด๋กœ๋“œํ•œ ๋งŒํผ ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ๋น„๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ธํ„ฐ๋„ท ์†๋„์— ๋”ฐ๋ผ ์›ํ™œํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, YouTube๋ฅผ ์‹œ์ฒญํ•˜๋‹ค๊ฐ€ ์žฌ์ƒ์ด ๋ฉˆ์ถ”๊ณ  ๋Œ€๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด๋Ÿฐ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

  • ๋™์˜์ƒ์˜ ํ™”์งˆ์„ ์กฐ์ ˆํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. YouTube ์žฌ์ƒ ๋„์ค‘ ํ™”์งˆ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” YouTube๊ฐ€ ํ™”์งˆ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ ํ™”์งˆ๋กœ ์ด์–ด์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™”์งˆ ๋ณ„๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์˜์ƒ์„ ์˜ฌ๋ ค ๋†“๊ณ  ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

2. RTSP/RTMP Streaming

์œ„์˜ Progressive download์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ›์•„์˜ค์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ "์‹œ์ฒญ"ํ•˜๊ณ  ์žˆ๋Š” ์˜์ƒ์˜ ํ”„๋ ˆ์ž„๋งŒ์„ ์ „์†กํ•˜๋ฉฐ, ์ด๋ฏธ ์‹œ์ฒญํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ์€ ๋‹ค์Œ ๋‘ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • RTMP(Real Time Messaging Protocol)

    • ํ”Œ๋ž˜์‹œ๋ฅผ ์œ„ํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„ CDN์ด ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ํ•˜๋„ค์š”. (ํ”Œ๋ž˜์‹œ ์ง€์›์ด ๊ฑฐ์˜ ๋Š๊ธฐ๊ณ  ์œ ์ง€๋ณด์ˆ˜๋„ ์ค‘๋‹จ๋˜์–ด์„œ...)

  • RTSP(Real Time Streaming Protocol)

    • ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„๋‚˜ CDN์—์„œ ๋งŽ์ด ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง•์œผ๋กœ๋Š”,

  • ๋น„์šฉ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ์„œ๋ฒ„์—์„œ ๋งŽ์ด ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ๋‚ด ๋ฐฉํ™”๋ฒฝ์— ๋ง‰ํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ฒ„๋ฆฌ๋ฏ€๋กœ ์ธํ„ฐ๋„ท ์†๋„๊ฐ€ ์žฌ์ƒ๋ณด๋‹ค ๋А๋ฆฌ๋ฉด ์ž์ฃผ ๋Š๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • RTMP์˜ ๊ฒฝ์šฐ ์ค‘๊ฐ„์— ๋น„๋””์˜ค ํ’ˆ์งˆ์„ ๋ณ€๊ฒฝํ•ด๋„ ์ด์ƒ์ด ์—†์–ด ํ†ต์‹ ๋ง์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฑฐ๋‚˜ ํ•ด๋„ ์ •์ƒ์ ์œผ๋กœ ์žฌ์ƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋ผ์ด๋ธŒ ์˜์ƒ๋„ ์ŠคํŠธ๋ฆฌ๋ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3. Adaptive HTTP Streaming

์œ„์˜ ๋‘ ๋ฐฉ์‹ - progressive download์™€ RTMP, RTSP streaming์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” ๋ช‡ ์ดˆ ๋‹จ์œ„์˜ ๋น„๋””์˜ค๋ฅผ ๊ฐ–๊ณ  ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋ฉฐ, ์ด ์กฐ๊ฐ์„ ์—ฐ์†๋œ ์ŠคํŠธ๋ฆผ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ์‹œํ‚ต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์›น ์„œ๋ฒ„๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— CDN ์—…์ฒด๋“ค์ด ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฅผ ์ด์šฉํ•œ ๋Œ€ํ‘œ์  ์‚ฌ๋ก€๋Š” ์• ํ”Œ์˜ HLS(HTTP LIve Streaming)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ ์€ ์ •ํ•ด์ง„ ํ‘œ์ค€์ด ์—†์–ด ์—…์ฒด๋ณ„๋กœ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

    • Apple-HLS

    • MPEG-DASH

Protocol

Transport layer์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ธ TCP์™€ UDP ์ค‘ ์ŠคํŠธ๋ฆฌ๋ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์€ ์–ด๋–ค ๊ฒƒ์ผ๊นŒ์š”?

์ผ๋ถ€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐฉ์‹์—์„œ๋Š” UDP, ์ผ๋ถ€์—์„œ๋Š” TCP๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • TCP๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์ „์— ์ „์šฉ ์—ฐ๊ฒฐ์„ ์—ด๊ณ  ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€๋งŒ UDP๋Š” ๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— TCP๊ฐ€ ๋” ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

  • UDP๋Š” ์ผ๋ถ€ ํŒจํ‚ท์ด ์†์‹ค๋  ์ˆ˜ ์žˆ์ง€๋งŒ TCP๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค.

์ŠคํŠธ๋ฆฌ๋ฐ์˜ ๊ฒฝ์šฐ ์•ˆ์ •์„ฑ๋ณด๋‹ค ์†๋„๊ฐ€ ๋” ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”์ƒ ํšŒ์˜์— ์ฐธ์„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ๋ณด๋‹ค ๋‹ค๋ฅธ ํšŒ์˜ ์ฐธ์„์ž๋“ค๊ณผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ํŒจํ‚ท ๋ช‡ ๊ฐœ๊ฐ€ ์†์‹ค๋˜๋Š” ๊ฒƒ์€ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ UDP๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์•ˆ์ •์„ฑ์ด ๋” ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ (HLS), MPEG-DASH ๋ชจ๋‘ ์ „์†ก์— TCP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋งŽ์€ ์ฃผ๋ฌธํ˜• ๋น„๋””์˜ค ์„œ๋น„์Šค์—์„œ TCP๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Buffering

์ŠคํŠธ๋ฆฌ๋ฐ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด๋Š” ์—ฐ๊ฒฐ์ด ์ž ์‹œ ์ค‘๋‹จ๋˜๋”๋ผ๋„ ๋น„๋””์˜ค๋‚˜ ์˜ค๋””์˜ค๊ฐ€ ๊ณ„์† ์žฌ์ƒ๋  ์ˆ˜ ์žˆ๋„๋ก ์ŠคํŠธ๋ฆผ์˜ ๋ช‡ ์ดˆ ๋ถ„๋Ÿ‰์„ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๋Š”๋ฐ, ์ด๋ฅผ ๋ฒ„ํผ๋ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฒ„ํผ๋ง์„ ์ด์šฉํ•ด ๋™์˜์ƒ์„ ์›ํ™œํ•˜๊ณ  ์—ฐ์†์ ์œผ๋กœ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ์†๋„๊ฐ€ ๋А๋ฆฌ๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋ฉด ๋ฒ„ํผ๋ง์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

References

์ŠคํŠธ๋ฆฌ๋ฐ์— ๋Œ€ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์•„๋ž˜ ์ถœ์ฒ˜์—์„œ ๋‹ด์•„ ์™”์Šต๋‹ˆ๋‹ค.

Last updated

Was this helpful?