防火墙系统需求与改进分析

作者:马峥 更新时间:2010-09-25 13:26 点击:
【论文发表关健词】网络安全; 个人防火墙; 驱动程序; 网络驱动接口规范; 系
【职称论文摘要】
防火墙在网络中占有重要的地位。用户安全意识的提高和网络攻击手段的发展使得传统的功能简单的个人防火墙已经无法满足现在的需求。首先,用户对个人防火墙的功能需求增强,个人防火墙需要提供不同层次的安全保护。其次,用户对个人防火墙效率的需求增强。在防火墙功能扩展

 1防火墙系统的需求分析
  
  随着网络的发展和普及,上网的人群越来越多,同时网络入侵的方式种类也是越来越多,层出不穷。因此,个人用户对本机安全的需求是非常突出和必要的,而个人防火墙作为网络安全最基本、最经济、最有效的手段,其地位也是非常重要的。防火墙的实现方式有硬件和软件两种,作为个人用户而言,硬件防火墙固然很好,但其昂贵的价格限制了其在个人防火墙领域的应用。因此,目前而言,个人防火墙的主要实现方式还是采用软件实现的方式。无论个人防火墙功能多么完善,性能效率多么高效,这些都不能带给用户直接的感受。用户能直接感受到的就是个人防火墙的使用过程,如防火墙的安装部署,防火墙的界面部分,或者说个人防火墙表示层能和用户直接交互的部分。因此,个人防火墙的部署和操作的方便也是需求重点之一。
  
  2系统性能分析
  
  很多时候防火墙系统的执行效率并不高,导致CPU使用率高,整个计算机变慢。下面就通过分析防火墙系统来总结影响防火墙效率的一些重要因素。
  防火墙的基本功能就是包过滤功能,当防火墙拿到数据包后,就会把数据包同规则表进行比较,以决定通过或者丢弃。当用户指定了很多过滤规则的时候,防火墙通常是把数据包按一定的顺序一条一条地同规则表进行比较。当规则表条目很少的时候,可能效率影响不大,但当规则表条目很多时,这样的顺序比较就会占用较多的时间。当网络带宽很大的情况下,如果是TCP传输,就会导致效率下降,如果是UDP传输,就会导致丢包的情况发生。
  当防火墙的驱动层执行各项功能时,会不断有数据传递给中间服务层,如包过滤处理结果等等;同时中间服务层也会主动通信驱动层,如修改规则表等。通常这种上层同驱动层的通信主要方式是通过IOCTOL实现的,这种方式实现起来简单,但每次通信的时候都需要占用一定的内存资源和CPU资源。当网络带宽大,数据流量大的情况下,IOCTOL通信是非常繁忙的,因此如何改善驱动层同上层的通信,将直接影响防火墙的性能。
  
  3系统性能改进方法
  
  针对系统的性能瓶颈,本文主要采用以下方法来改进系统的性能:
  3.1 优化规则表
  防火墙系统对数据包实现过滤功能的核心部分就是规则表。规则表构建的好坏直接影响数据包过滤功能的性能以及效率的好坏。防火墙系统一般允许用户自己添加防火墙规则,当用户添加的规则很少的情况下,可能带来的影响并不大,而在用户添加了很多规则之后,可能在这些规则中会出现很多前后矛盾的规则,很多多余的规则,如果规则表构建得不好,还会出现规则表不完整的情况,也就是会出现数据包无法找到规则表中的规则相匹配的情况。所以创建正确的规则表是防火墙系统中一个非常重要的部分。
  很多情况下防火墙的设计者只是特别重视规则表匹配的效率问题。在效率的问题上,设计有们一般分成两个方向:一个方向是采用某种数据结构以便更快地进行规则表匹配,另一个方向是采用某种自定义的语言来实现快速匹配。但这些高效率的实现只有建立在一个完整、紧凑、和谐的规则表基础之上才能得以实现的。
  3.2 通信方式
  防火墙系统主要的通信集中在驱动层和中间服务层之间,以及用户态的进程之间的数据交互。这些通信非常繁忙。
  驱动层与中间服务层的主要的通信方式有IO,事件以及共享内存。上层通过Create File打开驱动后,通过Device IO Control方式对驱动层进行读写操作,这是一种比较基本的简便的通信方式。但是这种方式会占用较多的CPU资源。每次进行IO ct1通信分配缓存,都会相当消耗资源。另外一种方式是通过设置共享内存,用事件(Event)通知对方,然后另一方通过启动一线程Wait For Single Object收到Event通知后,就到共享内存处读取数据。这种方式明显比上面的 IO ct1方式节省资源,可以避免性能下降。但是共享内存方式的实现比IO ct1复杂。
  为了提高防火墙系统的性能和通信效率,驱动层与中间服务层主要采用缓存事件配合IO的方式,节省CPU资源,提高计算机性能。
  在用户态的进程之间的主要通信方式有消息机制、共享数据方式、内存映射文件方式等,但一切都是基于内存映射文件方式机制。通过创建文件内核对象,把文件内核对象映射到不同的进程空间,达到进程间的共享数据,保证了进程之间数据交换的效率,确保最低的系统开销。
  因此,在用户态的进程之间的主要通信方式采用内存映射的方式,保证高效率和低系统开销。
  3.3 读写
  因为防火墙要经常读写文件,比如规则表、策略表以及Log信息,因此,频繁地打开文件、读写文件、关闭文件将占用大量的内存空间和CPU时间,对防火墙的效率和性能的影响很大。如果采用内存映射方式,不仅保证了进程间的数据交换的效率和性能,同时也保证了IO文件读写的效率。
  3.4 驱动层内过滤
  通常过滤的方式有两种:在驱动层过滤和在应用层过滤。
  在应用层过滤实现起来比较简单,很多防火墙如此实现,每次驱动层拿到数据包后,通过IO或者事件的方式将数据包送到共享缓存中,然后事件通知应用层处理,应用层收到通知后,就到共享缓存处读取数据包进行处理,然后将处理后的结果传回共享缓冲区,同时以事件或者IO方式通知驱动层,驱动层收到通知后,读取共享缓存区。在应用层里可应用的函数非常丰富,因此负载的实现做起来比较简单,但这种方式要耗费很多CPU资源。
  驱动层过滤就是一次性将规则表传入驱动层,然后直接在驱动层过滤。但驱动层可以使用的函数非常少,因此不像应用层处理那么方便,但却减少了通信,减少了每次通信带来的系统开销。
  因为规则表并不需要很复杂的处理,所以我们采用驱动层过滤的方式,降低通信开销。
  
  4结论
  
  随着网络的发展,个人防火墙越来越受到重视,地位也越来越重要,用户对个人防火墙的要求也越来越高,因此个人防火墙要在丰富的功能实现基础上兼具良好的性能和效率。
  本文首先对现在的网络体系结构和Windows系统的网络架构进行了介绍和对比。然后对在Windows平台下各层次的防火墙开发的相关技术进行介绍和分析,定位了5个系统性能和效率瓶颈:(1)规则表的匹配低效;(2)驱动层同中间层的繁忙通信;(3)进程间的繁忙数据交换;(4)文件读写的低效;(5)策略表的低效查找。 (责任编辑:nylw.net)转贴于八度论文发表网: http://www.8dulw.com(论文网__代写代发论文_论文发表_毕业论文_免费论文范文网_论文格式_广东论文网_广州论文网)

发表评论
本站模板均经测试成功,请放心下载,遇到任何问题或者需要购买付费论文请联系本站。
表情:
验证码:点击我更换图片