探讨局域网网络类型探测系统的设计
2010-08-29李华
李 华
盐城市医疗保险基金中心,江苏盐城 224001
0 引言
局域网网络类型探测已作为网络安全研究的一项重要内容[1]。本文主要根据局域网网络类型探测的基本技术,尤其是ARP协议探测技术,借助于winpcap来实现基本的局域网网络类型探测系统。
1 局域网网络类型探测系统的实现环境
数据环境配置方面:需要一台或一台以上的Windows工作站〔具有至少一块Ether网卡〕,若干台工作在TCP/IP协议下的主机,组成一个小型工作在同一网段的VLAN,或者该VLAN可以通过网关或路由跟外部网络建立连接。
软件环境方面:操作系统Windows 2000;底层驱动 Winpcap 3.0。
硬件环境方面:网络环境;一台PC机;一块以太网网卡。
2 局域网网络类型探测系统的概要设计
2.1 基本功能的设计
该局域网网络类型探测系统实现的基本功能可以概括为以下几点:
1)首先根据设置的过滤条件对经过主机的网络数据包进行截获,实现抓取敏感数据包的目的;2)然后把截获的数据包暂时保存在用户指定的文件中;3)加载在上一步中保存的数据包到软件,根据ARP协议及TCP/IP协议中各数据包的格式对加载的数据包进行包分析;4)对获得的报头中源IP地址、目的1P地址、源端口、目的端口等信息显示并保存到用户指定的文件中,以实现将来对相关内容的分析,由此可以判定该局域网是何种类型。
2.2 系统流程的设计
该系统的程序流程图如图1所示。其与软件的模块相对应,并以直观的方式将软件流程表示出来,以便于编程过程中更好地实现局域网类型探测的功能。
图1 系统程序流程图
可以看出对具体的数据包捕获和具体的数据包解析的过程是整个系统最关键是两大步骤,是最终进行类型判定的重要依据。考虑各种条件判断,根据条件判断的结果进行不同的处理。
3 局域网网络类型探测系统的详细设计
3.1 数据包的捕获
本捕获程序可以分为两大部分:驱动程序部分和应用程序部分[2]。驱动程序部分工作在核心态,负责网络数据的接收和发送;应用程序部分工作在用户态,除了与驱动程序进行正确的通讯外,还要将有关信息显示出来,并提供存盘,过滤等操作。缓冲区由应用程序动态分配。实现过程的关键代码如下所示:
3.2 数据包的解析
捕获后的数据帧经过解析才能得到想要的信息,如所需要的数据帧的源地址,目的地址,协议类型等信息。调用WinPcap底层驱动接收函数接收的数据包,除了包含用户数据外,还包含时间戳、IP/TCP报头等原始信息,所以获取数据包以后,可以方便的对数据包进行分析。实现过程的关键伪码如下所示:
根据所获取的数据,本地主机不断地接收数据包,进行分析处理。如果接收到的包中发送目的MAC不是本地主机的MAC,并结合各数据包中的协议信息,就可以精确地知道报文是广播的,因此,可以判定是共享式局域网络,否则是交换式局域网。
4 结论
局域网的广播机制和网卡的特定的混杂工作模式决定了网络数据捕获的可能性。本文的研究,不但可以准确分析局域网的网络类型,还可防止网络遭到入侵、攻击或破坏,甚至可以用来学习网络协议知识。
[1]王宇,张宁.网络监听器原理分析与实现[J].计算机应用研究,2008,20(7):142-145.
[2]胡晓元,史浩山.WinPcap包截获系统的分析及其应用[J].计算机工程,2009,1,31(2):96-98.