简介
snort读取配置文件时每条规则包括规则头和规则选项,而规则选项中的一个重要部分就是端口。snort中对端口的解析和对IP的解析思想相同但编码却有较大的差别。
IP解析时利用拷贝副本的方式避免了很多二次解析,而端口解析却没这样的功能。但端口解析使用了代理者模式,使上层接口不用直接和字符串交互,避免了上层接口还需要为解释端口的规则管理解析字串的脚手架。
流程说明
规则解释器就是snort中管理对配置文件解析的部分,当其解析到规则端口部分是就提取该字段交给端口解析管理器.
端口解析管理对非TCP,UDP的端口会按照默认处理即出这两个协议外的规则中的端口指定无效。
如果是TCP,UDP规则中的端口则交给端口解释代理解释构建端口对象
所以生成的端口对象都将存放在端口对象管理中
解释器获得的端口对象信息是指向端口对象管理中对应对象的指针。
总结
对比读取IP的处理:http://my.oschina.net/u/572632/blog/289775
总结了以下几点:
使用代理层次更分明
但对比IP的处理会出现重复解释
端口对象存放与管理方式和IP类似,但并未将取反端口集合和非取反集合分开存放,而是放在一起使用对象中的标志来区分。
来源:oschina
链接:https://my.oschina.net/u/572632/blog/289803