둘셋 개발!

[네트워크] Application Layer 2 (multimedia traffic, Streaming, CDN, RTP, SIP, QOS, Best-Effort Network) 본문

네트워크

[네트워크] Application Layer 2 (multimedia traffic, Streaming, CDN, RTP, SIP, QOS, Best-Effort Network)

23 2022. 6. 13. 00:05

지난번 포스트에 이어서 이번에는 multimedia와 관련된 application layer에 대해 알아볼 것이다.

 

Multimedia Service

streaming, conversation 같이

실시간성이 있고 정보 전달에 있어서

요구조건이 있는 서비스

 


Multimedia Traffic

1. Video

영상과 음성 정보가 있는 것으로 높은 용량이 필요함

 

- Redendancy를 줄이는 방향으로 압축을 함

   1) spatial redundancy: 공간적으로 유사한 픽셀은 비슷한 정보를 가짐

       만약 배경은 같고 사물만 움직이는 비디오 라면, 비디오에서 배경은 비슷한 정보를 가짐

   2) temporal redundancy: 시간적으로 동일 픽셀은 느리게 변함

       만약 발차기를 하는 비디오라면, 중간에 예상되는 frame은 제거

 

    압축 품직에 따라 같은 영상을 multiple version으로 만들기도 함
  ex) 저화질, 고화질,,,,

 

2. Audio

video에 비해 낮은 용량을 가짐

 

- 음성 신호를 sampling 한 후 quantization(양자화)해서 bit로 표현

음성신호를 bit로 표현하는 과정

(출처:https://suyeon96.tistory.com/13)

 

- bit rate = sampling rate  * bits per sample 

bit rate가 높을 수록 음성 품질이 좋음

 

3. Service

 🖊streaming

- on-demand로 수신함 (요청하면 보내주는 형식)

 

- buffering

: 일정 양의 정보를 받고 재생한다. 그래서 network delay가 발생해도 대처가 가능하다

 

🖊conversational voice and video

- 실시간성으로 음성/영상으로 대화

 

- delay-sensitive

: 400ms 이상 걸리면 체감상 답답함을 느껴서 차라리 일정 시간이 지나면 packet loss 하는 방식을 사용

 


Streaming에 대해 더 깊게 알아보자

 

Streaming

1. UDP Streaming

- UDP 기반으로 data를 실시간 전송

 

- 보통 RTP와 연계함 (뒤에 RTP설명)

 

- congestion control이 없기 때문에 network 환경에 따라 문제가 발생할 수 있음

 

- Firewall에서 UDP를 막는 경우가 많음

 

2. HTTP Streaming

- HTTPserver 형태로 data를 실시간 전송

 

- TCP 연결을 함

 

- congestion control을 하기 때문에 실시간성에 문제가 있어서 요즘은 buffering & prefetching으로 해결함

 

3. CDN (Contents Distribution Network)

streaming service는 여러 대의 server를 분산적으로 두고 제공함으로써

network와 client의 거리를 좁히고, fail-safety을 보안함

 

- 지역적으로 고르게 분포

 

- 사람들이 사용을 잘 하지 않는 시간대(점심이나 새벽)에 각종 video 정보를 copy & paste 해둠

 


Voice over IP (인터넷  전화)

보이스톡이나 스카이프가 대표적인 예시로

Ip 상에서 voice를 전달하는 일련의 application protocol 임

 

- delay관점에서 매우 민감

jitter가 분명히 발생함으로 버퍼와 비슷한 개념으로 prefetching time을 두고 데이터를 보내다가

그 이후에 jitter가 발생하면 delay보다 loss 해버림 

-> sequence / timestamp 정보를 통해 재생 조절

 


Real-Time Protocol (RTP)

multimedia data에 대한 부가적인 정보를 담기 위해 

packet을 encapsulation하는 protocol

 

- UDP 바로 위해서 동작

 

ex ) Payload type, Sequence number, Timestamp, Syschronization source identifier, ,,,정보

 

 

 

RTP format

(출처 : https://www.geeksforgeeks.org/real-time-transport-protocol-rtp/)

 

 

- RTCP (Rea-Time Control Protocol)

RTP에 해대 flow control및 각종 통계정보를 제공

 


Session Initiation Protocol (SIP)

multimedia 전송을 위해 connection management를 해주는 프로토콜로써,

port번호를 주고 받은 다음, 약속된 port로 데이터를 주고 받음

 

- DHCP, mobile IP를 많이 사용하여 요즘은 상대방 IP주소가 고정적이 않아서

SIP proxy서버에게 불어봐야 함

 

- 서로의 Ip주소를 알고난 후에는 직접적으로 multimedia를 주고 받음

 


Quality of Service (QOS)

network 측면에서 service가 요구하는 성능의 품질이 적혀있는 것으로 

이를 참고하여 특정 성능을 보장!

 

priority, packet delay budget, packet error loss rate, 등등 있음

 


Best-Effort Network

최선을 다하겠다는 의믜로, 서비스가 요구하는 것을 무조건 만족시키려 하지 않고

networtk 성능을 최우선으로 고려

 

- network 용량이 수요보다 충분히 크도록 설계가 되어야 함

 

- network dimensioning : end-to-end 성능 요구사항을 맞추기 위해 router 추가설치, 각 link의 capacity 결정 등을 조절