📄 rfc2330.txt
字号:
分布在EDF低尾和高尾的背离。
一个很重要的事是理解拟合良度测试的本性是:首先选择“显著度”,显著度是测试会错
误地宣告测量的给定数据集合未能吻合特定的分布,而实际上测量确实是符合这个分布的。
这一事件的概率。
除非有别的声明,IPPM拟合良度测试选取的显著度为5%,这意味着:如果测试采用了
100个样本而且这些样本里有5个相信在测试中会失败,那么样本全部与被测试的分布一致。
如果有相当多的样本测试失败了,那么样本与被测试的分布一致的假设就被推翻了。如果有
相当少的样本测试失败了,那么有可能样本被修饰得太好而不符合分布。相似地,一些拟合
良度测试(包括Anderson-Darling算法)能检定一个给定的样本是否被修饰了。对这一情况
我们也使用5%的显著度;也即,测试会报告给定的真实的样本有5%的时间“太好了而不真
实”,所以如果测试报告这个发现比1/20更显著,就暗示着出现了不寻常的事情。
附录给出了实现Anderson-Darling测试的示例C代码,也进一步讨论了它的使用。
在网络测量的环境中拟合良度和拟合闭度测试的讨论见[Pa94]。
12. 消除随机的度量参数
在定义用于路径,子路径,云,或其它网络元素的度量参数时,我们一般不把它们定义
为随机的术语(概率)。而是更喜欢确定性的术语。所以,例如不是定义参数为“A和B之
间分组丢失的概率”,而是定义为“A和B之间分组丢失率”。(由第一个定义得出的测量结
果会是0.73,而第二个定义会是100个分组里的73 个。)
我们强调上面的区别涉及度量参数的定义。它不涉及我们用来分析测量结果的技术类型。
这个区别的理由如下。如果定义按照概率来定义参数,在这个定义的背后往往隐藏着一
个被测量的行为的随机模型的假设。我们在参数定义中避免概率的基本目的是避免由于这样
的隐藏假设而出现的偏见。
例如,一个容易作出的隐藏假设是网络组件中由于排队溢出引起的分组丢失能被描叙为
对任何给定分组都以特定的概率发生的事情。然而,在今天的互联网,排队丢包事实上通常
是确定性的,而假定它们应该用概率来描叙会隐藏一组分组内排队丢包之间至关重要的相关
性。所以明确地指出随机假设更好,而不应将假设隐藏在我们的参数定义中。
这并不是意味着我们抛弃用来理解网络性能的随机模型!只是意味着在定义IP度量参数
时,我们避免使用“概率”这样的术语代替“比例”,“比率”这样的术语。例如,为了估计
由与IP度量参数有关的随机模型所用的概率,我们仍然使用随机抽样。在它们真正适当时,
我们也不排除使用以概率定义的参数。(例如,由某种线路噪声引起的传输错误的模拟。)
13. P型分组(PACKETS OF TYPE P)
许多互联网度量参数的一个基本的属性是参数的值依赖于做测量所用的IP分组的类型。
考虑一个IP连接参数:依赖于是否对分组的目的地是知名TCP端口或无限制的UDP端口的
连接感兴趣,或者带无效的IP校验和的分组,或者例如TTL为16的分组,可能获得不同的
结果,在有些环境,这些区别会很有趣(例如,有防火墙的场合,或RSVP预留)
因为这个区别,我们引入“P型分组(packet of type P)”的一般概念,在一些具体的环
境,P需要明确地定义(即:明确是指何种类型的分组),部分定义(例如:带有B字节的有
效负载),或保持一般概念。因此我们可以讨论一般的P型IP连接或更明确的IP-HTTP连接。
一些度量参数和测量方法可以使用一般的P型定义来有效地定义,在完成实际测量时,再给
P型分组以明确的说明。
无论何时,一个度量参数的值依赖于涉及它的分组类型,这个参数的名字应包括特定的
分组类型或如“P型”这样的词语。因此,我们不会定义“IP-连接”的参数而是定义“P型
IP-连接”的参数和/或“HTTP端口IP-连接”参数。这个命名规则作为一个重要的暗示提醒
我们必须清楚的意识到所测量流量的确切类型。
一个与之紧密相关的注意之点:知道是否给定的互联网组件对不同类型分组组成的C类
平等对待是很有用的。如果是的,那么这些分组类型中的任何一种都可以用于接下来对该组
件的测量。这就提示我们设计尽量有确定的C类的度量参数或度量参数集合。
14. 互联网地址与主机
在考虑对一些穿过互联网的路径的参数时,常常会自然地设想它是属于从互联网主机H1
到H2的路径的。尽管用这些术语做的定义,会有些模棱两可,因为互联网主机可以从属于
多于一个的网络。这种场合下,参数的测量结果将依赖于实际测量时所用的网络。
由于有这个模糊性,通常这样的参数定义应该根据互联网IP地址来定义。对于穿过互联
网的单向路径的普遍场合,我们将用术语“源址”表示路径的开始的IP地址,而“目的”表
示路径终点的IP地址。
15. 标准构成的分组
除非有另外的陈叙,所有涉及IP分组的度量参数的定义都包括了一个内在的假设:分组
是标准构成的。如果一个分组满足所有下面的标准就是标准构成的:
在它IP报头内给定的长度与IP报头加上有效负载的长度一致。
它包含有一个有效的IP报头:版本域是4(以后,我们会将其 扩展到包括6);报头长
度大于等于5;校验和正确。
该分组不是IP分片。
源地址和目的地址和研究中的主机一致。
如果TTL域是每过一跳就减一,则要么分组拥有足够从源主机传到目的主机的TTL,要
么分组拥有最大的TTL:255。
除非明确的注释,不能包含IP选项。
如果有传输层报头,它也要有正确的校验和以及其它的有效的域。
我们更要求如果分组被描叙为有“B字节的长度”,那么0,<=B<=65535;而且,如果B
是以字节表示的有效负载长度,那么B<=(65535-以字节表示的IP报头长)。
所以,例如,可以想象定义一个IP连接的度量参数为“IP TOS域为零标准构成分组的P
类型IP连接”或更简洁地,“IP TOS域为零的P类型IP连接”,因为由于约定,标准构成已
经包含在定义里。
一个考虑问题时往往有用的特定标准构成分组类型是“从A到B的最小IP分组”—这
是一个具有以下属性的IP分组:
它是标准构成的。
它的有效负载是0。
它没包含IP选项。
(注意我们没有定义它的协议域,因为不同的值可能得到网络的不同对待。)
在定义IP度量参数时,我们时刻要记得:没有比这种分组更小或更简单的分组能够在正
常工作的IP网络里传输。
16. 致谢
感谢Brian Carpenter, Bill Cerveny, Padma Krishnaswamy Jeff Sedayao 和 Howard
Stanislevic 的批评。
17. 安全考虑
本文档涉及关于互联网测量的定义和概念。我们只在高级术语上讨论测量过程,涉及得
出合理测量的原则。因为这样,讨论的主题不影响互联网或在互联网上运行的应用程序的安
全。
也就是说,必须认识到进行互联网测量能引起对安全和隐私的关注。主动测试技术,注
射流量到网络中去,被滥用的话,就是伪装成合法测量活动的拒绝服务(DoS)攻击。被动
技术,记录并分析存在的流量,会把互联网流量的内容暴露给无意识的接受者。因此,每个
度量参数和测量方法的定义必须包括相应的对安全考虑的讨论。
18. 附录
下面我们给出了计算Anderson-Darling (A2)测试统计量的C程序,Anderson-Darling 测
试算法用于决定是否一个值集与给定的统计分布是一致的。外表上,这两个主要的程序是:
double exp_A2_known_mean(double x[], int n, double mean)
double unif_A2_known_range(double x[], int n, double min_val, double max_val)
都采用它们第一次的声明,x,被测的值n的数组(x的元素经过排序)。余下的参数描叙所
用分布的特征:或者mean(平均值),(1/λ),对于指数分布而言;或者上界和下界,对于均
匀分布而言。程序的名字强调了这些值必须事前就知道,而且不要从数据中估计得到(例如,
通过计算它的样本平均)。从数据中估计得到参数改变了测试统计的显著度。 尽管 [DS86] 给
出了一些例子的显著度表,这些例子中,参数是从数据中估计得到的,出于我们的目的,我
们希望我们应该实际上事前知道参数,因为我们将测量的东西是如分组发送时间之类的我们
希望检验是否符合已知分布的一般值
两个程序都返回如早先描叙的显著度。它是一个0到1之间的值。对程序的正确地使用
是事先选好测试的显著度的阀值;通常为0.05,即如上所叙的5%。随后,如果程序返回的
值严格小于阀值,那么可以认为数据与事前假设的分布不一致,面临与显著度相关的错误。
也即,对于5%的显著度,事实上是从事前假设的分布中来的5%时间的数据会被错误地认为
不一致。
因此,记住这点很重要:如果这些程序使用频繁,那么事实上会偶尔面临错误,即使数
据是无暇的。
另一个涉及显著度的重要之点是为了决定两个数据集哪个更好的符合事前假设的分布而
比较它们是不合理的。实际上这样的测量应该使用如[Pa94] 中所叙的参数λ2这样的“拟合闭
度度量参数”来做。
尽管提供的程序是对于已知了参数的指数分布和均匀分布的,通常写出类似的用于任何
已知参数分布的程序。A2测试的核心在于为测试数据集是否与0到1之间的均匀分布(我们
表示为Unif(0, 1))一致而计算的统计量。如果我们希望测试一个数据集,X,是否与给定分
布G(x)一致,我们首先计算Y = G_inverse(X) 如果X事实上分布服从G(x),那么Y将服从
分布Unif(0, 1);所以通过测试Y与Unif(0, 1)的一致性,我们也就测试了X与G(x)的一致性。
然而,我们指出,上面计算Y的过程可能产生的Y值超过(0,1)的范围。这样的值是
不应当出现的,如果X事实上分布服从G(x);而如果X不是,Y就很容易出现这样的值。
在后一种情况,我们需要避免计算中心A2统计量,因为如果有任何(0,1)范围外的值,
浮点例外可能出现。相应的,程序检查这个概率,而且如果出现,返回一个原始的A2统计
量-1。转换原始A2统计量为显著度的程序同样地传播这个值,返回显著度-1。所以,对这些
程序的任何运用都必须为可能出现的负值显著度准备。
最后一个关于A2统计量使用的重要之点关系到n,被测数据的数量。如果n < 5那么测
试没有意义,而且在这种情况下返回显著度为-1。
另一方面,对于“真实”数据,随着n变得很大,测试获得了激励。在统计学里从所周
知,真实的数据几乎从不恰好符合理论分布,即使是在丢很多次骰子的情况下(简要的讨论
和参考见[Pa94])。A2测试是足够敏感的,对于足够大的真实数据集,测试会几乎总是失败,
因它会试着探测数据对分布符合的轻微的不完整性。
例如,我们发现在测试8192个以泊松间隔发送分组的测量线时时,测量几乎总是通不过
A2测试。另一方面,如所期待的,测试128个测量只在约5%时间里失败于5%的显著度。
因此,通常,在测试失败时,必须注意理解是什么原因导致的。
本附录的剩余部分给出了上面提及的程序的C代码。
/* 计算Anderson-Darling A2 测试统计的程序 *
实现基于“拟合良度技术”中的描叙R. D'Agostino and M. Stephens, editors, Marcel Dekker,
Inc., 1986.
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* 返回n个排序样本的原始A^2测试统计量
z[0] .. z[n-1], 对于 z ~ Unif(0,1).
*/
extern double compute_A2(double z[], int n);
/* 返回与A2的A^2测试统计量关联的显著度,假定被测分布的参数都不是从数据中估
计得出的。
*/
extern double A2_significance(double A2);
/* 返回n个服从带给定均值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -