网络流量测量技术解析
1. 概率计数法测量流量
概率计数法的核心是计算流ID中特定模式的罕见程度。具体操作如下:
- 对于每个接收到的数据包,算法会对流ID计算哈希函数。
- 从哈希结果的最低有效位开始,统计连续零的数量,以此作为罕见程度的衡量标准。
- 算法会记录到目前为止,所有已处理数据包的哈希流ID值中,从最低有效位开始的最大连续零数量X。
- 在统计区间结束时,将最大连续零数量X转换为流量数量的估计值2X。
哈希处理是该算法的关键,原因有二:
- 避免流ID分配的影响 :若直接在流ID序列上实现算法,当流量流中存在包含多个尾随零的流ID F时,即使流数量很少,未使用哈希的算法也可能错误地报告大量流量。而添加同一流ID的多个副本不会改变算法的最终结果,因为所有副本的哈希值相同。
- 提高准确性 :使用多个独立的哈希函数可以提高准确性。单个哈希函数的基本思想最多只能保证50%的准确性,而通过并行使用N个独立的哈希函数计算N个独立的X估计值,概率计数法可以大大降低最终估计的误差。
概率计数法的优势在于,芯片可以以较小的误差近似计算流量数量,且所需内存远小于跟踪所有流量所需的内存。每个哈希函数的计算可以并行进行,流量计数可视为原理P3b的应用,即牺牲估计的准确性以换取低存储和时间成本。
2. 使用采样NetFlow减少处理负担
在网络中,一些应用可能需要数据包日志,以便分析师回顾分析模式和攻击。像Cisco的NetFlow这样的通用流量测量系统,可以报告非常细粒度的流记录,但存储数据包日志需要大量内存,