Transcript
Netmanias 기술문서: Netflix Streaming
www.nmcgroups.com
About NMC Consulting Group
NMC Consulting Group was founded on year 2002 and is advanced, professional network consulting company which is specialized for IP Network area like FTTH, Metro Ethernet and IP/MPLS, Service area like IPTV, IMS and CDN
lastly, Wireless network area like Mobile WiMAX, LTE and Wi-Fi.
Copyright ⓒ 2002-2013 NMC Consulting Group. All rights reserved.
Netflix Streaming 방식
2013.07.11
NMC Consulting Group
tech@netmanias.com
www.netmanias.com/
www.nmcgroups.comCopyright ⓒ 2002-2013 NMC Consulting Group. All rights reserved.
Netmanias 기술문서: Netflix Streaming
2
Netflix의 컨텐츠 전달 방식은?
n Netflix의컨텐츠전달방식은기본적으로HTTPAdaptive Streaming방식임
n HTTPGET메시지:동일컨텐츠라도단말유형(브라우져, xBoX, Roku, Playstation등)과CDN(Akamai, Limelight, Level3,Netflix
Cache)에따라비디오파일요청방식과포맷이다름
http://netflix094.as.nflximg.com.edgesuite.net/
sa53/384/534975384.ismv/range/0-
57689?token=1311456547_411862e41a33dc93ee7
1e2e3b3fd8534
Akamai
CDN
http://netflix-094.vo.llnwd.net/s/stor3/384/
534975384.ismv/range/0-
57689?p=58&e=1311456547&h=2caca6fb4cc2c522
e657006cf69d4ace
Limelight
CDN
http://nflx.i.ad483241.x.lcdn.nflximg.com/384/
534975384.ismv/range/0-
57689?etime=20110723212907&movieHash=094&
encoded=06847414df0656e697cbd
Level3
CDN
GET /534975384.ismv
?c=us&n=6939&v=3&e=1364141076&t=GZMy5utdV
LnnKf0e74yPExK6td0&d=moviecontrol&p=5.m65qO
WNvVXQ7SxkuG61oCWGbPmpKAFXfOP3CDoKQ75U
HTTP/1.1
Range: bytes=82019-
Host: 108.175.38.98
Netflix
Cache
(Roku)
GET /534975384.ismv/range/3404691-3928119
?c=us&n=6939&v=3&e=1364144177&t=LWB2QRGkTlrHKpUzSQoR9KXZa5
M&d=silverlight&p=5.sE5BBag3jHHEnrU93cEQCSAfapeJsI8Kw7mQwJR3KY&random=428708412HTTP/1.1
Host: 108.175.38.98
Netflix Cache
(Chrome
/Windows)
GET /534975384.ismv/range/882863-933524
?c=us&n=6939&v=3&e=1364142643&t=DlZN0I2J6G9eepVcN1XCxpU7p2w
&d=silverlight&p=5.4gAEe8__X9iZR-ie4jp_4qG4xiLTcbhiOjAdMH_j2Q&random=1937361906HTTP/1.1
Host: 108.175.38.98
Netflix Cache
(Firefox
/Windows)
GET /534975384.ismv
?c=us&n=6939&v=3&e=1364141076&t=GZMy5utdVLnnKf0e74yPExK6td0
&d=moviecontrol&p=5.m65qOWNvVXQ7SxkuG61oCWGbPmpKAFXfOP3C
DoKQ75UHTTP/1.1
Range: bytes=82019-
Host: 108.175.38.98
Netflix Cache
(Roku)
GET /534975384.ismv/range/122921-254131
?c=us&n=6939&v=3&e=1364141926&t=D1jlVCva9x1hG2oj166eR3SpUJQ
&d=xbox&p=5.odORcH4wyeD6dIGcVGg2C6hGS1UgDmzCP0PsSp7Pf0&random=842281887HTTP/1.1
Host:ipv4_1.lagg0.c012.sjc002.ix.nflxvideo.net
Netflix Cache
(xBox)
동일비디오파일(534975384.ismv)이3개의CDN과Netflix Cache에배포됨 한번에전체비디오파일을요청하지않고부분을요청(Byte Range Request)
Akamai/
Limelight/
Level3
이용자
(통신사업자
가입자)
YouTube
통신사업자IP네트워크
Global CDN OTT
HTTPAdaptive Streaming
(ABR:Adaptive Bit Rate)
Netflix CacheCopyright ⓒ 2002-2013 NMC Consulting Group. All rights reserved.
Netmanias 기술문서: Netflix Streaming
3
Netflix ABR Streaming (Roku Box 의 경우)
HTTPGET (82,019-)
HTTPGET (1,411,829-)
HTTPGET (2,321,139-)
HTTPGET (3,903,631-)
HTTPGET (8,955,289-)
HTTPGET (22,739,132-)
981,216B
180,304B
660,256B
2,635,696B
5,066,640B
853,680B
Chunk 1 요청 (Range Request: 해상도 1인 파일을 82,019B부터 끝까지 달라)
981KB정도 받고 TCP 세션 끊고...
File Size=156,196,630B
File Size=246,566,283B
File Size=365,944,950B
File Size=488,646,981B
File Size=682,481,099B
해상도 1 파일
15304768.ismv
해상도 2 파일
22630482.ismv
해상도 3 파일
20693663.ismv
해상도 4 파일
17864652.ismv
해상도 5 파일
17091067.ismv
해상도 6 파일
18266773.ismv
Chunk 2 요청 (Range Request: 해상도 2인 파일을 1,411,829B부터 끝까지 달라)
180KB정도 받고 TCP 세션 끊고...
...
File Size=1,131,448,090B
n한 편의 영화 비디오 컨텐츠를 여러 개의 서로 다른 해상도를 갖는 파일로 인코딩하고 단말은 망 상황에 따라 서로 다른
해상도의 비디오 파일에서 필요한 부분을 요청하여 받아감Copyright ⓒ 2002-2013 NMC Consulting Group. All rights reserved.
Netmanias 기술문서: Netflix Streaming
4
Netflix ABR Streaming (Roku Box 의 경우)
Chunk 1 (해상도1파일의82,019B부터
시작되며사이즈가981KB임)
Chunk 2 (해상도2파일의1,411,829B부터시작되며사이즈가180KB임)
981KB
180KB
660KB 2,635KB
Chunk 3 (해상도3인파일의2,321,139B부터
시작되며사이즈가660KB임)
Chunk 4 (해상도4인파일의3,903,631B부터
시작되며사이즈가2,635KB임)Copyright ⓒ 2002-2013 NMC Consulting Group. All rights reserved.
Netmanias 기술문서: Netflix Streaming
5
Netflix ABR Streaming (Roku Box 의 경우)
156,196,630B
246,566,283B
365,944,950B
488,646,981B
682,481,099B
253,216B
660,256B
1,165,744B
82,019-
1,411,829-
2,321,139-
3,903,631-
8,955,289-
903,104B
292,320B
2,157,360B
5,667,730B
981,216B
180,304B
2,635,696B
5,066,640B
82,019-
82,019-
970,752B
1,298,810-
1,411,829-
244,251B
2,286,572-
2,411,859-
3,226,721-
2,416,668B 4,681,263-
7,331,433-
5,212,752B 9,723,052-
...
해상도 1 파일
15304768.ismv
해상도 2 파일
22630482.ismv
해상도 3 파일
20693663.ismv
해상도 4 파일
17864652.ismv
해상도 5 파일
17091067.ismv
Roku 1이 수신한 바이트 Roku 2이 수신한 바이트 Roku 3이 수신한 바이트
n동일영화를서로다른Roku Box를통해시청할때각Roku Box가요청하는Byte Range값이다름
글을 보면 같은 해상도 파일을 요청 하더라도 client의 상황에 따라 전송 되는 byte가 다 틀리다는 말이네요.
어떻게 구현 했는지 참 궁금 하네요.
하지만 Microsoft Siverlight과 달리, Netflix Client는 Netflix가 자체 개발한 것으로 Client가 비디오 파일을 요청할 때 사용자마다 동일한 사이즈의 Chunk를 요청하지는 않습니다.
참고로 위 넷매니아즈 기술문서 (Netflix ABR Streaming)에서 Netflix Client의 Byte Range Request는
올해(2013년) 3월말에 실측하여 Wireshark으로 캡춰하여 얻은 내용입니다.
테스트 횟수가 많지 않아 정확히 얼마나 다른 지 (모든 사용자에 대해 완전히 다 다른 지,
어느 정도 Chunk 사이즈의 패턴이 있는 지)는 확인할 수 없었으나,
3번의 테스트에서 3번 모두 다르게 나타났습니다.
그리고 동일 해상도의 파일의 경우에도 사용자마다 서로 다른 사이즈의 Chunk가 전달되는 데,
이는 CDN 에지 서버가 Client를 식별하여 서로 다르게 주는 것이 아니라,
Client가 서로 다른 사이즈의 Chunk를 요청하는 것이고 서버는 단지 아무 생각없이 달라는 대로 주는 겁니다.
아래 Paper도 참고하세요.
An Experimental Evaluation of Rate-Adaptation Algorithms
in Adaptive Streaming over HTTP
https://www.netmanias.com/bbs/download.php?id=cshare&no=180&file=0