网络嗅探的网络检测分析系统毕业设计说明书

2015年 4 月 11 日 目录
一、前言 4
二、基于网络嗅探的网络检测分析系统基本原理 4
(一)网络嗅探的网络检测分析系统的概述 4
1、网络嗅探的原理 4
三 IPv4和IPv6套接字编程接口差异 5
(一)地址结构的差异 5
(二) 地址转换函数的差异 6
四 系统的总体设计 6
(一)系统模块分析 6
(二)系统结构图 7
(三)数据结构及成员变量 8
1、数据结构 8
2、成员变量 10
五、系统的程序实现和测试环境的过程描述 11
(一)数据包捕获程序设计 11
(二) IPv4数据包分析和IPv6数据包分析 16
(三)数据包过滤 17
(四)信息显示 18
(五)程序调试 19
(六)程序测试 20
六、总结 22
致谢 23
参考文献 24
本课题主要针对网络管理中IP数据包抓取、分析、报表需求,使用VC程序设计语言,基于网络嗅探原理,设计网络状况监控和分析软件,达到帮助网络管理员实时掌握网络状况,动态管理网络网络的目的。软件可以对网络中的IP 数据包IP地址、TCP端口、包长度、抓到的时间、包的内容进行分析并完成报表。
网络抓包、数据分析、socket编程
一、前言
在当前网络应用已经成为我们社会活动的一个重要环节,因此保障网络安全稳定的运维成为网络技术的一个重要课题,而对网络进行适当的监控能够为工程师保障网络安全提供必要的数据信息。本课题就是针对这样的需求,应用 *好棒文|www.hbsrm.com +Q: ¥3^5`1^9`1^6^0`7^2$ 
网络嗅探技术对网络状况进行必要监控、收集和分析。
在本课题中,本人主要使用VC++程序设计语言,结合网络嗅探技术设计和编写了网络嗅探的网络检测分析系统,使用该系统可以对网络通信进行监控和信息收集,帮助管理员分析网络状况,使管理员可以根据情况制定防护策略,保障网络安全运维。
二、基于网络嗅探的网络检测分析系统基本原理
(一)网络嗅探的网络检测分析系统的概述
网络嗅探也被称为网络侦听,是利用网络中的节点,通过软件和相关设备配置,达到抓取网络数据包的目的,是网络攻击者和网络管理者进行网络信息收集的主要手段之一。收集的数据可以对网络攻击者和网络管理者提供较大的帮助。
1、网络嗅探的原理
网络嗅探利用以太网数据传输以广播方式进行传输的特性,通过对节点上的网络接口设备进行设置,抓取网络中传输的数据。网络接口设备即为主机网卡。主机网卡有四种工作模式:
广播模式:它的物理地址(MAC)地址是OX FF FF FF 的帧为广播帧,工作在广播模式的网卡接收广播帧。
多播传送:多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
直接模式:工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。
混杂模式:工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。
在实际操作中,依据网络拓扑不同,网络嗅探操作也有差异。主要为:
a.基于总线式拓扑的网络
基于总线式拓扑的网络,由于其所有数据在一条总线上进行传输,我们只需要将嗅探主机网卡设置为混杂模式即可进行网络嗅探。
b.基于星型拓扑的网络
基于星型拓扑的网络,需要进行网络嗅探操作会有些繁琐,首先主机网卡必须处于混杂模式,其次由于星型网络都有中心交换设备,如要进行网络嗅探则需要在交换设备进行配置(如端口镜像等),使得被嗅探主机的数据同时转发给嗅探主机所在端口,这样嗅探主机才能进行数据抓包。
C.基于搭线方式的网络
基于搭线方式的网络,由于其所有的数据在一条总线上进行传输,然而,我们想增加网络主机的数量,从而我们从一条网线上分出两个网线,我们一般通过中继器来分。将总线的一端端口分成多端口出。使得被嗅探主机的数据一条总线转发给嗅探主机所在端口这样嗅探主机才能进行数据抓包。
我们目前检测的网络都是星型网络,在交换机没有任何配置的方式下进行网络嗅探主要是利用软件在当前的网络子网下发送广播包,通过各端口的反馈响应获得相关信息。在这里我选择的是基于星型拓扑的网络来进行网络嗅探。
在了解了网络嗅探的基本原理后,我们需要了解下程序的实现方式。
设计此类软件主要是进行Sockets接口编程,在IPv4网络和IPv6网络Sockets 接口编程具有一定差异。
三 IPv4和IPv6套接字编程接口差异
(一)地址结构的差异
用一个32位整数表示的IPv4地址,应用程序通过sockaddr_in结构来指定IPV4地址和端口信息sockaddr_in结构的定义如下:

IPv6和IPv4之间的区分是IPv6的地址是一个128位的,其位数是IPV4的4倍的IPV6地址和端口的信息时使用的sockaddr_in6结构的定义如下:

(二) 地址转换函数的差异
IPv4调用socket函数来创建文字,传递的参数是af_inet。

IPv6成立的话,传入的参数是af_inet6。

IPv4的变换来完成一个十进制整数IP地址和ip32比特网络字节顺序功能的文本表示形式:

IPv6的文本表示形式之间的转换IPv6的IP地址和十六进制位通过以下功能128网络字节顺序[ 1 ]地址:

四 系统的总体设计
(一)系统模块分析
整个系统分为四个部分。
(1)检测线程,负责抓包的线程。
(2)数据包捕获模块,实现捕获所有经过本地网卡的数据包。
(3)包分析模块,信息过滤, TCP连接跟踪。
(4)结果显示模块。
(二)系统结构图

(三)数据结构及成员变量
1、数据结构
TCP报头更为复杂,具有20字节的固定,在头部后面也可以选择小的长度是固定的,如表4.3.1 TCP数据段报头格式结构:
16位
16位

源端口
目的端口
在抓数据包前,首先对原始数据进行设置,代码如下:









版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/1677.html

好棒文