Reference :
컴퓨터 네트워킹 하향식 접근 [8판] / 퍼스트 북 / James F. Kurose, Keith W. Ross
건국대학교 컴퓨터 네트워크 수업 / 김기천 교수님
인터넷 비디오
녹화된 비디오: 온 디멘드 방식(요구 사항에 따라 즉시 제공/ 공급 하는 방식)
네트워킹 츨면에서 비디오의 가장 두드러진 특성: 높은 비트 전송률
HTTP 스트리밍 및 대쉬(DASH)
HTTP 스트리밍에서 비디오는 HTTP 서버 내의 특정 URL을 갖는 일반적인 파일로 저장됨
사용자가 비디오 시청을 원함 ⇒클라이언트는 서버에게 TCP 연결을 설립하고 해당 URL에 대한 HTTP GET 요청을 발생시킴
- 문제점
모든 클라이언트들이 그들 사이의 가용 대역폭의 차이에도 불구하고 똑같이 인코딩된 비디오를 전송받음
- 해결
DASH
- DASH
비디오는 여러 개의 서로 다른 버전으로 인코딩 됨⇒ 서로 다른 인터넷 접속회선을 가진 클라이언트들에게 서로 다른 인코딩률을 가즌 비디오를 선택할 수 있도록 허용함
저속의 3G: 낮은 품질 / 고속의 광섬유: 고품질의 비디오 받도록
클라이언트는 HTTP GET 요청을 이용해 다른 버전의 비디오 조각(청크)를 매번 선택함
각 비디오 버전은 HTTP 서버에 서로 다른 URL을 가지고 저장됨
HTTP 서버는 비트율에 따른 각 버전의 URL을 제공하는 매니페스트 파일을 가지고 있다.
클라이언트는 먼저 매니페스트 파일을 요청하여 서버에서 제공되는 다양한 버전에 대해 알게 됨
콘텐츠 분배 네트워크(CDN)
지금 세계는 엄청난 스트리밍 트래픽 발생 중⇒ 전 세계에 걸친 지점에 끊김 없이 안정적으로 제공하는 일은 큰 문제!
개요
- 단순방법
- 단일 거대 데이터 센터 구축⇒모든 비디오 자료를 데이터 센터에 저장 ⇒ 전세계의 사용자에게 비디오 스트림을 데이터센터로부터 직접 전송
- 문제점
- 클라이언트가 데이터 센터로부터 지역적으로 먼 지점에 있는 경우⇒ISP가 서로 다른 대륙에 위치할 수도 ⇒ 종단간 처리율 낮아질 수도⇒화면정지현상
- 인기 있는 비디오는 같은 통ㅅ니 링크르 통해 여러 번 반복적으로 전송될 것 ⇒ 네트워크 대역폭의 낭비
- 단일 데이터 센터를 구축하면 한 번의 장애로 인해 전체 서비스가 중단될 수 있는 위험이 있음
- 해결
- CDN
설명
- 콘텐츠 분배 네트워크 다수의 지점에 분산된 서버들을 운영 비디오 데이터의 복사본을 분산 서버에 저장 사용자는 최선의 서비스와 사용자경험(user experience)을 제공할 수 있는 지점의 CDN 서버로 연결된다. CDN은 콘텐츠 제공자가 소유한 사설 CDN일 수 있다. ex) 유튜브의 비디오는 구글의 CDN을 통해 분배된다. CDN은 일반적으로 서버의 위치에 대해 다음 두 가지 중 하나를 채용하고 있다.
- Enter Deep: 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축 ⇒ ISP의 접속 네트워크로 깊숙이 들어가는 것
- 목적) 서버를 최대한 사용자 가까이에 위치시켜 사용자와 CDN 서버 사이의 링크 및 라우터 수를 줄이고 지연시간 및 처리율 향상
- 문제) 고도로 분산된 설계로 인해 서버 클러스터를 유지,관리하는 비용이 커짐
- Bring Home: 보다 적은 수의 핵심 지점에 큰 규모의 서버 클러스터를 구축
- 이러한 CDN들은 일반적으로 IXPs(인터넷 교환지점)에 클러스터를 배치한다.
- Enter Deep 방식에 비해 클러스터 유지 및 관리 비용이 줄어드는 대신에 사용자가 느끼는 지연시간과 처리율은 상대적으로 나빠짐
- 서버 클러스터의 위치가 정해지면 CDN은 콘텐츠의 복사본을 이들 클러스에 저장한다. 이때 모든 비디오를 다 저장할 필요X: 어떤 비디오는 특정 국가에서만 인기있을 수도 ⇒ 사용자가 지역 클러스터에 없는 비디오를 요청⇒중앙 서버나 다른 클러스터로부터 전송받아 사용자에게 서비스 & 복사본 만들어서 저장함
- Enter Deep: 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축 ⇒ ISP의 접속 네트워크로 깊숙이 들어가는 것
CDN 동작
- 사용자 호스트의 웹 브라우저가 URL을 지정: 특정 비디오의 재생 요청
- CDN이 그 요청을 가로채서
- 그 시점에서 클라이언트에게 가장 적당한 CDN 클러스터를 선택하고
- 클라이언트의 요청을 해당 클러스터의 서버로 연결한다
이 과정에서 DNS가 사용됨!
클러스터 선택 정책
CDN 구축의 핵심
클라이언트를 동적으로 어떤 서버 클러스터 또는 CDN 데이터 센터로 연결하는 방식
예시
- 지리적으로 가장 가까운 클러스터를 할당하는 정책 기법
- Quova, Max-Mind
- 실시간 측정
- CDN은 각 클러스터가 ping이나 DNS query같은 프로브 메시지를 주기적으로 LDNS에 전송하게 할 수 있다.
- 문제: 多LDNS들이 이런 메시지에 응답하지 않도록 설정되어 있음
사례연구: 넷플릭스, 유튜브, Kankan
- 넷플릭스
넷플릭스 비디오 배포에는 아마존 클라우드와 자체 CDN 인프라가 있다.
아마존 클라우드
- 콘텐츠 수집: 영화의 스튜디오 마스터 버전을 받아서 아마존 클라우드 시스템의 호스트에 업로드
- 콘텐츠 처리: 고객들의 다양한 플레이어 기기 사양에 적합하도록 각 영화의 여러 가지 형식의 비디오를 생성
- CDN으로의 버전 업로드: 영화에 다양한 버전이 생성되면 아마존 클라우드 시스템의 호스트는 이들 버전을 CDN으로 업로드할 수 있다.
자체 CDN 인프라
- 2007년 처음 넷플릭스 등장⇒3개의 CDN 회사가 비디오 콘텐츠 배포
- 이후⇒자체 private 클라우드 구축
- IXP 및 거주용 ISP 자체에서 서버 랙을 설치함
- 유튜브
- 2005.04~
- 06년 11월에 구글에 합병됨
- 구글은 비공개 CDN을 사용하여 유튜브 동영상을 배포하고 수백가지의 서로 다른 IXP,ISP 위치에 서버 클러스터를 설치했다.
- 사용자를 특정 서버 클러스터와 연결하느 데 DNS를 사용한다.
- HTTP 스트리밍 채용
- 2011년에 DASH와 같은 적응적 스트리밍 대신에 사용자가 스스로 버전을 선택하게 함
- HTTP byte-range 헤더를 이용해 목표한 분량의선인출 데이터 이후에 추가로 전송되는 데이터 흐름을 제한
- Kankan
- netflix와 youtube는 서버 하드웨어 뿐만 아니라 서버가 비디오를 배포하는데 사용하는 대역폭도 지불해야 ! ⇒ 비용 많이 들어서 단점⇒이를 절감하자!
- CDN대신에 P2P방식을 사용 !
- 최근에는 하이브리드 방식(CND-P2P)으로 바뀌었다고 한다.
- 총 P2P트래픽이 비디오 재생에 충분하면 클라이언트는 CDN에서 스트리밍을 중단하고 피어를 통해서만 스트리밍함!
'컴퓨터 네트워크 > Ch2. 애플리케이션 계층' 카테고리의 다른 글
7. 소켓 프로그래밍: 네트워크 애플리케이션 생성 (0) | 2023.03.22 |
---|---|
5. P2P 파일 분배 (0) | 2023.03.22 |
4. DNS: 인터넷의 디렉터리 서비스 (2) | 2023.03.22 |
3. 인터넷 전자메일 (0) | 2023.03.22 |
2. 웹과 HTTP (0) | 2023.03.22 |