Video streaming and content distribution networks

이태곤·2023년 10월 12일
0

컴퓨터망

목록 보기
9/32
post-thumbnail

1. Video Streaming

  • MPEG: 비디오 데이터의 압축과 전송을 위한 표준 압축 형식 및 프로토콜을 정의하는 그룹
    → 비디오의 용량은 매우 크므로 송수신에 있어 부하가 크다.
    따라서, MPEG는 비디오 데이터를 효율적으로 압축하여 저장 및 전송할 수 있게 해주며, 여러 가지 표준을 개발하고 있다.

    • Spatial Compression (공간 압축): 프레임 내에서 픽셀 값의 유사성을 이용하여 중복된 정보를 줄이는 것
      → [보라색, 보라색, 보라색, 보라색, 보라색, 보라색, 보라색, 보라색, 보라색, 보라색]이 아닌, [보라색, 10]이라는 두 가지 정보만을 전송해 중복을 최소화 할 수 있다.
      → 하늘색에서 비슷한 색상을 가진 픽셀들은 중복된 데이터로 간주될 수 있으며, 이러한 중복된 데이터를 압축하여 전송한다.
    • Temporal Compression (시간 압축): 연속적인 비디오 프레임 간의 시간적인 차이를 활용
      → 만약 비디오의 연속된 프레임에서 대부분의 내용이 동일하다면, 첫 번째 프레임을 전송한 다음, 다음 프레임에서 변경된 부분만을 전송
  • Bit rate: 시간당 처리하는 비트 수

    • Bit rate↑, 화질↑
    • Bit rate↓, 화질↓
  • Video encoding: 비디오 데이터를 압축하여, 저장 및 전송을 효율적으로 하는 과정

    1. CBR (Constant Bit Rate): 고정된 비트 속도로 동영상을 압축 또는 전송하는 비디오 인코딩 방식
      • 장점
      1. 예측 가능한 대역폭: 고정된 비트 rate을 가지므로, 예측 가능한 대역폭을 유지
      2. 일정한 품질: 화질 변동이 없는 영상 전송이 중요한 경우에 적합
      • 단점
      1. 영상의 변화가 적은 경우 비트 속도를 낭비: 변화가 적은 프레임의 경우, 대역폭을 낭비
        → 불필요한 데이터(비트, bit rate↑)를 전송하게 되어 대역폭을 낭비
      2. 변화가 큰 경우에는 화질 저하 발생: 동영상 내에서 화면이 급격하게 변하는 부분이 있는 경우에는 고정 비트 속도로는 정보를 충분히 표현하기 어려울 수 있어서 화질 저하가 발생
        → CBR은 변화가 큰 장면에 대응하기 어려움

    2. VBR (Variable Bit Rate): 동영상을 압축 또는 전송할 때 프레임의 복잡성에 따라 비트 속도가 가변적으로 조절되는 비디오 인코딩 방식
      → 영상의 변화가 많을 때: 높은 Bit rate
      → 영상의 변화가 작을 때: 낮은 Bit rate
      • 장점: 동영상 내부의 변화에 따라 Bit rate를 조절하여 효율적으로 압축하고 화질을 개선
      • 단점: 높은 Bit rate이 필요한 순간에는 서버에 과부하

2. Streaming

  • 인터넷을 통해 영상, 음악 또는 다른 멀티미디어 콘텐츠를 실시간으로 재생하는 것을 의미한다.

  • Jitter: 시간에 따른 데이터 또는 신호의 변동성을 의미하며, 데이터 패킷 도착 간격이 일정하지 않을 때 발생한다.

    1. 불규칙한 음성 끊김: 수신 측에서 음성 패킷이 불규칙한 간격으로 도착하면, 음성 통화가 끊겨 불안정하게 들릴 수 있다.
    2. 비디오 스트리밍에서 화면의 불안정성: 동영상 스트리밍 중 Jitter가 발생하면 화면의 불안정성이 나타날 수 있으며, 화질이 저하될 수 있다.
    3. 데이터 손실: Jitter로 인해 패킷이 손실되거나 중복 전송될 수 있다.

