QA Engineering/Performance Test

미디어 지연 성능 측정 feat. wireshark

일해라폴폴 2020. 1. 22. 19:07
반응형

Media Latency Accuracy

Streaming 서비스를 사용하는 앱에서 client 와 server간의 성능 검증을 위해 Streaming service의 Media Latency 시간을 테스트 해야 한다.
성능 테스트를 위해서는 Wireshark 및 MAC OS 환경에서 측정 및 테스트를 진행 한다.

Wireshark 로 Latency 확인하기

테스트 환경은 Relay Server를 통해 Streaming service를 Client 에서 테스트를 진행 하게 된다.

Client A ↔ Relay Server ↔ Client B 에 packet dump 를 동시에 요청하고 받은 순서대로 배열 하여 packet delay 시간을 계산해서 Media Latency 를 정리한다.
(wireshark에서 parsing 된 각각의 UTC time 을 기준으로 Client A와 Client B 의 각 packet 별 주고 받은 시간을 계산 함)

# wireshark 에서 패킷을 확인 할 때 RTP protocol을 사용하는 streaming service 는 RTP 로 file 이 payload 되지 않고 UDP로 파싱 되서 열리는 경우가 있다. wireshark 설정에서 rtp payload type를 설정 해야함 (Edit → Preferences → Protocols →H.264 (125))

Figure 1. Payload Set
Figure 2. RTP Parsing

Relay Server 에서 Packet Dump

ssh로 relay server 에서 접속 해서 tcpdump 를 저장한다

[root@RELAY ~]# tcpdump -i any src Caller IP or -i any dst Callee IP and proto UDP -B 4096 -v -vv -w `date "+%y%m%d_%H%M"`.pcap 

Client 에서 Packet Dump

iPhone 에서 tcpdump 를 저장하기 위해서는 각 기기의 UDID 얻어야 한다. 다음 링크 참고 (https://blog.goodgods.com/577) @안되면 Xcode 에서 확인 가능함

Mac 과 iPhone 을 연결 한 후 Terminal에서 Virtual Network Interface로 연결 한다 (Client A, Client B 각각 연결)

아래와 같이 rvi0 / rvi1 2개의 Interface에 대해 dump를 수행한다. 

$ rvictl -s [udid] 
$ sudo tcpdump -i rvi0 -n -s 0 -w dump_clientA.pcap
$ sudo tcpdump -i rvi1 -n -s 0 -w dump_clientB.pcap 

각 테스트 결과는 csv 파일로 받은 후 excel 에서 time latency 를 계산 하면 각 end-to-end 구간의 media latency 를 확인 할 수 있다.

반응형