论文部分内容阅读
网络流量测量是网络安全管理的重要方式,大部分网络安全事件的检测都是通过网络流量采集分析完成。高速的网络链路、海量的存储数据、多样的上层应用和持续变化的网络给网络流量测量带来巨大的挑战。大业务流识别是网络流量测量的一种可扩展性解决方案,对网络流量建模、网络性能分析及预测、网络规划及流量控制等具有十分重要的意义。随着链路带宽的快速增长和网络流量的急剧膨胀,大业务流识别算法面临识别精度、存储空间与数据包处理速度的挑战。
本文重点研究网络流量监测中的大业务流识别算法,主要工作与创新点如下:
1)实验对比评价当前主流大业务流识别算法。在总结归纳已有大业务流识别算法优缺点的基础上,本文通过实际网络的测量数据,从准确率、空间消耗和时间复杂度三个方面对基于计数的算法LC(Lossy Counting,SS(Space Saving)和基于哈希的算法CM(Count-Min Sketch)进行实验对比。实验结果显示:LC实现简单,能以较小的空间复杂度较快地识别出大业务流,是当前性能最好的大业务流识别算法之一。
2)基于数据流衰减模型,提出一种记忆损耗计数算法MLC(Mnemonic LossyCounting)。MLC算法引入历史信息表,暂存最有可能成为大业务流的候选数据流;该算法考虑历史信息对当前网络数据流状态的影响,对各数据流指定合适的误差边界,极大地提高大业务流识别的准确性。本文理论分析该算法的正确性、时间及空间复杂度。MLC算法是确定误差区间的ε-近似算法;至多存储log(εN)/ε个数据项记录(N为到目前为止数据流中出现的数据项数目);时间复杂度为O(2/ε+1/slog(1/ε))。
3)设计一种提供单数据项处理时间为常数时间(O(1))的混合数据结构,实现MLC算法。基于实际互联网数据,实验验证了MLC算法的误报率、漏报率、检测率、空间消耗和单数据项更新时间等性能。实验结果表明,与经典计数算法LC,SS及PLC(Probabilistic Lossy Counting)相比:MLC有90-97%的查询误报率为零,相比LC和PLC识别准确率分别提高31.5%和6.67%;MLC,LC和SS保证无漏报项,检测率达到100%,PLC仅以概率1-δ来保证查询结果满足ε-近似要求;MLC初始时达到最大空间消耗,其最大空间消耗远低于LC和SS,且随着数据流的增长,MLC空间消耗逐步稳定;MLC具有更快的处理速度,可在平均包到达间隔内完成对单数据项的更新。