论文部分内容阅读
流量控制在保证网络关键业务服务质量方面起到了重要作用。但随着网络带宽和网络流量的日益增加、新业务的不断涌现和发展,流量控制面临着更复杂的问题和更高的挑战。本文研究网络流量控制的基本思想和原理,尤其基于Linux系统下的Netfilter/iptables框架的网络流量控制的规则组成和规则匹配算法,通过改进规则匹配算法和规则冲突检测来提高规则匹配速度和控制规则库规模,以提升网络流量控制系统的处理速度。本文的主要工作包括以下三点:1.提出一种基于自适应的树型结构的规则匹配算法。原来的线性规则匹配方法,随规则库规模增长,匹配需要消耗大量时间。根据常用的匹配属性的取值(如协议类型为TCP/UDP/ICMP)改为树型的结构,可缩短匹配时间,但容易导致树不均衡。基于自适应的树型结构的规则匹配算法在建树时,分支方式由规则库中的规则属性分布和空缺属性规则比例同时决定,以平衡树的高度和宽度。采用深度优先进行建树,并通过规则动态更新模块处理规则添加、删除和更新。仿真结果表明,自适应的树型结构的规则匹配算法具有更均衡的树高度和宽度,匹配速度更快,与线性规则匹配方法和树型匹配方法相比,分别减少179%,14.9%的匹配次数。2.提出规则冲突检测标准和算法。当管理员在建立和管理规则库时,由于疏忽或水平有限可能使得规则之间存在冲突或重复,导致规则库规模快速增长;同时一个数据包可以匹配多条规则,最终只能从多条匹配规则中选择优秀级最高的规则,按此规则对数据包进行处理,导致规则匹配时间增长。因此根据规则匹配的数据包集合之间的关系来定义规则之间的关系为重复,冲突,包含,交叉和无关。确定规则冲突检测标准为允许规则库中存在交叉和无关,不允许重复和冲突的关系存在,尽量不出现包含关系。这样不仅能避免规则之间的冗余和重复,而且还保证不删除必要的规则。冲突检测算法对新添加的规则与已有规则库进行规则冲突检测,能有效控制规则库规模,节约匹配时间,提高匹配速度。3.将规则冲突检测算法在网络流量控制原型系统中应用。只有通过了冲突检测算法的规则才能添加进规则库中,有效提升了匹配速度和限制规则库规模。