[CS]/[컴퓨터네트워크]

멀티미디어 네트워크

broship 2021. 7. 13. 08:22

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다.

출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다.


 

 

Multimedia networking


- 어떻게 유튜브 같은 멀티 미디어 서비스가 동작하는지 공부

멀티미디어 서비스가 제공하는 첫번째 기능: 오디오

- 아날로그 시그널을 디지털 신호로 변환하는 작업을 sampling 이라고 함

- 자연스러운 소리를 정영화된 비트로 변환하는 작업

- 샘플링 주기를 짧게하면 짧게할수록, 샘플링 할때 비트수가 많으면 많을수록 더 완벽하게 아날로그 소리와 같아짐

- 1초에 나타내는 비트 양: CD는 1.411 Mbps, MPS는 96, 128, 160 kbps, CD가 더 고음질

 

멀티미디어 서비스가 제공하는 첫번째 기능: 비디오

- 비디오는 이미지의 연속, 초당 나타내는 이미지 횟수가 많을수록 고화질

- 이미지는 곧 프레임, 프레임에는 해당 이미지에 모든 픽셀 정보가 담겨있음

- 대개 근처 픽셀끼리는 같은 색을 가지고 있음, 그렇기에 중복되는 픽셀은 압축시켜서 프레임에 저장해놈

- 초당 나타내는 프레임 수를 coding rate 라고 함

 

 

멀티미디어 네트워크의 3가지 타입

1. streaming, stored: 서버에 저장되어있는 오디오, 비디오를 틀어줌(youtube, Netflix)

2. conversational: voice/video over IP (Skype)

3. streaming live: 라이브 송출(아프리카)

 

Streaming stored video


- 서버에서 주는 그대로 host에서 플레이를 하는게 베스트, 하지만 네트워크 상황 때문에 바로 송출하기는 어려움

- host는 서버에서 받은 데이터를 바로 송출하지 않고 잠시 버퍼에 담았다가 해당 버퍼가 어느정도 차면 그때 송출(버퍼링)

 

- UDP는 네트워크 상황을 고려 안하니 네트워크 상황이 나쁠경우 하나도 제대로 가지 않아서 사용하기 어려움

- TCP는 또 너무 네트워크 상황에만 의존해서 컨트롤 하기 어려움

- 그래서 멀티미디어 서비스에서는 TCP 기반의 DASH라는 프로토콜을 사용

- 2GB 짜리 영화가 있을때 2GB를 통채로 저장하는게 아니라 256kb 등 작은 단위(chunks)로 쪼갬

- 각 chunks를 하나의 버전으로 인코딩 하는 것이 아닌 128kbps, 256kbps, 512kbps, 1mbps, 2mbps, 5mbps... 등으로 인코딩 해놓음

- 각 chunks별 인코딩된 url을 담아놓는 테이블을 manifest file이라고 함

- 사용자가 영상을 시청하면 이 manifest file을 넘겨줌

- 처음에 영상을 틀때 128kbps부터 틀어줌, 그리고 네트워크 상황을 판단해서 괜찮으면 인코딩 버전을 점점 늘리고 상황이 안좋으면 점점 낮춤

 

- youtube 같은 경우 동시 사용자가 많음, 이 경우 모든 영상을 한 곳에 저장돼 있으면 요청이 너무 많아지면 수용을 못하는 문제가 발생함

- 파일 저장 서버를 한곳에 두는 것이 아닌 전세계에 두는 CDN 방식을 사용함

- 사용자가 요청이 오면 메인 서버는 manifest file만 넘겨주고 사용자는 근처 서버에서 데이터를 받아옴

 

- 근데 사용자마다 같은 manifest file을 받는데 어떻게 각각 다른 서버에서 데이터를 받아올수 있지?

- manifest file url을 찾아가려면 해당 IP를 알아야함

- DNS 쿼리를 보내 해당 IP를 알 수 있음

DNS 동작 원리 : https://ijbgo.tistory.com/27

 

DNS 동작원리

DNS란 www.example.com과 같이 사람이 읽을 수 있는 이름을 192.0.2.1과 같은 숫자 IP 주소로 변환하여 컴퓨터가 서로 통신할 수 있도록 한다. 인터넷의 DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 마

ijbgo.tistory.com

- DNS 쿼리를 보내는 과정에서 사용자의 IP 주소가 manifest file을 관리하는 CDN의 DNS 서버에게 전달됨

- 해당 DNS 서버는 받은 IP주소로 판단해서 근처 CDN 서버의 IP를 알려줌

- 그래서 같은 manifest file을 받아도 각 지역마다 다른 서버에 접속하게 됨

 

'[CS] > [컴퓨터네트워크]' 카테고리의 다른 글

네트워크 보안  (0) 2021.07.16
링크계층 - Cellular Network  (0) 2021.07.10
링크계층 - 무선이동네트워크2  (0) 2021.07.08
링크계층 - 무선이동네트워크1  (0) 2021.07.03
링크계층 - 스위치  (0) 2021.07.01