[네트워크] P2P/CDN(HTTP,DASH)

정태규·2023년 4월 14일
0

네트워크

목록 보기
11/19

FTP,HTTP/P2P 차이

✍️FTP와 HTTP(clinet-server architecture)

  • 서버가 있어야 한다.
  • 업로딩과 파일배포가 관리할 수 있다.
  • 서버에서 불법 파일을 찾기가 쉽다.
  • 서버로의 연결 증가는 다운로딩의 문제를 증가시킬 수 있다.

✍️P2P(peer-to-peer)

  • 서버가 없다.(컴퓨터로 바로 연결)
  • 업로드 하기가 쉽다.
  • 파일을 업로드하고 다운로드 하는데 돈이 들지 않는다.
  • 다운로드 스피드에 문제가 없다.(중앙 서버가 없기 때문에)
  • file-sharing 관리를 할 수 없다.

P2P Architecture

  • P2P network는 overlay network이다.

    peer간에 각 linke는 하나이상의 ip link들을 구성한다.

  • 서버가 항상있지 않다.

  • 임의의 end system이 직접 통신한다.

  • peer들은 간헐적으로 연결되고 ip 주소를 변경한다.

✍️ 한 서버로부터 N개의 peer들까지 파일을 배포하는데 걸리는 시간

Content Distribution Network(CDN)

  • video traffic: 인터넷 대역폭의 주요 소비자

    스트리밍 영상은 가정용 ISP traffic의 대부분을 차지한다.

스트리밍 비디오 영상은 보통 사전에 녹화된 비디오를 기반으로 한다.
비디오 영상은 server에 저장되어 있고, 사용자는 비디오 서버로 요청을 보낸다.

  • video: 초당 24,30개의 이미지를 일정 시간 간격으로 보여준다.
  • digital image: 압축되지 않은 인코딩된 이미지는 픽셀들의 배열로 구성되어 있다. 그리고 이 픽셀들은 빛과 색을 표현하는 수많은 비트로 인코딩 되어있다.

비디오는 압축될 수 있으며, 이것에 의해 비트레이트에 따른 비디오의 품질을 좌우하게 된다. 비트레이트가 높으면 이미지 품질이 높아지게 된다.

비디오 스트리밍에서 중요한 성능척도는 평균 처리량이다. 흔히 말하는 버퍼링에 걸리지 않기 위해서는 최소한 비디오의 압축된 비트레이트 크기 정도만큼은 스트리밍 애플리케이션에게 제공해야 한다.

Streaming Stored Video

HTTP 스트리밍

✍️HTTP 스트리밍에서, 영상은 보통의 파일처럼 HTTP서버에 특정 URL을 가지고 저장되어 있다.

✍️사용자가 영상을 보고 싶을때는?

  1. 클라이언트가 서버와 TCP 연결을 만들고, 그 URL로 HTTP GET request message를 전송한다.
  2. 전송받은 server는 HTTP response message에 영상 파일을 담아 네트워크 트래픽 조건과 네트워크 프로토콜이 허용하는 내에서 빠르게 전송한다.
  3. client 에서는 client application buffer에 받은 bytes를 쌓는다.
  4. client application buffer에 쌓인 bytes가 사전에 정해놓은 threshold를 초과할때, 영상은 재생을 시작한다.

    특히 스트리밍 영상 application은 client application buffer에서 비디오 프레임을 가져오고, 압축을 해제하고 그것을 사용자 스크린에 보여준다.
    영상 에플리케이션을 보여주는 동시에, 다음 영상 부분에 해당하는 프레임을 수신하고 버퍼링을 하고 있다.

✍️HTTP 스트리밍의 단점은?

클라이언트마다 bandwidth가 모두 다름에도 불구하고 똑같은 크기의 비디오 프레임을 전송하려고 하고, 똑같이 인코딩된 영상을 보여준다.
이를 해결하기 위한 것이 DASH 이다.

DASH

✍️DASH(Dynamic,Adaptive,Streaming over HTTP)

  • HTTP 기반의 스트리밍이다.
  • 하나의 영상이 여러개의 다른 버전으로 인코딩 된다.(모두 다른 bitrate를 갖는다.)
  • bandwidth가 크면 client는 높은 bitrate의 chunk를 요구할 것이고, bandwidth가 작으면 낮은 bitrate의 chunk를 요구할 것이다.
  • 클라이언트는 HTTP GET request message를 통해서 각기 다른 chunk를 매 시간마다 선택하게 된다.
  • DASH는 특히 모바일에서 유용하다. 모바일 사용자들은 장소에 따라 bandwidth가 시시 각각 변하기 때문에, 그에 맞는 bitrate수준의 chunk들을 보내게된다.
  • HTTP 서버내에 비디오가 bitrate 품질의 따른 버전별로 저장되어 있다. 각각은 URL도 모두 다르다. 이러한 버전별 URL은 manifest file에 저장되어 있다.

✍️DASH 이용한 스트리밍

  1. 클라이언트는 manifest file을 요청한후, 다양한 버전에 정보에 대해 인지한다.
  2. 클라이언트는 한 시점에 대해 특정 URL을 지정한다.
  3. HTTP request GET message에 각각의 chunk에 대한 byte range를 지정한다.
  4. chunk를 downlaod 하는 동안, 클라이언트는 수신한 bandwidth를 측정하고, 다음에 요청할때는 어떤 버전으로 요청할지를 알기위해 rate determination algorithm을 계산한다.

0개의 댓글