Voice Application의 Statistic 결과 항목들을 보면 다음 그림과 같이 "Packet Delay Variation" 항목과는 별도로 "Jitter (sec)" 항목도 있다.


일반적으로 Jitter는 패킷 전달 지연시간의 편차로 해석되기 때문에, 거의 동일한 의미로 해설될 수 있는 Packet Delay Variatioin 항목이 같이 있는 것은 사용자들에게 곧잘 혼란을 불러일으키고는 한다. 이 두 가지 값의 정확한 차이를 알아보도록 하자.
먼저 Packet Delay Variation의 (OPNET에서 사용하고 있는) 정의는 다음과 같다.
"Variance among end to end delays for voice packets received by this node. End to end delay for a voice packet is measured from the time it is created to the time it is received. "
실제로 delay variation 값은 gna_stat_variance_obtain() 함수에서 계산되는데, 해당 코드는 다음과 같다. (gna_support.ex.c 파일)
-----------------------------------------------------------------------------------
  mean_value = stat_data_ptr->sample_sum / stat_data_ptr->sample_count;
  variance_value = (stat_data_ptr->sample_sq_sum / stat_data_ptr->sample_count) -
   (mean_value * mean_value);
-----------------------------------------------------------------------------------
소스코드를 수식으로 변환하여 표현하면, 다음과 같다.


따라서, 소스코드와 Statistics 항목의 설명에서 명확하게 알 수 있듯이, 여기에서 variance가 의미하는 것은 일반적인 뜻인 '변화량'이 아니라 통계에서 사용하는 '분산'인 것이다.

다음으로 Jitter의 (OPNET에서 사용하는 있는) 정의는 다음과 같다.
"If two consequetive packets leave the source node with time stamps t1 & t2 and are played back at the destination node at time t3 & t4, then:
jitter = (t4 - t3) - (t2 - t1)
Negative jitter indicates that the time difference between the packets at the destination node was less than that at the source node."
실제로 jitter 값은 gna_voice_called_mgr (또는 gna_voice_calling_mgr) 프로세스 모델에서 계산되는데, 해당 코드는 다음과 같다.
-------------------------------------------------------------------------------------
/* Compute the jitter */
jitter = (op_sim_time () - prev_pk_info_ptr->play_back_time) - (rtp_pk_info_ptr->time_stamp - prev_pk_info_ptr->time_stamp);
-------------------------------------------------------------------------------------

Statistic 항목의 설명과 동일하게 jitter = (현재시간 - 이전 패킷의 수신시간) - (패킷을 송신한 시간 - 이전 패킷을 송신한 시간)으로 계산되고 있음을 확인할 수 있다. 즉, Jitter는 연속된 두 패킷에서 송신 노드에서 보내질 때의 시간 간격과 수신노드에 도착할 때의 시간 간격의 차이를 의미하는 것이다.

시뮬레이션 결과를 살펴보면 다음과 같이 전혀 다른 값이 기록되어 있는 것을 확인할 수 있으며, 그 이유는 앞에서 설명한 것처럼 서로 계산하는 방식이 전혀 다르기 때문이다.

Posted by 신상헌
,