CS 공부

HTTP 스트리밍 및 대쉬(dash) & CDN 본문

CS공부/컴퓨터네트워크

HTTP 스트리밍 및 대쉬(dash) & CDN

kluiop1 2021. 8. 2. 18:02

HTTP 스트리밍에서 비디오는 HTTP 서버 내의 특정 URL를 갖는 일반적인 파일로 저장된다.

사용자가 비디오 시청을 원하면 클라이언트는 서버에게 TCP 연결을 설립하고 URL에 대한 HTTP get 요청을 발생시킨다.

그러면 서버가 프로토콜 및 트래픽 조건이 허용 되는대로 HTTP 응답 메시지 내에서 비디오 파일을 전송함

 

클라이언트 쪽에서는 애플리케이션 버퍼에 전송된 바이트가 저장되고 버퍼의 바이트 수가 정해진 임계값을 초과하면 재생을 시작한다.

 

HTTP 스트리밍은 실제 적용 되고 있으나 모든 클라이언트들이 그들 사이의 가용 대역폭의 차이에도 불구하고 똑같이 인코딩된 비디오를 전송받는다는 문제점을 가진다.

 

이러한 문제점을 해결하기 위해서 HTTP 기반의 스트리밍 DASH(Dynamic Adaptive Streamng over HTTP)가 개발되었다.

 

DASH에서 비디오는 여러개의 서로 다른 버전으로 인코딩 되며 각 버전은 서로 다른 비트율 품질 수준을 갖고 있다.

 

클라이언트는 동적으로 서로 다른 버전의 비디오를 몇 초 분량의 길이를 가지는 비디오 조각 단위로 요청한다

 

가용 대역폭이 충분할 때에는 높은 비트율의 비디오 버전을 요청하며 가용 대역폭이 적을 때에는 낮은 비티율의 비디오 버전을 요청한다.

 

클라이언트는 HTTP GET 요청을 이용해 다른 버전의 비디오 조각을 매번 선택한다.

 

DASH는 서로 다른 인터넷 접속회선을 가진 클라이언트들에게 서로 다른 인코딩 률을 갖는 비디오를 선택할 수 있도록 허용한다.

 

DASH를 사용할 때 각 비디오 버전을 HTTP 서버에 서로 다른 URL을 가지고 저장된다.

 

HTTP 서버는 비트율에 따른 각 버전의 URL을 제공하는 매니페스트(manifest)파일을 가지고 있다.

 

클라이언트는 먼저 매니패스트 파일을 요청하여 서버에서 제공되는 다양한 버전에 대해 알게된다.

 

이후 클라이언트는 매번 원하는 버전의 비디오 조각 단위의 데이터를 선택하여 HTTP GET 요청 메시지에 URLbyte-range를 지정하여 요청한다.

 

비디오 조각단위 데이터를 다운로드하는 동안에 클라이언트는 측정된 수신 대역폭과 비트율 결정 알고리즘을 이용해 다음에 선택할 비디오 조각 단위 데이터 버전을 선택한다.

 

DASH는 클라이언트가 서로 다른 품질 수준을 자유롭게 변화 시킬 수있게 허용

 

 

콘텐츠 분배 네트워크 (CDN)

단일한 거대 데이터 센터 구축은 문제가 있다.

1. 클라이언트가 데이터 센터로부터 지역적으로 먼 지점에 있는 경우 -> 종단간 처리율이 낮아질 가능성이 높다.

2. 인기 있는 비디오는 같은 통신링크를 통해 여러번 반복적으로 전송 될 것이다. 이것은 ISP에게 동일한 바이트를 전송하는데 중복비용을 지불하는 결과를 초래

3. 한번의 장애로 전체 시스템 다운

 

이러한 문제를 해결하기 위해서 콘텐츠 분배 네트워크 CDN(content distribution Network)이 나왔다.

 

CDN은 다수의 지점에 분산된 서버를 운영 비디오 및 다른 형태의 웹 콘텐츠 데이터의 복사본을 이들 분산서버에 저장한다.

 

CDN는 클러스터에 의해 push가 아닌 pull 방식 사용

 

사용자가 지역 클러스터에 없는 비디오를 요청하면 해당 비디오를 중앙 서버나 다른 클러스터로부터 전송받아 서비스하는 동시에 복사본을 만들어 저장하고 자주 사용안된 비디오는 삭제된다.

 

CDN의 서버 위치 

 

1. ENTER DEEP

서버 클러스터를 세계 곳곳의 접속 네트워크에 구축함으로써 ISP의 접속 네트워크로 깊숙이 들어가는 것

서버를 최대한 사용자에게 가깝게 위치 CDN 서버 사이의 링크와 라우터를 줄임

사용자의 경험하는 지연시간 및 처리율을 향상시키는 것

 

문제

고도로 분산된 설계로 인해 서버 클러스터를 유지 관리하는 비용이 커짐

 

2. Bring Home

적은 수의 핵심 지점에 큰 규모의 서버 클러스터를 구축하여 ISPHome으로 가져오는 개념

접속 ISP에 연결하sms 대신 이러한 CDN은 일반적으로 클러스터를 인터넷 교환지점(IXPs)에 배치된다.

 

장단점

클러스터 유지 관리 비용이 줄어드는 대신 사용자가 느끼는 지연시간과 처리율이 상대적으로 나빠짐

CDN은 각 클러스터마다 모든 비디오의 복사본을 전부 유지할 필요는 없음

 

 

CDN 동작

1. 사용자 호스트가 웹 브라우저를 URL로 지정함으로써 특정 비디오의 재생을 요청하면

2. CDN은 그 요청을 가로채 그 시점에서 클라이언트에게 가장 적당한 CDN 클러스터를 선택하고

3. 클라이언트의 요청을 해당 클러스터의 서버로 연결

 

CDN은 사용자의 요청을 가로채고 다른 곳으로 연결하는데 DNS를 활용한다.

 

클러스터 선택 정책

 

1. 지리적으로 가장 가까운 클러스터 할당

지리적으로 가까운 클러스터가 네트워크 경로 길이의 수에 따라 가까운 클러스터가 아닐 수 있음

 

2. 네트워크 트래픽 상황을 반영한 최선의 클러스터 선택

-> 현재 채택 중인 방식

'CS공부 > 컴퓨터네트워크' 카테고리의 다른 글

POST와 GET  (0) 2021.08.02
DNS 서비스 & 동작원리  (0) 2021.08.02
Blocking & Non-Blocking I/O(+동기/비동기)  (0) 2021.06.30
로드밸런싱  (0) 2021.06.30
UDP란  (0) 2021.06.26