Multimedia networking
- 어떻게 유튜브 같은 멀티 미디어 서비스가 동작하는가
audio
- 아날로그 시그널을 디지털 신호로 변환하는 작업을 sampling이라고 한다.
- 자연스러운 소리를 정형화된 비트로 변환하는 작업이다.
- sampling 주기를 짧게하면 짧게 할수록, sampling 할 때 비트 수가 많으면 많을수록 더 완벽하게 아날로그 소리와 같아진다. ( → 오차가 줄어듦 )
- 1초에 나타내는 비트 양
- CD : 1.411Mbps
- MP3: 96, 128, 169 kbps
video
- 비디오는 이미지의 연속이다.
- 초당 나타내는 이미지 횟수가 많을수록 고화질이다.
- 이미지는 곧 프레임, 프레임에는 해당 이미지에 모든 픽셀 정보가 담겨있다.
- 대개 근처 픽셀끼리는 같은 색을 가지고 있어서 중복되는 픽셀은 압축시켜서 프레임에 저장해놓는다.
- 초당 나타내는 프레임 수를 coding rate라고 한다.
multimedia networking: 3 application types
1️⃣ Streaming Stored Multimedia
- 멀티미디어 콘텐츠는 서버에 저장되어 있고, 사용자가 요청할 때마다 스트리밍 된다.
- youtube, netflix
2️⃣ Conversational Multimedia
- voice/video over IP
- 두 사용자 도는 더 많은 사용자가 실시간으로 음성 또는 비디오 채팅을 한다.
- Skype
3️⃣ Streaming Live Multimedia
- 콘테츠가 실시간 생성, 스트리밍된다.
- 아프리카tv
Streaming Stored Multimedia
- 서버에서 주는 그대로 host에서 플레이를 하는게 베스트지만 네트워크 상황 때문에 바로 송출하기는 어렵다.
- 그래서 host는 서버에서 받은 데이터를 바로 송출하지 않고 잠시 버퍼에 담았다가 해당 버퍼가 어느정도 차면 그 때 송출한다 (버퍼링)
- 클라이언트에서 영상 재생 속도보다 서버에서 받아오는 영상 데이터 량이 더 느리다면 영상이 끊기고 다시 버퍼링이 시작된다.
- UDP는 네트워크 상황을 고려하지 않으니 네트워크 상황이 나쁠 경우 하나도 제대로 가지 않아서 사용하기 어렵다.
- TCP는 너무 네트워크 상황에만 의존해서 컨트롤하기 어렵다.
- 그래서 멀티미디어 서비스에는 TCP 기반의 DASH라는 프로토콜을 사용한다.
DASH
- Dynamic Adaptive Streaming over Http
- 네트워크에 적응하며 동적으로 http 스트리밍을 하는 방식
- 이를 구현하기 위해 manifest file이 사용된다.
manifest
- 영상이 업로드 될 때 영상 전체가 올라가는 것이 아니라 256kb 정도의 chanks로 분할되어 저장된다.
- 또한 동일한 chanks에 대해서 여러 개의 coding rate version이 생성된다.
- 128kbps, 256kbps, 512kbps, 1mbps, 2mbps, …
- 유튜브에서 영상을 클릭하면 유튜브 서버는 클라이언트에게 manifest file을 넘겨준다.
- 그때 그때 네트워크 상황에 맞는 청크를 요청해서 가져온다.
- 영상 중간에 화질이 바뀌는 이유!
- manifest file을 받아서 네트워크 환경에 따라 다른 버전의 chanks를 요청한다고 하여도 많은 사용자가 서버 한 곳에 몰리게 되면 과부하가 걸릴 수 밖에 없다.
- 이것을 해결하기 위해 전 세계 CDN 업체에 각 chanks를 분산 저장하는 방식이 사용된다.
- 사용자가 유튜브에 접속하 콘텐츠를 요청했으면 유튜브는 manifest file만 넘겨주고 사용자는 넘겨받은 manifest file을 가지고 각 버전을 요청할 때는 실제 사용자 근처 CDN에게 요청이 되어 버전을 갖고온다.
- 구현 원리
- manifestfile의 chanks URL의 IP를 알아내기 위해 CDN업체의 DNS 서버에 접근하게 된다. (URL이 CDN 업체의 URL이기 때문이다.)
- 이때 요청자의 IP 주소를 기반으로 요청자의 위치와 가장 가까운 CDN 서버의 IP를 준다.
- CDN 위치는 사용자에게 가장 가까운 곳에 존재하는 것이 유리하다. 그래서 보통 access network( skt, kt 같은 ) 내부 혹은 근처에 CDN이 즐비해 있다.
Case study: Netflix
- 인프라 없이 계정을 관리하는 서버 하나만을 둔 채 나머지는 아마존 클라우드같은 CDN업체에게 맡긴다.
참고자료
[network] 멀티미디어 서비스의 동작원리 (DASH / manifest file / CDN)
[network] 멀티미디어 서비스의 동작원리 (DASH / manifest file / CDN)
❗ network jitter를 해결하기 위한 DASH와 manifestfile streaming 서비스에서는 네트워크 jitter(network delay)가 존재한다. 서버에서 영상을 받는 과정에서 딜레이가 발생할 수 밖에 없다. 딜레이를 방지하기
dmsvk01.tistory.com
'📝Computer Science > network' 카테고리의 다른 글
네트워크 보안(2) _ SSL, Firewall (0) | 2023.07.28 |
---|---|
네트워크 보안(1) _ Symmetric key, Public Key, Authentication (0) | 2023.07.28 |
무선 이동 네트워크(3) _ Cellular Network, mobility (0) | 2023.07.28 |
무선 이동 네트워크(2) _ IEEE 802.11 frame (0) | 2023.07.28 |
무선 이동 네트워크(1) _ CSMA/CA, RTS, CTS (0) | 2023.07.22 |