728x90
본 포스팅은 < 컴퓨터 네트워킹 하향식 접근[8판] James F. Kurose, Keith W. Ross 저/최종원, 강현국, 김기태 > 을 참고하여 작성되었습니다.
Ch02 Application Layer
6. Video Streaming
: 비디오 스트리밍과 콘텐츠 분배 네트워크
비디오 스트리밍
- 비디오 스트리밍은 인터넷 대역폭의 주요 소비자
- youtube, netflix, amazon prime 등은 ISP 트래픽의 80% 차지 (2020)
- 1백만 유저?
- 이종성 (heterogeneity)
➡️ 분산, 어플리케이션 레벨의 인프라
VIDEO 비디오
- 비디오는 일련의 디지털 이미지들이 고정된 속도로 나열되는 것
- 디지털 이미지는? ➡️ 미세한 픽셀들의 배열 - 비트로 표현됨
- 이미지 인코딩 : 모든 색상 등의 정보가진 비트맵 이미지 파일을 압축하여 사용
- Spatial : 픽셀 근처의 유사한 픽셀들을 합쳐서 압축
- Temporal : 인접 프레임 (이미지)와 유사점을 이용하여 압축
- 비디오 인코딩
- CBR (constant bit rate)
- 처음부터 끝까지 동일한 bit rate를 사용하여 영상을 압축
- 정적인 영상에는 낭비동적인 영상에서는 화질 저하
- bit rate가 고정이기 떄문에 예측하기 쉬움
- VBR (variable bit rate)
- bit rate가 상황에 따라 달라진다.
- 영상 변화가 클때는 높게 정적일때는 bit rate를 낮게 가져간다.
- 순간적으로 네트워크에 과부화 되므로 네트워크 입장에서는 쉽지않다 (max bit rate를 정해둠)
- CBR (constant bit rate)
- 이상적인 네트워크로 영상을 스트리밍하는 것은 위와 같다
- 하지만 여러 문제(도전과제) 가 존재
- 네트워크 지연이 발생한다면? (버퍼링)
- 클라이언트가 영상을 중지 한다면?
- 비디오 패킷이 도중에 손실된다면?
DASH : 스트리밍 프로토콜
- HTTP를 사용하는 동적이고 적응형 영상 스트리밍 프로토콜
- 네트워크 상황에 따른 클라이언트에게 다양한 화질을 제공
- manifest 파일 : 서버가 가지고 있는 화질들의 리스트 (URL)
- 클라이언트는 manifest를 보고 서버와의 대역폭등을 측정하여 동적으로 영상을 요청
- 대부분의 결정은 클라이언트에서 이루어짐
- 언제 chunk(특정 화질의 동영상 덩어리) 요청을 할 것인가?
- 어떤 enconding rate (화질)요청 할 것 인가?
- 서버가 여러대 있을떄 어디로 요청할 것 인가?
스트리밍 비디오 = 비디오 인코딩 + DASH + 버퍼링
728x90
'Computer Science > Computer Network' 카테고리의 다른 글
간단한 클라이언트-서버 소켓 채팅 💬 프로그램 만들어보기 (with 파이썬🐍) (0) | 2022.10.06 |
---|---|
📡 [Network] 어플리케이션층 - Socket 소켓 프로그래밍 (UDP, TCP) (0) | 2022.10.06 |
📡 [Network] 어플리케이션층 - DNS 도메인 네임 시스템 (DNS의 구성, 반복쿼리, 재귀쿼리, DNS 캐싱, DNS 레코드) (0) | 2022.10.06 |
📡 [Network] 어플리케이션층 - 인터넷 메일(E-mail) (SMTP 프로토콜) (0) | 2022.10.01 |
📡 [Network] 어플리케이션층 - 웹과 HTTP (지속, 비지속, HTTP/1.1, HTTP/2, Cookie 쿠키, 웹캐시 Proxy 서버) (0) | 2022.09.22 |