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}[n]=\{1,2,3,...,n\},数据流中所有项目的集合
    • nn 随不同的特征变化而变化
      • 端口
      • 流入流出地址
  • mim_i,项目 iii[n]i \in [n])的频率
  • mm,数据流中项目的总数量
    • m=i=1nmim = \sum_{i=1}^n m_i
  • aj[n]a_j \in [n],数据流中第 jthj\text{th} 个观测到的项目
  • n0n_0,出现在数据流中的不同的项目的数量
    • nn 个项目不是都存在
  • nmn \gg m
  • Hi=1nmimlogmimH \equiv - \sum_{i=1}^n \frac{m_i}{m} \log \frac{m_i}{m}

H=logm1mimilogmiH = \log m - \frac{1}{m} \sum_i m_i \log m_i

相对误差

  • SimilogmiS \equiv \sum_i m_i \log m_i

H=logmSmH = \log m - \frac{S}{m}

  • SS~/S\vert S - \tilde{S} \vert / S
    • SS,真实值
    • S~\tilde{S},估计值
  • H~=logmS~/m\tilde{H} = \log m - \tilde{S} / mHH 的估计值
  • SS 的相对误差最大不超过 ϵ\epsilon
    • (1ϵ)SS~(1+ϵ)S(1-\epsilon)S \le \tilde{S} \le (1+\epsilon)S

HH~HϵSHm\frac{\vert H - \tilde{H} \vert}{H} \le \epsilon \frac{S}{H m}

近似算法

  • (ϵ,δ)(\epsilon, \delta)-近似算法
    • XX,真实值
    • X~\tilde{X},估计值
    • 相对误差小于给定上限 ϵ\epsilon 的概率应大于 1δ1-\delta
      • s.t. P(XX~Xϵ)1δP(\vert X - \tilde{X} \vert \le X \epsilon) \ge 1-\delta

下界

  • HαlogmH \le \alpha \log mO(logm)O(\log m)
  • 在流量记录上观测到的误差远小于理论保证
    • 算法必须保证错误边界能适应任何数据流、任何数据分布
    • 实际的数据包包含相当多的底层结构

算法

流算法

  • Alon–Matias–Szegedy 频率矩估计算法
  • 三个阶段
    1. 预处理阶段
      • 随机选择位置
      • 决定计数器
    2. 线上阶段
      • 统计这个项目后续出现次数
        • 选择一个位置 kk
        • 为位于 kkmm 之间的项目提供计数器 αk\alpha _k
    3. 后续处理阶段
      • 使用各种计数器,为数据流提供一个 SS 的估计值

筛分算法

  • 线上阶段
    • 从“小鼠”中挑出“大象”
      • 阈值 = 项目出现 2 次
    • 为“大象”计算第一次和第二次抽样之间的次数
      • 假设实例均匀分布
      • 连续的采样点间,实例出现次数应该相等
  • 后续处理阶段
    • Selephant+SmiceS_\text{elephant} + S_\text{mice}

参考资料

  • Lall, et all 2006. Data Streaming Algorithms for Estimating Entropy of Network Traffic

results matching ""

    No results matching ""