logo资料库

论文研究-基于Winpcap的TCP/IP网络协议分析软件研究与设计 .pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
5 10 15 20 25 30 35 40 中国科技论文在线 基于 Winpcap 的 TCP/IP 网络协议分析软件 http://www.paper.edu.cn 研究与设计# 余华平,徐鹏鹏* (长江大学计算机科学学院,湖北 荆州 434023) 摘要:TCP/IP 网络协议分析是网络安全管理的基础之一。文章首先分析了 TCP/IP 协议在 Windows 中的实现技术和基于 Winpcap 的网络数据包捕获方法,然后采用 VC++编程技术, 基于 Winpcap 函数库、MFC 和多线程技术实现 TCP/IP 网络协议分析软件,协议分析软件实 现了网络数据包的捕获、协议分析、协议编辑发送和数据管理等功能。该软件不仅能为网络 安全管理提供技术支持,而且还能为计算机网络教学提供帮助。 关键词:TCP/IP 协议;Winpcap;协议分析;网络编程 中图分类号:TP273 Design of a TCP/IP Network Protocol Analysis Software based on Winpcap Yu Huaping, Xu Pengpeng (College of Computer Science, Yangtze University, HuBei JingZhou 434023) Abstract: TCP/IP network protocol analysis is one of the basis of network security management. Firstly, this paper analyzes the implementation technologies of the TCP/IP protocol in Windows and the methods based on Winpcap. Secondly, the TCP/IP network protocol analysis software is realized using VC++ programming technology, Winpcap, MFC and multithreading technology. The protocol analysis software realized these functions such as the network packet capture, protocol analysis, protocol editing and sending, data management etc.. The software not only provide technical support for network security management, but also can offer help for computer network teaching. Keywords: TCP/IP protocol; Winpcap; Protocol analysis; Network programming 0 引言 TCP/IP 是一组协议的代名词,是计算机网络互连的事实标准,因此,熟练掌握 TCP/IP 网络协议十分必要。为了为网络安全管理提供技术支持,同时满足计算机网络学习的需要, 帮助学生更加直观地理解协议的实现原理,增加直观的感性认识,笔者在 Windows 环境下, 基于 Winpcap 抓包工具软件包开发设计了 TCP/IP 网络协议分析软件。该软件主要由四部分 组成:数据捕获子系统、协议分析子系统、协议编辑发送子系统和数据管理子系统。 1 TCP/IP 协议在 Windows 中的实现 网络的根本是实现不同主机之间的通信,为了实现这种通信而制定了各种协议,只要双 方履行协议就可以正常通信。人们至今一直沿用 OSI 网络协议模型,即网络七层协议。但 随着 Internet 的发展,TCP/IP 协议已成为事实上的广域网通信标准[1]。 Windows 操作系统的总体架构分为两个层次,上面为应用层,下面为核心层。应用程 序(.exe)和动态链接库(.dll)都工作在应用层。EXE 和 DLL 是两种工作方式不同的应用 程序,EXE 是一个独立且可以直接执行的模块,受 Windows 进程保护机制的保护,其它程 基金项目:湖北省自然科学基金(2012FFB00102) 作者简介:余华平,(1978-),男,副教授,博士研究生。主要研究方向:计算机检测与控制、无线传感 器网络、油气田开发。E-mail: yhpjz@126.com - 1 -
中国科技论文在线 http://www.paper.edu.cn 序程序无权直接使用这个这个程序的木块和数据。DLL 是一个共享的函数库,它提供标准 的接口供其它程序调用,本身却不能单独运行。应用层的下面是核心层(Kernel),Windows 下核心层的程序扩展名为.vxd 和.sys。OSI、Windows 结构、TCP/IP 与 Windows 程序之间的 映射关系如图 1 所示[1]。 图 1 OSI、Windows 结构、TCP/IP 与 Windows 程序之间的对应关系 Fig. 1 The relationship of OSI、Windows structure、TCP/IP and Windows programs 2 基于 Winpcap 的网络数据包捕获方法 Winpcap 是 UNIX 下的 libpcap 移植到 windows 下的一个抓包工具软件包[2],包括三个 部分:一个内核级别的包过滤驱动程序 NPF(Net group Packet Filter),一个低级动态链接库 Packet.dll 和一个高级的独立于系统的 Wpcap.dll。其中,NPF 是一个虚拟设备驱动程序文件, 是架构的核心,主要功能是过滤数据包,在包上附加时间戳、数据包长度等信息;Packet.dll 在 Win32 平台上提供了与 NPF 的一个通用接口;Wpcap 通过调用 Packet.dll 提供的函数生 成,包括了过滤器生成等一系列可以被用户级调用高级函数,另外还有诸如数据包统计及发 送功能。编程人员既可以使用 Packet.dll 中的低级函数直接进入内核级调用,也可以使用由 Wpcap.dll 提供的高级函数调用。Winpcap 结构及其 Packet.dll 和 Wpcap.dll 调用流程如图 2 所示。 图 2 Winpcap 结构及其 Packet.dll 和 Wpcap.dll 调用流程图 Fig. 2 Winpcap structure and flow diagrams of Packet.dll and Wpcap.dll - 2 - 45 50 55 60
中国科技论文在线 3 TCP/IP 协议分析软件设计与实现 3.1 系统软件设计 http://www.paper.edu.cn 65 本 TCP/IP 协议分析软件基于 Visual C++编程环境,采用 MFC 基础类库和多线程编程技 术[3]实现包括数据捕获、协议分析、协议编辑发送、数据管理等四个功能模块。详细如图 3 所示。 70 75 80 图 3 系统功能模块结构图 Fig. 3 System function module structure 软件界面除包括菜单栏、工具栏、状态栏以及各种对话框外,还包括 6 个用于显示各种 信息的视图,主视图(占据程序界面的大部分区域)用于显示数据包的主要信息,包括数据包 索引号、捕获到数据包的时间、数据包的长度、以太网的源/目的 MAC 地址、源/目的 IP 地 址以及端口号。包结构视图用于显示用户所选数据包的详细信息。查看视图用于查看各种数 据包的统计信息。主机视图用于显示 ARP 请求主机的 IP 和 MAC 地址。十六进制包视图用 于显示数据包的十六进制数据。除主视图外,其他的视图都可以由用户决定是否显示。软件 主界面如图 4 所示。 图 4 软件主界面 Fig. 4 The software main interface - 3 -
中国科技论文在线 3.2 主要功能模块实现 3.2.1 数据包捕获模块 http://www.paper.edu.cn 85 90 数据捕获模块的主要功能是进行数据采集,这个是整个系统的基础和数据来源。程序使 用 Winpcap 来捕获网络中原始数据包[4-5]。使用 Winpcap 来捕获数据包的算法一般分为以下 几步:(1)获取并列出当前网络设备列表;(2)由用户选择并打开指定网卡;(3)根据 过滤规则设置过滤器;(4)捕获数据包并进行解析处理。编程流程如图 5 所示。 3.2.2 协议编辑发送模块 该模块的主要功能就是发送编辑好的数据包。主要步骤如下:(1)获取并列出当前网 络设备列表;(2)由用户选择并打开指定网卡;(3)编辑数据包;(4)发送数据包。编 程流程如图 5 所示。 在数据包编辑页面的视图中,已经按照各种协议首部给出了固定的格式,用户只需按照 给定的格式一次填充数据包的各部分内容。用户填写完毕后,可以选择检查数据包填写的正 确性,当然直接发送时系统也会自动调用数据包校验模块对填写的数据包进行校验。 95 Fig. 5 The flow chart of data packet capture and , editing and sending packets 图 5 数据包捕获与编辑发送流程图 100 3.2.3 协议分析模块 协议分析就是将输入的数据包视为具有严格定义格式的数据流,并将输入数据包按照各 层协议报文封装的反向顺序,一层一层解析出来。然后,再根据各层网络协议的定义,对各 层协议的解析结果进行逐次分析。本模块采用的主要分析方法有:模式匹配的协议分析方法、 决策树的协议分析方法和形式化分析方法[6-7],其主要功能就是对捕获的数据包按照数据链 路层(MAC)、网络层(IP、ARP)、传输层(TCP、UDP、ICMP)的层次结构自底向上 进行解析,最后将分析结果显示输出。协议分析过程如图 6 所示。 105 - 4 -
中国科技论文在线 http://www.paper.edu.cn 110 115 图 6 协议分析流程图 Fig. 6 The flow chart of protocol analysis 4 结论 本文所实现的 TCP/IP 网络协议分析软件实现了网卡的自由选择,自定义包过滤功能, 可以同时绑定主机、协议和端口,有针对性地监听某些类型的数据包。软件可以在以太网链 路层获取数据包并进行分析,实现了对 ARP、IP、TCP、UDP 四种协议的支持,并且以协 议树的形式形象的显示数据包所包含的协议层次。软件还可以编辑发送 ARP、IP、TCP、 UDP 四种协议,对捕获数据的十六进制及 ASCII 码显示,实时统计每种数据包的数量及包 的总数量等功能。另外,本系统采用面向对象的设计方法,具有较好的可扩展性,只需要加 入相应的协议解析、编辑模块即可实现其他协议的分析与编辑功能。 120 [参考文献] (References) 125 [1] 谢希仁.计算机网络(第 5 版)[M].北京:电子工业出版社,2006. [2] The WinPcap Team.Winpcap Home[OL].[2013-5-6]http://www.winpcap.org/docs/default.htm [3] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006. [4] 张伟,王韬,潘艳辉,郝震华.基于 WinPcap 的数据包捕获及应用[J].计算机工程与设计,2008,29(7):120-123. [5] 伍 丽 华 , 张 莉 , 曾 致 远 . 基 于 WinPcap 的 网 络 安 全 监 控 系 统 的 设 计 与 实 现 [J]. 计 算 机 技 术 与 发 展,2004,14(12):12-16. [6] 张静.网络协议分析技术的研究与应用[D].长沙:中南大学,2012. [7] 孙悦敏.网络协议分析方法的研究[D].西安:西安电子科技大学,2011. - 5 -
分享到:
收藏