第十讲 抽样方法概述
文章目录
随着信息技术和互联网技术飞速发展,数据获取方式变得多样化,大数据随之产生。大数据共同特征:数据量庞大,不断递增;数据当中由重要的特征或趋势;对于如何更好的搜寻,总结它们,我们没有明确的答案。
大量具有相同特征的数据集构成数据流。数据流指的是相同的源目的IP地址、源目的端口号和协议字段的集合体。流标识:某些IP报头字段中的值的组合。关于数据流和数据分组的研究点:1)根据四元组进行数据流的分类。2)可以通过哈希函数的方法,分类以后可以进行数据分组总数,总字节数的统计,持续时间统计等。
传统的网络测量方法可能无法适应新型的网络应用:
- 更有区分度的测量方法:网络:“尽力而为”的设计思想。服务供应商:把握个体级别的流量特征。客户:验证网络是否达到自己的预期目标。程序:越来越多的实时应用程序。
- 对于数据规模的缩减:计算和存储资源十分稀缺。数据传输消耗大量带宽,带宽要求高。分析处理系统昂贵。
1. 三种方法可以实现数据的简化和缩减:
- 聚合:将多个数据基于某种测度组成一个集合
- 过滤:选择符合特征的个体,剩下的被舍弃
- 抽样:使用随机或者伪随机的方法进行数据筛选
2. 抽样的作用优势
- 抽样可以在不了解详细特征的前提下保留对象的全部细节,并同时缩减数据规模。
- 抽样具有一定普适性,不局限于某种特定科学研究
- 抽样的作用,就是根据需要或者已有的数据特征,来平衡资源限制和查询要求这一对矛盾。
3. 困难与挑战
- 在数据采集过程中,绝大部分可能已经经过了采样,尽可能地还原出最原始数据的特征
- 抽样方法地实现受资源以及技术的限制,很难从纯粹的统计角度来设计抽样方法。
- 流量特征本身对抽样方法影响较大,网络流量在多个时间尺度上表现出速率波动,网络流量呈现明显的重尾分布。
- 抽样方法需要考虑具体的网络应用类型,还无法找出一组特定的数据来为网络全局的管理提供直接参考。
抽样与选择:
- 通常更为广泛的说法时“选择”:实际上某些数据缩减的工作不需要抽样。
- IETF组织PSAMP工作组:确定性的抽样为“过滤”,剩下的称为“抽样”。
数据流形象化描述
- 一个由 ( t i , c i ) (t_i,c_i) (ti,ci) 组成的序列,其中 i i i 随着时序的递增不断增加。
- t i t_i ti表示个体 i i i 被观察到的时间, c i c_i ci 表示个体 i i i 的内容。
- 抽样的对象可以是报文分组,也可以是流。
4. 抽样“两步走”
抽样本质上是基于计数器 i i i 的一个规则制定。该规则可以简化为“两步走”:
- 第一步,制定一个触发器,即启动抽样所依据的时间或事件;
- 第二步,在触发器启动后,在数据流当中选择对应的个体。
触发器的类型:
- 基于计数器的触发器:给出一个递增的计数序列 { i n : n = 0 , 1 , 2 ⋯ ⋯ } \{i_n:n=0,1,2 \cdots \cdots\} {in:n=0,1,2⋯⋯} ;
- 基于时间的计数器:给出一个递增的时间序列 { τ n : n = 0 , 1 , 2 ⋯ ⋯ } \{\tau_n:n=0,1,2 \cdots \cdots\} {τn:n=0,1,2⋯⋯} 。
5. 均匀抽样
5.1 系统化抽样
- 基于计数的触发器:抽样模型可以表示为: i n = n N + i 0 i_n=nN+i_0 in=nN+i0 ,其中 N N N 表示采样的周期。
- 基于时间的触发器:可以表示为: τ n = n T + τ 0 \tau_n=nT+\tau_0 τn=nT+τ0 ,选择还是在触发时进行。
弊端:
当被抽样的个体也可能存在明显的周期性,且和我们的抽样频率由一定关联时
5.2 简单随机抽样
- 可以很好地规避同步化问题,相当于将系统化抽样的间隔变为了具有一定分布规律的随机数
- 简单实现方法:在给定触发器之后,立刻生成到下一个触发器的时间间隔。
- 不足:生成的某些时间分布可能是无界的
- 改进方法:可以将抽样方法简化为对每个个体进行采样决策
5.3 分层均匀随机抽样
- 先根据事物的一些属性划分为层
- 层的划分需要保证层间差异明显大于层内差异,以减少抽样整体带来的偏差。
- 每一层的总数以及在每一层中抽取的数量一致
- 每个个体的抽样概率其实是一致的,但是受限于实际情况,某些抽样后的组合可能不被允许。
5.4 三种抽样的区别和联系
- 对于每个类,可以通过基于计数器或基于计时器的机制实现或近似实现任何抽样方法
- 针对单个报文被抽样的概率都是相同的,然而对于报文的组合的抽样就不相同了
- 共享一些公共属性(例如:流密钥)的背对背报文一般不使用系统抽样
6. 不均匀抽样
不均匀抽样:一种将抽样权重与个体本身结合的抽样方法
- 样本不均衡时:某些情况下占比较小的个体种类可能更具备研究价值
- 例如:在攻击检测与发现方面,攻击流量很可能只占很小一部分,
- 常见应用:根据个体大小规模制定抽样权重(例如:数据报文中的字节数)
- 每一个个体 x i x_i xi ,以概率 p i p_i pi 被抽样
- x ˉ \bar{x} xˉ 的一个无偏估计: N − 1 ∑ i = 1 n x i p i N^{-1} \sum_{i=1}^{n} \frac{x_i}{p_i} N−1∑i=1npixi
- 还有一个无偏估计为: ∑ i = 1 n 1 / p ( x i ) \sum_{i=1}^{n}1/p(x_i) ∑i=1n1/p(xi) (N未知)
均匀抽样的联系:
- 均匀抽样是一种特殊情况:上式计算可得n/N就是抽样的概率
- 方差是无偏的,但是可能会较大。
- 假设全部N个物体有一个辅助的指标 y i y_i yi
- 选择与 y i y_i yi 成比例的 p i p_i pi :在 x i x_i xi 与 y i y_i yi 大致成比例的情况下
- 典型例子:根据采样的字节数来预估报文的平均长度
7. 随机抽样仿真实现
基于内容的伪随机抽样和非均匀的概率抽样:
- 不均匀的概率抽样:一个样本设计,其被选择的概率取决于内容
- 基于内容的伪随机抽样:通过内容模拟随机选择的一种实现方式
伪随机数发生器:
- 对于计算资源非常稀缺的系统来说,这样的随机抽样算法可能就不太合适
- 例如:路由器中分给每个报文的计算资源十分有限
根据报文设计伪随机数:
- 可以视为一种过滤,知识这里面的过滤规则较为复杂
- 个体内部特征之间的依赖性也可能导致抽样对个体特征产生依赖性
- 安全隐患:如果规则制定不够复杂,那么攻击者有可能精心制作一组流来破坏抽样的随机性。
8. 哈希函数
哈希函数提供了一种基于伪随机数的随机抽样方法,以及一种对享有共性的个体进行一致性抽样的方法:
- 我们设置一个哈希函数h,定义函数定义域为集合C以及抽样范围 S ⊂ h ( C ) S \subset h(C) S⊂h(C) .
- 当报文c满足 h ( c ) ∈ S h(c) \in S h(c)∈S 时,报文c被抽样。
- 基于哈希函数的抽样也是一种过滤方法,即过滤出满足 c ∈ h − 1 ( S ) c \in h^{-1}(S) c∈h−1(S) 的个体。
- 逆函数 h − 1 ( S ) h^{-1}(S) h−1(S) 的计算时非常困难的。
8.1 哈希函数特性
用于抽样的哈希函数一般需要满足以下特性:
-
雪崩效应:
- 输入值当中十分微小的变化(如:一个比特位的翻转)可以导致输出结果的很大变化
- 潜在输入c在任意局部区域都可以通过函数h在输出域上实现广泛分布
- 即便输入值c的分布不够均匀,输出值h©的分布也是较为均匀的。
- 可以通过调整抽样范围S的大小来控制抽样比例
-
哈希函数的输入值对于采样结果影响也不能忽视
- 在实际抽样场景中,数据报文一般含有多个字段:例如数据报文的源和目的IP以及端口号。
- 基于哈希的选择决策是确定性的
- 但是对于字段的选择也可以影响抽样的结果:哈希函数的结果不能较大依赖于某一个输入字段
- 字段之间的独立性足够强:对于任意一个输入的字段f1,另外有一个字段f2与f1的关联度是足够小的
8.2 哈希函数种类
- 密码学哈希函数:一般随机性较好,运行速度普遍偏慢,安全性往往是多余的
- 启发性哈希函数:原理比较简单,运算速率也比较快,但是随机性不够
- 数学哈希函数:对于输入输出的概率特性有较为精准的分析,实现的速率一般也比较快。
强:对于任意一个输入的字段f1,另外有一个字段f2与f1的关联度是足够小的
8.2 哈希函数种类
- 密码学哈希函数:一般随机性较好,运行速度普遍偏慢,安全性往往是多余的
- 启发性哈希函数:原理比较简单,运算速率也比较快,但是随机性不够
- 数学哈希函数:对于输入输出的概率特性有较为精准的分析,实现的速率一般也比较快。