robertbaggio
驱动牛犊
驱动牛犊
  • 注册日期2009-04-21
  • 最后登录2011-05-27
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1597回复:0

请教 ndis 中间层 如何收发包的时候过滤大量的规则,规则内存至少在50M以上,且会不断增长

楼主#
更多 发布于:2011-05-26 09:40
如题,我现在遇到的问题就是,在收发包的时候过滤海量规则,规则大小目前至少有50M,且会不断增长,我考虑了几个思路,还没试验,这里我的问题主要是内存占用太多,规则的过滤可以排序后写个搜索算法,这个不是问题。

1. 在非分页内存中直接分配这么大的内存,目前我不确定这么分配会不会对系统造成影响,还有以后分配的会越来越大,内存使用已经超出产品的规定。

2. 考虑在内核中用内存映射文件来分批加载规则,这么做需要:1)将收发包后的处理全部移到线程里 2) 建立一个规则外的库,先过这个库,不在这个库里,就过规则库,在内存中先load 一小部分规则,不在这里面,就分批用内存映射文件来load内存过规则。 这种方法我没尝试,不知道行不,但感觉可能很多包都得分批内存映射文件来过规则,cpu会不会很忙,这种方法,是可以解决内存占用问题。

请教各位,上述方法是否可行,有没有其他好的方法?
游客

返回顶部