Data Streaming Algorithms for Estimating Entropy of Network Traffic
背景信息和启发
- 网络流量数据流分析
- 衡量分布
- 矩方法
- 熵
- 提高灵敏度
- 附加的诊断信息
- 簇(流量)间的信息距离
- 熵估计和频率矩估计有相似性的结构
- 大流量(大象)和较小流量(小鼠)之间的流量分布通常有清晰的界限
论文目标
- 数据流算法
- 第一种算法
- 熵估计和频率矩估计有相似性的结构
- 为精确计算信息熵提供恰当的估计函数
- 为计算的近似度和使用的资源提供理论证明
- 第二种算法
- 由基础的流算法构建
- 将大流量(大象)与小流量(小鼠)分开
数据来源
记录 |
持续时间 |
Bins |
TCP 数据包 / bin |
不同的 IP / bin |
端口 / bin |
University Trace (Trace 1) |
1 Hour |
1 min epochs |
1.7M |
30267 |
15165 |
Department Trace (Trace 2) |
5 Hour |
5 min epochs |
0.5M |
2587 |
4672 |
University Trace (Trace 3) |
1 Hour |
1 min epochs |
2.5M |
25565 |
8080 |
公式
记号
- [n]={1,2,3,...,n},数据流中所有项目的集合
- mi,项目 i (i∈[n])的频率
- m,数据流中项目的总数量
- m=∑i=1nmi
- aj∈[n],数据流中第 jth 个观测到的项目
- n0,出现在数据流中的不同的项目的数量
- n≫m
- H≡−∑i=1nmmilogmmi
H=logm−m1∑imilogmi
相对误差
- S≡∑imilogmi
H=logm−mS
- ∣S−S~∣/S
- S,真实值
- S~,估计值
- H~=logm−S~/m,H 的估计值
- S 的相对误差最大不超过 ϵ
- (1−ϵ)S≤S~≤(1+ϵ)S
H∣H−H~∣≤ϵHmS
近似算法
- (ϵ,δ)-近似算法
- X,真实值
- X~,估计值
- 相对误差小于给定上限 ϵ 的概率应大于 1−δ
- s.t. P(∣X−X~∣≤Xϵ)≥1−δ
下界
- H≤αlogm,O(logm)
- 在流量记录上观测到的误差远小于理论保证
- 算法必须保证错误边界能适应任何数据流、任何数据分布
- 实际的数据包包含相当多的底层结构
算法
流算法
- Alon–Matias–Szegedy 频率矩估计算法
- 三个阶段
- 预处理阶段
- 线上阶段
- 统计这个项目后续出现次数
- 选择一个位置 k
- 为位于 k 和 m 之间的项目提供计数器 αk
- 后续处理阶段
- 使用各种计数器,为数据流提供一个 S 的估计值
筛分算法
- 线上阶段
- 从“小鼠”中挑出“大象”
- 为“大象”计算第一次和第二次抽样之间的次数
- 假设实例均匀分布
- 连续的采样点间,实例出现次数应该相等
- 后续处理阶段
- Selephant+Smice
参考资料
- Lall, et all 2006. Data Streaming Algorithms for Estimating Entropy of Network Traffic