webrtc 품질 측정 기초

16

Click here to load reader

Upload: blisson-choi

Post on 14-Feb-2017

262 views

Category:

Software


7 download

TRANSCRIPT

Page 1: WebRTC 품질 측정 기초

WebRTC 품질 측정 기초리모트몬스터 최진호

Page 2: WebRTC 품질 측정 기초

VoIP 품질지표 - MOS (Mean Opinion Score)- 청취자들의 주관적인 음성품질의 1-5단계 측정법

- PESQ (Perceptual Evaluation of Speech Quality)

- 원래 신호 대비 수신 신호의 패킷 손실율 기반 측정법

- E-Model- 신호대 잡음비에서 음성신호,지연,코덱등의 손상값을 차감하여 종합음성 전송품질 R 계산

- PESQ에 지연시간이 추가되고 MOS의 장점을 흡수한 형태

Page 3: WebRTC 품질 측정 기초

MobileVoIP의 품질 환경

- 단말기의 다양한 하드웨어적 특성

- 통신 환경의 다양성

- 이동중의 환경 변화의 불확실성

- 모바일 UX의 다양성

Page 4: WebRTC 품질 측정 기초

WebRTC 품질관리의 범위

품질 요인 품질 기준

A BS S C E

단말기 성능네트워크 종류단말기간 지역적 거리단말기와 서버간 지역적 거리TURN 가용력 대 부하량

MOS, PESQ, E-Model접속율 혹은 접속 실패율Setup timeLatency or delay통신 유지율그리고 통화 품질(QOS or QOE)

Page 5: WebRTC 품질 측정 기초

WebRTC 품질 요소 - Bandwidth

- 대역폭

- 네트워크상 가용한 최대 전송속도(Mbps or Kbps)

- WebRTC엔진은 기본적으로 BWE(BandWidth Estimation) 엔진 탑재

-

Page 6: WebRTC 품질 측정 기초

WebRTC 품질 요소 - Packet loss

- 실제 전송한 패킷수 대비 수신측에서 받지 못한 패킷의 수(퍼센트)

- WebRTC에서 number of packets lost = 기대했던 패킷 수 - 수신한 패킷 수

- 단일 packet loss도 중요하나 burst packet loss도 중요

- MLBS (Mean Loss Burst Size): 연달아 발생하는 packet loss 크기의 평균값

- 01010101 = 1- 11110000 = 4

Page 7: WebRTC 품질 측정 기초

WebRTC 품질 요소 - Delay

- 패킷을 보낸 시간과 받은 시간의 차이- RTT (Round Trip Time)으로 측정- delay와 latency는 동일하게 사용

Page 8: WebRTC 품질 측정 기초

WebRTC 품질 요소 - jitter

- 연속적인 패킷을 받은 시간(delay)의 변동폭

- WebRTC에서 정의하는 jitter 계산법- D(i, j) = (Rj − Sj ) − (Ri − Si)- J(i) = J(i − 1) + (|D(i − 1, i)| − J(i −

1))/16- webrtc엔진은 음성/영상 엔진 각각 jitter

buffer를 갖고 있으며, 오류 보정과 packet loss등 다양한 품질에서 품질을 보정하기 위한 용도로 사용

https://w3c.github.io/webrtc-stats/

Page 9: WebRTC 품질 측정 기초

WebRTC 품질 요소 - CPU 사용율 혹은 온도

- 다양한 사용자 경험에 영향을 미침- 모바일에서 WebRTC사용의 최소 사양은

2.5Ghz, 2MB RAM이지만 장시간 사용시 CPU의 성능이 매우 중요

- 온도는 디바이스를 쥐는 경험에서도 중요하지만 더욱 중요한 것은 장시간 사용시 온도가 높아지고 결국 CPU스로틀링을 감지할 수 있는 수단이기 때문

http://ieeexplore.ieee.org/document/7231206/

Page 10: WebRTC 품질 측정 기초

WebRTC- stats - codec- inbound-rtp- outbound-rtp- peer-connection- data-channel- track- transport- candidate-pair- local-candidate- remote-candidate- certificate

https://www.w3.org/TR/webrtc-stats

Page 11: WebRTC 품질 측정 기초

WebRTC- firefox stats

- inboundrtp : outbound_rtcp_video/audio, inbound_rtp_video/audio

- outboundrtp : outbound_rtp_vide/audio, inbound_rtcp_audio/video

- candidatepair list (selected=true)- localcandidate- remotecandidate

Page 12: WebRTC 품질 측정 기초

WebRTC- chrome webrtc-internals

Page 13: WebRTC 품질 측정 기초

WebRTC- chrome stats

- googCertificate: local에서 사용하고 certificate 자체 용도로도 사용하는 DTLS certificate 정보

- googComponent: certificate 통계와 connection간의 접착제 역할을 수행합니다. 즉, 현재 active한 candidate 쌍들에 대한 링크를 가짐

- googCandidatePair: ICE Candidate 쌍- 송수신된 패킷과 bytes의 전체 수(bytesSent,

bytesReceived, packetsSent; packetsReceived는 알수없는 이유로 missing)

- 현재 active한 connection인지 여부- 송수신된 STUN 요청 및 수신의 수(requestsSent,

responsesReceived, requestsReceived, responsesSent)

- googRtt: 마지막 STUN요청의 RTT- googTransportType: 전송 type

- localCandidate/remoteCandidate

Page 14: WebRTC 품질 측정 기초

WebRTC- chrome stats

- SSRC:peerconnection을 통해서 송수신되는 음성 혹은 영상 트랙 하나를 담당

- SSRC의 공통 값- media: 음성인지 영상인지- googTrackId: 대상 트랙 id- googRTT: RTCP통해 측정된 RTT- googCodecName: 코덱의 이름- bytesSent, bytesReceived, packetsSent,

packetsReceived(송신인지 수신인지에 따라): 누적값. 이전값과 함께 적절한 계산 필요

- packetsLost: 잃어버린 패킷수- SSRC- Voice

- audioInputLeve, audioOutputLevel(표준= audioLevel): 음성신호가 마이크 혹은 스피커에서 오는지 여부

- googJitterReceived/googJitterBufferReceived: 수신된 Jitter의 양 정보, jitter buffer state에 대한 정보

Page 15: WebRTC 품질 측정 기초

WebRTC- chrome stats

SSRC video

- googNacksSent- googPLIsSent- googFIRsSent- googFrameWidthInput, googFrameHeightInput,

googFrameRateInput: 입력된 frame size와 frame rate- googFrameWidthSent, googFrameHeightSent,

googFrameRateSent: 실제 전송된 frame 정보

VideoBWE: bandwidth 예측값

- googAvailableReceiveBandwidth: 수신중인 영상을 위해 가용한 bandwidth

- googAvailableSendBandwidth: 송신중인 영상을 위한 가용한 bandwidth

- googTargetEncBitrate: 영상 인코더가 목표로 하는 bitrate- googActualEncBitrate: 영상 인코더의 실제 초기 bitrate- googTransmitBitrate: 실제 전송하는 bitrate

Page 16: WebRTC 품질 측정 기초

WebRTC- simulator NetEM

vs Dummynet