Computer Science Basic/Network

[Network/네트워크] STUDY :: 멀티미디어 서비스의 동작 원리

gapsoo 2023. 11. 12. 00:24

http://www.kocw.net/home/search/kemView.do?kemId=1169634

 

컴퓨터네트워크

인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다.

www.kocw.net

 

위의 강의를 듣고 작성한 글입니다,


[1] 강의 내용 필기

 

 

이번 강의에서는 멀티미디어 네트워크의 핵심 동작 원리에 대한 이해가 중요하며, 이는 결국 애플리케이션 레이어에 대한 이해로 이어집니다.

멀티미디어는 아날로그 오디오 시그널을 네트워킹을 통해 전달하기 위해 디지털 데이터로 변환해야 합니다. 이를 위해 아날로그 파일을 샘플링하여 주기적인 간격으로 대푯값을 정하고 디지털화합니다. 오차를 줄이기 위한 방법으로는 간격을 좁히거나 비트값을 늘리는 것이 있습니다. 이렇게 변환된 데이터의 코딩 레이트는 원본 음성과의 유사성을 결정하게 됩니다.

음질은 MP3의 96, 128, 160 kbps와 CD의 1.4 Mbps 정도로 표현되며, 일반적으로 CD가 더 좋은 음질을 제공합니다.

멀티미디어 파일을 만들기 위한 이러한 프로세스 이해 후, 강의는 유튜브와 같은 멀티미디어 서비스가 어떻게 동작하는지에 초점을 맞춥니다. 이 서비스는 동영상 스트리밍을 통해 대규모 사용자들에게 컨텐츠를 제공하며, DASH 기술을 활용하여 동적으로 네트워크 환경에 적응합니다. 또한, CDN 기술을 활용하여 전 세계에 컨텐츠를 효율적으로 제공하고, 사용자에게 최적의 환경을 제공하는 방식에 대해 다룹니다.

이미지는 연속된 프레임으로 구성되며, 초당 이미지를 프레임이라고 합니다. 인접한 픽셀은 비슷한 값이므로 근접한 픽셀에 동일한 값을 할당할 수 있으며, 이를 픽셀 단위로 인코딩합니다. 이로써 중복된 정보를 줄여서 압축이 가능하며, 이러한 과정을 coding rate라고 부릅니다. Coding rate가 높을수록 화질이 좋고, 낮을수록 화질이 낮습니다.

예를 들어, 2Mbps coding rate로 코딩된 영상 파일은 1초에 필요한 영상 데이터가 2Mb 비트로 표현되어 압축되어 있습니다. 따라서 sender가 receiver에게 이 영상을 전송할 때, 최대 2Mb를 빠르게 전달해야 정상적으로 영상을 시청할 수 있습니다.

멀티미디어 파일을 중심으로 주고받는 애플리케이션에는 주로 세 가지 유형이 있습니다. 첫 번째로는 스트리밍 스토어즈가 있습니다. 이는 이미 서버에 저장되어 있는 파일을 클라이언트가 받아 시청하는 방식입니다. 이러한 서비스는 주로 VOD(Video on Demand) 형태로 제공되며, 예를 들어 유튜브와 같은 플랫폼이 여기에 해당합니다.

반대로 두 번째 유형은 스트리밍 라이브입니다. 이는 실시간으로 중계되는 콘텐츠를 말하며, 주로 스포츠 중계나 생방송 이벤트와 같은 것들이 해당됩니다. 사용자들은 이러한 실시간 중계를 시청하거나 참여할 수 있습니다.

이 중에서도 주로 서버에 저장된 영상을 클라이언트가 받아 시청하는 스트리밍 스토어즈가 유튜브와 같은 대규모 멀티미디어 서비스의 핵심입니다. 클라이언트가 서버에 저장된 영상을 요청하고 받아오는 과정에서 네트워크를 통해 안정적으로 전달되어야 합니다.

유튜브에서 영화를 시청하는 과정을 가정하면, 서버는 프레임을 순서대로 클라이언트에게 전송합니다. 그러나 현실에서는 다음 프레임을 재생해야 하는 시점에 클라이언트에 도착하지 않을 수 있습니다. 이는 네트워크 jitter로 인한 문제로, 딜레이가 일정하지 않아 발생하는 현상입니다.

