软件工程硕士论文

您当前的位置:学术堂 > 毕业论文 > 在职硕士论文 > 工程硕士论文 > 软件工程硕士论文 >

WINDOWS网络及协议结构

来源:学术堂 作者:陈老师
发布于:2017-02-27 共1781字
  本篇论文快速导航:

展开更多

  第三章 防火墙相关技术
  
  3.1 WINDOWS 网络及协议结构
  
  3.1.1 Windows 网络组件结构
  
  在 Windows 系统下,其网络组件结构分为两种:用户态组件和内核态组件。其中,用户模式下的网络组件如图 3.1 所示。用户模式下的数据过滤方法主要包括:替换 Winsock2 DLL、Winsock2 SPI 分层服务提供者、Windows 包过滤接口[15].而内核模式下的网络组件如图 3.2所示。内核模式下的数据过滤方法有 TDI(Transport Data Interface)过滤驱动程序、NDIS 中间层驱动程序(NDIS Intermediate Driver)、Windows 过滤挂钩驱动程序、Windows 防火墙挂钩驱动程序以及 NDIS HOOK 过滤驱动程序等。NDIS HOOK 过滤驱动程序是防火墙设计中最常用的内核过滤方法,NDIS Hook Driver 的做法是安装钩子函数到 ndis.sys 中,替换其中的某些关键函数,从而达到截获数据包的目的,而且本文设计的个人防火墙也是采用这种内核驱动过滤方法。
  
  3.1.2 Windows 中处理数据包的 TCP/IP 结构
  
  在 Windows 7 Service Pack1 和 Windows Server 2008 Service Packl 中,TCP/IP 协议驱动程序(Tcpip.sys)以及其他用于在处理 IP 数据包的相关组件的简图如 3.3 所示。从图中可以看出,处理 IP 数据包的组件主要有 IP 转发组件、过滤器挂钩驱动程序、防火墙挂钩驱动程序以及IPsec 组件。接下来,依据数据包通过本地主机的几种不同情况讨论数据包的处理过程。
  
  (1)源数据包
  
  源数据包就是从本机发出的数据包[16].对于从本机发出的数据包,它的处理流程如下[17][18]:
  
  (a)上层程序产生数据之后层层封装成数据包,通过传输层协议驱动程序将数据封包发送给防火墙挂钩驱动程序进行处理。防火墙挂钩驱动程序按照预先设定的规则进行分析,来选择数据包丢弃或正常发出。处理完毕以后,防火墙驱动挂钩程序则会将接收到的 IP 数据包传回 TCP/IP 协议驱动程序进行处理。
  
  (b)接着,TCP/IP 协议驱动程序会将传回来的数据包传递给过滤挂钩驱动程序(Ipfltdrv.sys)再进行处理。过滤挂钩驱动程序根据下一跃点接口,将该数据包与已配置的出站IP 数据包过滤进行对比:与过滤规则不一致,拒绝该数据包的继续发送,丢弃该数据包;与过滤规则一致,允许发送该数据包,过滤挂钩驱动程序会将该数据包发送给 TCP/IP 协议驱动程序,放行该数据包。
  
  (c)最后,TCP/IP 协议驱动程序将该数据包传递给 IPSEC 组件来处理,发送给下一 IP地址。
  
  源数据包整个的处理流程如图 3.4 所示。
  
  (2)目的数据包目的数据包就是由外部发送到本地计算机的数据包。目的数据包具体处理流程如下:
  
  (a)接收到发送端发送来的 IP 数据包以后,TCP/IP 协议驱动程序 Tcpip.sys 首先将它传送给 Ipsec.sys 处理。
  
  (b)接着,该数据包传送给过滤挂钩驱动程序来处理。IPfltdrv.sys 将数据包与入站 IP数据包过滤器进行对比:与过滤规则不一致,拒绝该数据包发送到本机,丢弃数据包;与过滤规则一致,Ipfltdrv.sys 将该数据包传回给挂钩驱动程序。
  
  (c)其次,TCP/IP 协议驱动程序该数据包传递给防火墙过滤挂钩驱动程序进行处理。
  
  (d)最后,TCP/IP 协议驱动程序 Tcpip.sys 才将 IP 数据包与已配置的 TCP/IP 过滤器进行对比:与过滤规则一致,Tcpip.sys 将在不发出任何提示的情况下,丢弃数据包;与过滤规则一致,Tcpip.sys 将继续对该数据包来进行处理,最终数据包会被有效负载传送给 TCP、UDP或其它上层协议做其他处理。目的数据包的整个处理流程如下图 3.5 所示。
  
  (3)转发数据包
  
  转发数据包就是由本机来转发的数据包[19].转发数据包需要在入站和出站两个方向上来处理数据包,这是与源数据包、目的数据包处理的不同的地方。转发数据包的处理过程如下:
  
  (a)接收到外部发送来的数据包之后,对本机来说,相当于一个目的数据包,处理过程与目的数据包的处理过程一样,发送给过滤驱动程序,与配置的 IP 入站数据包过滤器进行比较,进行丢弃或允许通过处理。若过滤器允许数据包通过,Ipfltdrv.sys 将 IP 数据包传传回给Tcpip.sys,IP 转发组件确定下一跃点接口和地址。转发数据包的入站处理流程如图 3.6 所示。
  
  (b)接着,发送该数据包到防火墙过滤挂钩驱动程序。
  
  (c)接下来的处理过程,数据包与源数据包的处理一样,将数据包发送给过滤挂钩驱动程序,与出站 IP 数据包过滤器进行对比,根据过滤器来丢弃或者放行数据包。若过滤器允许数据包通过,IP 数据包被传回给协议驱动程序进行处理。转发数据包的出站过滤流程如下图3.7 所示。
返回本篇论文导航
相关内容推荐
相关标签:
返回:软件工程硕士论文