【发布时间】:2017-05-30 15:11:11
【问题描述】:
为了提高深度数据包检测的性能,我们通过对规则执行哈希算法对规则集进行预处理,从而将规则分成更小的子规则块,从而加快检测速度。
对原始 104 的前 17 位进行散列处理。预处理完成后,每当数据包到达时,我们都会对其前 17 位进行散列处理,并根据结果与更小的一组规则进行检查。
(该算法使用了两次,在对前 17 位进行散列后,它对接下来的 16 位进行散列并存储结果,但是对于这个特定问题,我们可以假设我们只对固定数量的位)
该算法确实很有效,但是,我们似乎无法找到一种方法将其应用于带有无关位的条目 - 我们得到了很多。
我们在许多地方搜索了解决方案,并尝试了例如使用无关位复制规则的建议。但是它不起作用,因为它需要大量的内存(对于众多规则中的 17 条中的每一个无关位,都可以选择它是 1 还是零 - 这将需要指数量的空间)。
我们非常感谢任何建议或见解,即使是部分解决方案也会很棒。
注意:预处理时间或额外空间没有限制,只要它不是指数或任何不切实际的。
【问题讨论】:
标签: algorithm data-structures hash classification packets