이러한 문제를 해결하기 위해, sender가 일정하게 보내기 때문에 receiver가 받는데 문제가 생기는 것을 보완하기 위해 "버퍼링"이라는 기술이 사용됩니다. 버퍼링은 첫 번째 프레임을 받은 후에 즉시 실행시키는 것이 아니라 일정 시간이 지난 후에 실행시키는 방식으로, 이를 통해 네트워크 jitter로 인한 문제를 완화할 수 있습니다.

버퍼링의 장점은 영상이 끊김 없이 부드럽게 재생될 수 있다는 점입니다. 그러나 버퍼링이 길면 스트리밍을 시청하는 사용자들의 인내심에 영향을 미칠 수 있으므로, 사용자들에게 만족감 있는 서비스를 제공하기 위해서는 버퍼링 시간을 최소화해야 합니다.

예를 들어, 유튜브 서비스는 전송 계층에서 TCP와 UDP 중 어떤 수단을 사용하여 데이터를 전송할지 고려해야 합니다. 만약 2Mbps의 영상을 전송해야 한다면, UDP를 선택하여 전송 속도를 직접 제어할 수 있는 것이 유리한 것처럼 보일 수 있습니다. 그러나 이는 실제 네트워크 상황을 고려하지 않은 결정입니다. 사용자가 많을 때는 네트워크 속도가 느릴 수 있으며, UDP는 이러한 상황에 대응하기 어렵습니다.

TCP를 사용하는 것이 더 적절합니다. 그러나, 유튜브와 같은 멀티미디어 서비스 업체는 TCP를 사용하면서도 동적으로 애플리케이션 내에서 속도를 조절합니다. 이를 위해 DASH(동적 적응형 스트리밍(HTTP))라는 애플리케이션 기술을 도입합니다.

DASH는 클라이언트가 영화를 시청할 때 전체 영상을 통째로 인코딩하는 대신, 작은 청크로 나누어 다양한 버전으로 코딩합니다. 각 청크는 다른 버전과 속도로 인코딩되며, 클라이언트는 네트워크 상태에 따라 동적으로 URL을 선택하여 영상을 받습니다. 이를 통해 영상 화질이 좋지 못한 경우에는 느린 속도로, 화질이 좋은 경우에는 빠른 속도로 클라이언트가 영상을 받아 재생할 수 있습니다. DASH는 중간에 버퍼링이 발생하지 않도록 하는 대안으로 사용자에게 최적의 서비스를 제공하기 위한 기술입니다.

유튜브는 전 세계의 다수 사용자에게 서비스를 제공하기 위해 동영상을 어디에 저장할지에 대한 의문이 있습니다. 가장 간단한 방법은 유튜브 본사 서버 하나에 모든 동영상을 저장하고, 사용자의 요청에 따라 제공하는 것입니다. 그러나 이러한 방식은 서버 다운 시 전체 서비스 마비와 같은 심각한 문제를 야기할 수 있습니다.

콘텐츠를 전 세계 사용자에게 효과적으로 제공하기 위한 방법으로는 멀티캐스트와 CDN이 고려됩니다. 그러나 실제로 멀티캐스트를 구현하는 것은 어렵고 대부분의 라우터에서도 지원이 제한적입니다. 따라서 현실적인 대안으로 CDN이 사용됩니다.

CDN은 콘텐츠 전송 네트워크로, 특수한 업체가 콘텐츠를 저장하고 전 세계의 여러 지역에 서버를 배치합니다. 사용자가 콘텐츠를 요청하면 유튜브는 Manifast 파일을 통해 CDN에 해당 콘텐츠의 위치를 알려주고, CDN은 해당 지역의 서버에서 콘텐츠를 제공합니다.

유튜브가 CDN 업체와 계약을 맺는 과정에서, 사용자는 특정한 chunk를 요청하는 URL을 사용합니다. 유튜브는 이 요청에 대한 응답으로 "KingCDN.abc"와 같은 URL을 제공하고, 이 URL은 CDN 서버를 가리킵니다. 사용자의 IP 주소를 기반으로 CDN은 해당 지역의 서버로 트래픽을 매핑하여 콘텐츠를 효율적으로 제공합니다. 이때 DNS 쿼리를 통해 IP를 제공하는 과정에서 assertive DNS 서버가 마지막 단계에서 IP를 결정합니다. 이러한 방식으로 CDN은 콘텐츠를 빠르고 안정적으로 제공하는 역할을 수행합니다.