→ 따라서 스트리밍 서비스에서는 Jitter를 관리하고 최소화하기 위한 여러 기술과 프로토콜을 사용한다.
→ Jitter가 없다.

  • 한계: 네트워크 상태는 계속해서 변화하므로, 대역폭, 패킷 딜레이와 손실 등이 발생하여 중간에 데이터를 받지 못해 끊기는 현상이 발생할 수 있다.
    • client-side buffer: Jitter 클라이언트 측에서 일정량의 데이터를 미리 버퍼링하여 시간차를 두어 제공하는 방식이다.
      클라이언트는 일정량의 데이터를 버퍼에 저장하고, 이후 데이터 패킷이 도착할 때까지 버퍼에서 데이터를 재생한다.
      이를 통해 Jitter로 인한 데이터 패킷의 불규칙한 도착을 보완하고, 사용자는 일정 시간 동안 안정적으로 데이터를 수신할 수 있게 된다.
    • QoS(품질 서비스): 네트워크 대역폭 및 우선 순위 설정을 통해 스트리밍의 안정성과 화질을 개선

3. DASH

  • 사용자의 네트워크 대역폭과 디바이스 성능을 고려하여 동영상 품질을 동적으로 조절하는 기술

  • Server

    1. 비디오 파일 분할: 비디오 파일은 여러 개의 청크로 나누어 진다.
      이러한 청크는 동일한 콘텐츠를 서로 다른 비트레이트(화질)로 인코딩한 버전으로 준비된다.
    2. Manifest 파일: 서버는 비디오 스트림의 모든 청크에 대한 정보를 포함하는 manifest 파일을 제공한다.
      → manifest 파일에는 각 청크의 URL 정보와 해당 청크의 비트레이트 옵션 등이 포함
  • Client

    1. 대역폭 측정: 클라이언트는 주기적으로 현재의 네트워크 대역폭을 측정
    2. 비트레이트 선택: 대역폭 측정 결과에 따라 클라이언트는 manifest 파일을 참고하여 적절한 비트레이트 수준의 청크를 선택
    3. 동적 조절: 클라이언트는 비디오 재생 중에도 대역폭 상태를 모니터링하며 필요한 경우 비트레이트를 동적으로 조절
  • DASH는 다양한 디바이스와 환경에서 스트리밍 서비스를 최적화를 진행한다.
    → 사용자 경험을 향상 & 네트워크 부하↓


4. CDN(Content Distribution Network)

  • 동일한 컨텐츠를 가진 서버를 지리적으로 분산하여 웹 콘텐츠를 더 빠르게 제공하는 기술

    • 성능 향상: CDN은 지리적 가까운 서버를 활용하여 사용자가 콘텐츠에 빠르게 액세스할 수 있는 것을 목표로 한다.
    • 지리적 요소에 더해, 성능 측면에서 더 나은 선택이 가능한 경우 해당서버로 리디렉션할 수 있다.
  • 특징

    1. 고가용성: 복제된 콘텐츠를 여러 위치에 저장하므로 특정 서버의 장애가 전체 서비스에 영향을 미치지 않도록 한다.
    2. 대역폭 최적화: 대량의 데이터 전송을 처리하고 네트워크 트래픽을 효율적으로 관리함으로써 원본 서버에 대한 부하를 줄이고 네트워크 병목 현상을 방지한다.
    3. 성능 향상: CDN은 지역적으로 분산된 서버를 사용하여 콘텐츠에 빠르게 액세스할 수 있도록 도움을 준다.
    4. 보안: CDN은 DDoS 및 웹 어플리케이션 방화벽과 같은 보안 기능을 제공하여 원본 서버를 공격으로부터 보호한다.
  • CDN 사업자: Akamai(240,000 over 120 countries), Limelight

  • CDN 활용 예시: OTT(Included Netflix)

  • 고민해볼 사항

    1. 컨텐츠 요청 시 CDN 선택
    2. 사용자 행동 분석: 사용자 행동 분석을 수행하여 어떤 사용자가 어떤 컨텐츠를 요청하는지, 어느 시간대에 사용자 수요가 가장 높은지 등을 판단
    3. 데이터 복제 및 CDN 선택: 어느 CDN 서버에 어떤 데이터를 복사해야 하는지 선택
      → CDN과 DNS를 통한 비디오 컨텐츠 요청 & 응답 과정
      → CDN과 DASH를 통한 비디오 컨텐츠 요청 & 응답 과정

0개의 댓글