앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.04.08 - [Computer Science/네트워크] - [네트워크] Application-Layer Protocols
1. Video Streaming
- 비디오는 굳이 설명할 필요도 없이 인터넷의 가장 중요한 부분입니다. 저도 맨날 유튜브 보다가 늦게 잡니다.
- 일단 비디오가 얼마나 큰 객체인지 먼저 알아봐야 합니다. 비디오는 초당 24~30개의 이미지를 출력합니다.
- 그리고 이미지는 수많은 픽셀로 이루어져 있습니다. 이런 이미지는 하나의 행렬로 표시되어 있습니다.
- 결론적으로 비디오는 상당히 용량이 많이 나가는 객체입니다.
- 비디오 스트리밍에서 가장 중요한 성능 측정은 바로 average end-to-end throughput입니다.
- 지속적인 재생을 위해서 네트워크는 압축된 비디오의 bit rate보다 적어도 같은 average throughput을 스트리밍 어플리케이션에 제공해야 합니다.
- 또한 같은 비디오의 다른 압축을 사용하여 다양한 버전을 만들 수 있습니다. 따라서 현재 사용 가능한 자원에 따라 어떤 버전을 볼지 유저는 선택할 수 있습니다.
2. About Compression
- 비디오를 압축하는 방식은 많습니다. 공간적으로 압축하는 방식이 있고, 시간적으로 압축하는 방식이 있습니다.
- 예를 들어 하늘이 모두 검은 사진이 있다면, 굳이 검은색 값을 나누어 보낼 필요가 없습니다. 해당 부분을 굳이 계속 전송할 필요가 없습니다.
- 추가적으로 시간이 지나도 변하지 않는 부분이 있다면, 이 또한 굳이 계속 보낼 필요가 없습니다.
- 이렇게 압축해서 보내는 variable bit rate(VBR)이 있다면, 압축하지 않고 보내는 constant bit rate(CBR)이 있습니다.
- VBR은 동영상을 다른 비율로 인코딩하기 때문에 가변적으로 비트를 전송합니다.
3. Streaming stored video
- 동영상을 보낸다면 아무리 VBR이라도 전송 속도가 재생 속도를 못 따라갈 수도 있습니다.
- 이는 Delay Jitter가 크기 때문인데, Jitter는 네트워크 안에서 패킷 전송 간격의 변동을 의미합니다. 빨리 올 때는 빨리 오지만, 느리게 올 때는 느리게 온다는 뜻을 의미합니다.
- 만약 Jitter가 없으면 어떻게 될까요?
- 아마 서버가 전송하고, 네트워크의 약간의 delay를 거친 후에 일정한 속도로 도착하므로 바로 재생이 가능할 것입니다.
- 하지만 네트워크의 delay는 가변적이므로, 항상 재생해야 하는 타이밍에 패킷이 도착한다는 보장이 없습니다. 따라서 재생을 위해 client-side buffer를 만들어야 합니다.
- 딜레이가 심할 때나 적을 때나 버퍼에 도착하는 데이터를 어느 정도 쌓아놓고, 임계값을 넘기면 그때 재생하는 방식입니다.
참고
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업
Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년
Chat GPT, Bing AI
다음 글에서는 DASH와 CDN에 대해 알아보겠습니다.
2023.04.14 - [Computer Science/네트워크] - [네트워크] DASH, CDN
감사합니다.
지적 환영합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] Transport-Layer Protocols (0) | 2023.04.15 |
---|---|
[네트워크] DASH, CDN (0) | 2023.04.14 |
[네트워크] Peer-to-peer (P2P) Architecture (0) | 2023.04.14 |
[네트워크] DNS - local DNS server (0) | 2023.04.14 |
[네트워크] DNS - Distributed, Hierarchical architecture (0) | 2023.04.14 |