[네트워크] 2-7. Video transfer, DASH, CDN

kkado·2023년 4월 11일
0

네트워크

목록 보기
11/49

⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다


1. Video streaming service

넷플릭스와 유튜브와 같은 비디오 스트리밍 서비스를 생각해 보면 사용자에게 영상 파일을 제공한다.
알다시피 영상물은 그 용량이 매우 크므로, 영상의 용량을 줄일 수 있는 방법을 사람들은 찾기 시작했고, 중복을 최대한 제거하는 방식을 고안해 내었다.

영상은 사진들의 집합, 즉 '프레임' 으로 나누어져 있다. 이 때 한 프레임에서 다음 프레임으로 넘어갈 때, 바뀌는 부분과 그렇지 않은 부분이 있을 것이다. 예를 들어 달리기하는 영상이라고 하면 사람은 격렬하게 움직이겠으나 뒤의 초원이나 하늘 같은 배경은 잘 변하지 않을 것이다. 이런 식으로 프레임별로 최대한 변경사항만 저장한다면 동영상의 데이터 양을 획기적으로 줄일 수 있다.

요약하자면 프레임이 바뀔 때 변화가 있는 부분에 대한 정보(움직임 보상)만 기록하는 것이다.

이런 압축 기술을 MPEG 이라고 하며 이 기술을 고안해낸 단체 이름이기도 하다.


Bit rate

bit rate란 단위 시간당 처리해야 하는 비트 수를 뜻한다. 비트 수가 많다면 그만큼 영상의 용량과 화질은 올라갈 것이고, 적다면 내려간다.
비트를 처리하는 것을 인코딩 이라고 하는데 동영상 인코딩에는 대표적으로 CBR 방법과 VBR 방법이 있다.

CBR (Constant Bit Rate)

이름에서도 알 수 있듯이 encoding rate가 일정, 즉 보내는 양이 일정한 것을 의미한다.

  • 영상의 변화가 적어 이번에 보내야 하는 비트가 적을 때에는 데이터를 낭비하게 될 것이고
  • 영상의 변화가 커 이번에 보내야 하는 비트가 클 때에는 데이터가 부족해서 화질이 저하되는 문제가 발생할 것이다.

VBR (Variable Bit Rate)

그때그때 변화량을 감지하여 보내는 양을 변화시키는 방법을 의미한다.

영상의 변화가 많은 때는 높은 비트레이트를, 영상의 변화가 작을 때는 낮은 비트레이트를 사용하는 방식이다.
용량을 효율적으로 사용할 수 있는 것은 장점이지만, 높은 비트레이트가 요구될 때는 순간적으로 서버에 과부하를 줄 수 있다.


When to start streaming?

서버로부터 클라이언트가 영상 데이터를 받았을 때, 언제 스트리밍을 시작할 수 있을까.

데이터를 받고 나서 뒤따라오는 데이터를 전송받고 있는 와중에도 영상 재생을 시작할 수는 있다.
그러나 한번 재생을 시작하면 끊기지 않아야 하는데, 대역폭은 지속적으로 변하기 때문에 전송 속도가 느려질 수 있다.
그러다가 재생하고 있는 영상의 시점이 수신 완료된 데이터를 따라잡아 버리면 버퍼링이 발생할 수 있다.

또한, 사용자가 가만히 영상을 보고 있는 것이 아니라 빨리감기를 하거나 되감기하거나 일정 부분을 뛰어넘거나 등의 조작을 할 수 있는데, 이 때 비디오 패킷이 사라지거나 재전송될 수 있다.

바로 재생하는 것보다는 버퍼에 일정량 쌓아뒀다가 한번에 송출하는 방법이 해결책으로 제시될 수 있다.


DASH (Dynamic Adaptive Streaming over HTTP)

DASH는 클라이언트가 자신의 네트워크 상태에 맞추어 적절한 비디오 화질을 선택하여 서비스를 받을 수 있는 기술이다.

DASH 서버는 비디오 컨텐츠를 각기 다른 Bit rate를 갖는 여러 가지 버전으로 인코딩한 후에 비디오 데이터를 작은 Chunk 단위로 나눈다.

그리고 클라이언트는 주기적으로 자신의 네트워크 대역폭을 설정하여 현재 대역폭으로 유지 가능한 bit rate를 적절하게 선택하여 동영상의 화질을 알맞게 선택할 수 있다. 시간이 흐르면서 대역폭이 변함에 따라 bit rate도 변경할 수 있다.


CDN (Content Distribution Network)

콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크입니다.

사용자가 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 통해 이동해야 한다. 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상 또는 웹 사이트 이미지와 같은 대용량 파일을 로드하는 데 시간이 오래 걸린다. 대신 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달하게 할 수 있다.

마치 은행이 도시 곳곳에 ATM을 설치하는 것으로 비유할 수 있다. 고객은 굳이 은행까지 가지 않더라도 자기 집 근처에 있는 ATM에 방문함으로써 쉽게 입출금 작업을 할 수 있고, 그렇게 되면 사용자도 일을 처리하는 시간이 줄어들고 은행도 은행에 찾아오는 손님이 줄어들어 부담이 줄어드는 장점이 있다.

마찬가지로 전국에 여러 개의 서버를 설치해 두면 사용자는 가까운 서버를 통해 컨텐츠에 빠르게 접속할 수 있게 된다.

profile
베이비 게임 개발자

0개의 댓글