网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 免费个人入侵检测系统的实现(四)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

免费个人入侵检测系统的实现(四)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
免费个人入侵检测系统的实现(四) 户级缓冲等其它的高层函数,增加了比如统计和包发送等更高级的特性。因此程序员能处理两种类型的API:一套原始函数集,包含在packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于用户调用,功能更强大。程序员能随意使用wpcap.dll,但只能在受限的环境中直接使用packet.dll.
 总的说来,Packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。Winpcap的具体结构图2所示:
图2 Winpcap的具体结构
 正如在Windows网络体系结构中所阐释的,Win32网络架构基于NDIS(Network Drive Interface Specification网络驱动程序接口标准)。NDIS工作在Windows内核网络部分的最底层。捕获进程核心必须工作在内核层,先于协议栈之前处理包。BPF被网卡驱动程序直接调用,要求NIC设备驱动程序遵从一些所谓的“BPF(Berkeley Packet Filter)驱动规范”。换句话说,它需要设备驱动可以直接调用BPF Tap函数,能控制所有经过网卡的包(发送或接收),能对过滤后的包进行复制。当使用Winpcap进行捕获时,这种方法明显不行。因为Windows与BPF驱动规范有些不同:Windows不允许为了增加捕获功能而改变操作系统和NIC驱动。因此,Winpcap把Network Tap作为协议驱动放置在NDIS结构的上方。NDIS没有从NPF中完全分离出底层,不能自动支持不同的介质类型,故需要以这种方式构建。与NDIS的交互使NPF(NetGroup Packet Filter)比原始的BPF更加复杂,BPF通过一条简单的回调函数与系统交互;在另一方面,NPF是协议栈的一部分,就同其它网络协议一样与操作系统交互。然而,NPF获得了更好的执行效果,其Tap比BPF还要运行得快。同BPF一样,当包静止时NPF把过滤器放入NIC驱动内存中。另一个优化措施是NPF的同步操作。异步调用不支持,因此用户级存取经常被阻塞。NPF不需要设置用户级访问缓冲队列,这使驱动运行得更快。
 图3显示了NPF在NDIS结构中的位置:
 可以看出Winpcap也是用的NDIS,它将自己注册为一个协议处理驱动。(在原代码的driverentry里面能看到)。NPF是Winpcap中的核心部分,它完成了大部分的工作:将数据包发送到网络中并导出捕获的数据包,交由用户程序分析处理。
图3 NDIS内NPF
 Winpcap中NPF的实现由于是以协议驱动程序的模式来实现的,虽然从性能上看来并不是最始数据的完全访问。不同的Windows系统有不同的NDIS版本,NPF兼容Win2K及其后续的WinXP版本下的NDIS5,也兼容其他Windows平台下的NDIS3版本。NPF与操作系统之间的通信通常是异步的,NPF提供了一系列的回调函数供操作系统在需要时调用。NPF提供了应用程序所有I/O操作的回调函数,如:open,close,read,write等。
 NPF与NDIS之间的通信也是异步的.一些事件如当数据包到达时是通过回调函数通知NPF(这个例子中是Packetes tapo),并且,NPF与NDIS和NIC驱动之间的通信是非阻塞函数来实现的。当NPF调用NDIS函数时,调用立即返回;当处理完毕时,NDIS再调用一个特定的函数通知NPF.NPF对所有的底层操作都提供了回调函数。 图4显示了NPF的基础结构及其在Winpcap中的工作模式。
 
图4 NPF协议驱动
 Winpcap中过滤进程由用户级部分开始。它能接收一组用户定义的过滤规则(例如接收所有的UDP数据包),把它编译成一套伪指令(例如,如果是IP包且协议类型等这些指令等于17.就返回“True"),把这些指令发送到内核层过滤器,最后激活代码。内核层过滤器必须能够执行这些指令;此外,它需要一个“BPF虚拟机”来执行伪代码从而对所有到来的包进行操作。这个核心层和BPF兼容的过滤器是Winpcap获得良好性能的关键。NPF不同于BPF的一个重要的结构差别就是选择了一个环形缓冲区作为核心缓冲区.这有利于数据包快的复制。但这种机制更难于管理。因为复制的数据不再有固定的大小(Libpcap中,用户缓冲区和核心缓冲区都是32K)。当数据从内核缓冲区传送到用户缓冲区时,相同数量的包被复制到内核缓冲区中。它们是同步更新的,而不是在之后。由于内核部分较之缓冲区传送有更高的优先级,能独占CPU时,故复制过程(从用户层开始)能释放掉缓冲区已传送的部分。环形缓冲区允许所有的容量来存放数据包,前面谈到的一对BPF交换缓冲区只能用一半的容量。整个缓冲区可以用一条简单的Read() 指令读取,肯定减少了系统调用和在用户、内核模式之间上下文切换的次数。因为一次上下文切换需要保护现场(仅CPU描述符和任务状态段的开销就接近数百个字节),大批的传送会减少进程的开销。但是一个太大的用户缓冲区不会带来任何好处。当可分配内存太大时,上下文切换的开销反而可忽略不计了。Winpcap的核心缓冲区比BPF的大,通常为1M。一个小缓冲区会影响捕获进程。尤其在一段时间里应用进程读取数据的速度不如捕获进程,而且数据要被传送到磁盘,网络流量在激增。内核缓冲区和用户缓冲区都能在运行时间里改变。
 数据解析模块
 在本模块的设计中,主要涉及了三方面的知识:windows网络体系结构、TCP/IP协议,数据的封装和分用过程。
 TCP/IP参考模型与ISO(International Standards Organization)的OSI(Open Systems Interconnection Reference Model)参考模型相比,要简单实用得多,也是目前广泛使用的网络参考模型。在TCP/IP参考模型中没有明确的数据链路层和物理层,而是将它们合为较为抽象的“网络设备互连”作为硬件基础,随主机和网络的不同而不同。这种模型的应用范围较广,既可用于广域网.也可用于局域网。TCP/IP协议族,有很多协议。
 当应用程序用TCP传送数据是,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作帧(Frame)。这就是通常说的数据的封装过程。
 当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。
 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/10/10

免费个人入侵检测系统的实现(四)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:免费房产证信息数字签名的实现 下一篇:免费基于Aglet的入侵检测系统的实..
推荐论文 本专业最新论文
Tags:免费 个人 入侵 检测系统 实现 2010-04-01 13:07:10【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有