네트워크 - Streaming and CDNs

2020-11-21

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


Video Traffic

현재 인터넷 대역폭의 대부분이 비디오 트래픽입니다.

특히 미국의 경우, 전체 ISP 트래픽의 37%는 넷플릭스(Netflix), 16%는 유튜브(Youtube) 동영상 트래픽들이 차지한다고 합니다.

두 개의 서비스만 해도 53%이고 그 외에 멀티미디어 트래픽까지 합치면 7~80% 이상이 멀티미디어 트래픽으로 합쳐 집니다.

이런 비디오 트래픽의 문제점은 역시 scalability 입니다.

특히 멀티미디어 서비스는 데이터가 크기 때문에 데이터 서버가 한 군데에 있게 되면 요청들을 처리하기 버거워 집니다.

클라이언트 수가 많고 일부 클라이언트들은 매우 멀리 있는데 여기에 큰 용량의 데이터를 전달하는 것은 쉽지가 않게 됩니다.

이것에 대한 해결책으로 나온 것이 Content Distribution Networks 입니다.

Content Distribution Networks(Content Provider Networks)

각각 앞에 보았던 유튜브라던지, 넷플리스라던지 이런 회사들은 서버를 한 군데 두지 않고 전 세계에 분산된 서버들을 가지고 있습니다.

일부 서버가 고장이 나더라도 다른 서버에서 서비스를 지속적으로 받을 수 있고, 거리가 가깝기 때문에 지연시간도 짧아지는 장점들을 가집니다.

수신받는 곳과의 거리가 멀다면 멀리 가기 위한 트래픽을 다 사용해야 하지만, 여러곳에 분산 되어있기에 가까운 곳에서 받아오면 트래픽의 양도 적어집니다.

비디오 서비스에서 가장 유명한 것이 넷플릭스인데, 넷플릭스가 어떤식으로 동작하는지 살펴 봅니다.

Case Study : Netflix

넷플릭스를 통해서 영화를 보고싶다고 하면

먼저 넷플릭스 계정을 관리하는 서버에 접속을 하게 됩니다.

로그인에 성공 하고 나면 아마존 클라우드에 어떤 영화 목록이나 프로그램 목록을 담은 서버가 존재 합니다.

이 클라이언트는 아마존 클라우드에 접속을 해서 자기가 보고싶은 영화를 검색합니다.

특정한 영화를 검색하게 되면 그 영화에 대한 manifest file이라는 것,

XML이라는 언어로 되어 있는 HTML과 비슷한 그런 파일을 클라이언트 측에 주게 됩니다.

그러면 사용자의 위치와 환경을 고려해서 가장 적합한 서버의 위치를 알려줍니다.

실제 영화 파일은 넷플릭스의 Content Distribution Network에 분산이 되어 있는 상태입니다.

사용자는 특정한 서버의 HTTP를 통해서 영화 파일을 가져오도록 전달 해 달라고 요구하게 되는 것이고, 영화가 전달이 됩니다.