사용자의 IP가 실제 IP가 아닌 경우, 인터넷 액세스를 위해 엑세스 네트워크를 거쳐야 합니다. 사용자가 보내는 DNS 쿼리는 엑세스 네트워크를 통과하며, 일반적으로 엑세스 네트워크 내부에는 CDN 업체들이 서버를 두어 사용자에게 빠르고 안정적인 서비스를 제공합니다.

마지막으로, 넷플릭스는 영화 전문적으로 스트리밍하는 업체로, 인프라는 보유하지 않고 계정 관리와 CDN 업체들과의 계약을 통해 Manifast 파일만을 전달하는 역할을 합니다. 이로써 오늘의 이야기는 멀티미디어 서비스 제공 업체가 어떻게 대규모 사용자를 만족시키며 영상을 실시간으로 스트리밍하는지에 대한 설명이 마무리되었습니다.

 


[2] 내용 정리 및 요약

 

1. 멀티미디어의 디지털 변환 및 코딩 레이트:

멀티미디어는 아날로그 오디오를 디지털 데이터로 변환하여 네트워킹을 통해 전달된다.
샘플링을 통해 아날로그 파일을 주기적인 간격으로 대푯값을 정하고 디지털화한다.
코딩 레이트는 변환된 데이터의 원본 음성과의 유사성을 결정한다.
MP3(96, 128, 160 kbps)와 CD(1.4 Mbps) 등의 음질을 표현하며, 일반적으로 CD가 높은 음질을 제공한다.

 

2. 멀티미디어 서비스의 동작 원리:

유튜브와 같은 멀티미디어 서비스는 동영상 스트리밍을 통해 대규모 사용자에게 컨텐츠를 제공한다.
DASH 기술을 활용하여 동적으로 네트워크 환경에 적응하고, CDN 기술을 이용하여 전 세계에 효율적으로 컨텐츠를 제공한다.

 

3. 이미지의 프레임과 코딩 레이트:

이미지는 연속된 프레임으로 이루어져 있으며, 프레임은 초당 이미지로 정의된다.
코딩 레이트는 중복 정보를 줄여 압축하는 역할을 하며, 화질에 영향을 미친다.

 

4. 멀티미디어 파일 전송과 스트리밍 서비스:

멀티미디어 서비스 중 스트리밍 스토어즈는 이미 서버에 저장된 파일을 클라이언트가 받아 시청하는 방식이다.
네트워크 jitter 문제를 해결하기 위해 버퍼링이 사용되며, 버퍼링 시간은 사용자 경험에 영향을 미친다.
클라이언트와 서버 간의 통신은 전송 계층에서 TCP와 UDP 중 어떤 수단을 사용할지 고려되며, DASH 기술은 동적으로 속도를 조절한다.

 

5. CDN을 활용한 전 세계 서비스 제공:

대규모 사용자에게 서비스를 제공하기 위해 콘텐츠 전송 네트워크(CDN)를 사용한다.
CDN은 전 세계 여러 지역에 서버를 배치하고, Manifast 파일을 통해 콘텐츠의 위치를 알려준다.
사용자의 IP를 기반으로 CDN은 해당 지역의 서버로 트래픽을 매핑하여 효율적으로 콘텐츠를 제공한다.

 

6. 넷플릭스와 CDN 계약:

넷플릭스는 영화 전문적으로 스트리밍하는 업체로, 계정 관리와 CDN 업체들과의 계약을 통해 Manifast 파일만을 전달한다.
이러한 방식으로 넷플릭스는 자체 인프라를 보유하지 않고 안정적인 서비스를 제공한다.

 

7. 대규모 사용자를 위한 서비스 제공:

사용자의 IP가 실제 IP가 아닌 경우에도 엑세스 네트워크를 통해 서비스를 제공한다.
오늘의 이야기를 통해 멀티미디어 서비스 제공 업체가 어떻게 대규모 사용자를 만족시키며 영상을 실시간으로 스트리밍하는지에 대한 이해를 얻을 수 있다.

 

 


[3] 느낀 점

 

지난 시간에 인터넷의 초기 단계부터 구조, 프로토콜에 대해 공부했는데

거기서부터 현재의 멀티미디어 스트리밍 서비스가 발전되었다는 것을 알게되니 놀랍고, 앞으로의 기술 발전이 사용자에게 어떤 서비스를 제공할지 기대된다는 생각을 했다.

그리고 manifast 파일만을 가지고 있는 넷플릭스가 돈을 벌 수 있는 구조가 신기하게 느껴졌다.