网络抖动(jitter)的计算

上一篇 / 下一篇  2010-02-05 10:35:26 / 个人分类:网络环境测试

  用UDP设计一套仿照TCP AIMD的机制,最重要的几点就在于:

1. 如何判断拥塞发生

2. 用什么样的策略来调整窗口(对UDP来说是sending rate)

对于1来说,使用两个threshold,一个就是jitter,另一个收到两个feedback之间的时间差。这里转载两篇节选的关于jitter计算的文章。一篇英文,是Stanford一个 research center在1998年做的一些实验,叹一句,人家做的果然是很早啊。

Website: http://www.slac.stanford.edu/comp/net/wan-mon/tutorial.html
Jitter, see also Jitter,
    The short term variability or "jitter" of the response time is very important for real-time applications such as telephony. Web browsing and mail are fairly resistent to jitter, but any kind of streaming media (voice, video, music) is quite suceptible to jitter. Jitter is a symptom that there is congestion, or not enough bandwidt to handle the traffic. The jitter specifies the length of the VoIP codec de-jitter buffer to prevent over- or under-flow. An objective could be to specify that say 95% of packet delay variations should be within the interval [-30msec, +30msec].

    The ITU has a Proposed Method for Measuring Packet Delay Variation. This requires injecting packets at regular intervals into the network and measuring the variability in the arrival time. The IETF has IP Packet Delay Variation Metric for IP Performance Metrics (IPPM) (see also RTP: A Transport Protocol for Real-Time Applications and RFC 2679).

    We measure the instantaneous variability or "jitter" in two ways.

       1. Let the i-th measurement of the round trip time (RTT) be Ri, then we take the "jitter" as being the Inter Quartile Range (IQR) of the frequency distribution of R. See the SLAC <=> CERN round trip delay for an example of such a distribution.
       2. In the second method we extend the IETF draft on Instantaneous Packet Delay Variation Metric for IPPM, which is a one-way metric, to two-way pings. We take the IQR of the frequency distribution of dR, where dRi=Ri-Ri-1. Note that when calculating dR the packets do not have to be adjacent. See the SLAC <=> CERN two-way instantaneous packet delay variation for an example of such a distribution.

    Both of the above distributions can be seen to be non-Gaussian which is why we use the IQR instead of the standard deviation as the measure of "jitter".

    By viewing the Ping "jitter" between SLAC and CERN, DESY & FNAL it can be seen that the two methods of calculating jitter track one another well (the first method is labelled IQR and the second labelled IPD in the figure). They vary by two orders of magntitude over the day. The jitter between SLAC & FNAL is much lower than between SLAC and DESY or CERN. It is also noteworthy that CERN has greater jitter during the European daytime while DESY has greater jitter during the U.S. daytime.

    We have also obtained a measure of the jitter by taking the absolute value dR, i.e. |dR|. This is sometimes referred to as the "moving range method" (see Statistical Design and Analysis of Experiments, Robert L. Mason, Richard F. Guest and James L. Hess. John Wiley & Sons, 1989). It is also used in RFC 2598 as the definition of jitter (RFC 1889 has another definition of jitter for real time use and calculation) See the Histogram of the moving range for an example. In this figure, the magenta line is the cumulative total, the blue line is an exponentail fit to the data, and the green line is a power series fit to the data. Note that all 3 of the charts in this section on jitter are representations of identical data.

    这个包含很多IETF(http://baike.baidu.com/view/155093.htm)起草的RFC draft的定义,属于比较详细的了,其实我还没见着更详细的。

    Website:http://blog.ixpub.net/html/96/12690296-146844.html
    Jitter测试
    我们通常用4个基本的参数来描述一个流所要求的服务质量是否符合需求:可靠性、延迟、抖动和带宽,不同的应用对这4个特征的要求各不相同,比如电子邮件、文件传输、Web访问和远程登录应用对于可靠性有很严格的要求,任何一位都不允许被错误递交,而音频点播、视频点播、IP电话和视频会议应用可以容忍错误,但这些实时性要求高的应用对于延迟和抖动的极为敏感,所以网络延迟和抖动是衡量网络对多媒体业务承载性能的重要参数,在一个对延时敏感的网络中,最理想的情况是抖动为0。随着网络多媒体业务的快速增长,这两种参数的关注率也越来越高。
    SLA Jitter测试是探测网络状况对实时性业务是否提供合理服务质量的重要工具,可以得到网络的可达性、延迟和网络抖动等统计数据。在这种测试类型中抖动 (jitter)和单向延迟定义如图3.1所示,T1为报文packet1的发送时间,T2为接收packet1的时间(这里将B处理报文的时间忽略未计,因此T2也作为回应报文的发送时间),T3为接收响应报文的时间,T4,T5,T6的定义以此类推。

                               图2 抖动测试分析
Jitter测试的Client端A开始探测后,以固定的时间间隔向目的端发送指定数量的UDP报文。每次探测发送的jitter报文的数量和发送频率用户都可以根据自己的需要进行设置。假设一次jitter探测发送了10个UDP报文,探测结果有:
(1)报文往返延时RTD (Round-Trip Delay) :packet1的往返延时RTD1 = T3 – T1;
(2)报文单向延时OWD (One-Way Delay)(这种测试需要A和B之间首先进行时钟同步):S-Source   D-Destination
Packet1 SD-Delay1 = T2 – T1     DS-Delay1 = T3 – T2
Packet2 SD-Delay2 = T5 – T4     DS-Delay2 = T6 – T5
(3)网络抖动jitter:
SD方向   SD jitter1 = (T5 – T4) – (T2 – T1)
DS方向   DS jitter1 = (T6 – T5) – (T3 – T2)
由此可见,如果成功收到的回应报文数为10,则计算得到的jitter抖动数应该为9,SLA监测工具即可对这些统计值计算出抖动的最值、方差等做计算统计,从而了解到网络状况。
为了能够更真实地反映网络对实时性业务的服务质量,许多网络设备供应商对SLA jitter测试进行了扩展,支持模拟G711a/G711u/G729a语音编码进行测试。如果SLA监测工具配置了G729a模拟语音测试,那么这种jitter测试将按照对应语音流的频率何报文大小发送测试报文,最后统计计算得出表示语音质量的参数MOS和ICPIF。

一些SLA监测工具还具有阈值告警功能,即用户可对监测项进行阈值设定,比如对SD Delay设置延时阈值为5ms,当报文SD Delay超过5ms时,设备会产生一个SNMP Trap,实现实时监测以实现更详细的分析功能。

本身是一篇关于SLA的介绍,其中提及的关于jitter的简单测量方法,我们采用的就是这个了,比较简单易算,其实是SLAC那篇里提到的方法2.

----------------------------------------------------我的分割线-----------------------------------------------------------------

再来看看Increase/Decrease的算法。

TCP使用的是的比较经典的AIMD,Additive Increase and Multiplicative Decrease,

Dah-Ming CHIU and Raj JAIN在1989年提出的,发表了篇paper,《Analysis of Increase and Decrease Algorithm for Congestion Avoidance in Computer Networks》,ms现存的pdf文档都是质量很差的扫描版,只能凑合看了(http://www.cse.wustl.edu/~jain/papers/ftp/cong_av.pdf)后世几乎所有做Congestion Control research的人都应该看过,而且paper大都cite过这片文章。Dah-Ming Chiu 现在CUHK, Raj Jain 现在在WUSTL,都是牛人。后来,很多人都对AIMD进行过研究和改进,文章太多,就不说了,比如GAIMD,MAIMD等等……

RFC 2581,《TCP congestion control》则是比较明确的说明和约定了TCP使用的拥塞控制算法(http://www.cnpaf.net/rfc/rfc2581.txt)。

TAG:

 

评分:0

我来说两句

日历

« 2024-05-22  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 40111
  • 日志数: 47
  • 建立时间: 2010-01-07
  • 更新时间: 2010-10-11

RSS订阅

Open Toolbar