网络数据包的分析与实现.doc

上传人:laozhun 文档编号:2402082 上传时间:2023-02-17 格式:DOC 页数:30 大小:624.50KB
返回 下载 相关 举报
网络数据包的分析与实现.doc_第1页
第1页 / 共30页
网络数据包的分析与实现.doc_第2页
第2页 / 共30页
网络数据包的分析与实现.doc_第3页
第3页 / 共30页
网络数据包的分析与实现.doc_第4页
第4页 / 共30页
网络数据包的分析与实现.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《网络数据包的分析与实现.doc》由会员分享,可在线阅读,更多相关《网络数据包的分析与实现.doc(30页珍藏版)》请在三一办公上搜索。

1、 独创性声明本人声明所呈交的毕业论文是本人在导师指导下进行的理论学习、实习实践以及研究所取得的成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含获得 青海民族大学 或其他教育机构的学位或证书而使用过的材料。与我一起探讨、工作的同学对本论文所做的任何贡献均已在论文中作了明确的说明并表示了谢意。毕业论文作者签名: 签字日期: 年 月 日毕业论文版权使用授权书本毕业论文作者完全了解 青海民族大学 有关保留、使用毕业论文的规定。特授权青海民族大学可以将毕业论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同

2、意学校向国家有关部门或机构送交论文的复印件和磁盘。论文作者签名: 签字日期: 年 月 日 指导教师签名: 签字日期: 年 月 日 摘 要随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详

3、细讲述。通过运用Sniffer开发包实现网络数据包的捕获,利用TCP/IP 协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。另外,还能实现一些功能,如对指定的IP地址进行数据包的捕获,对捕获结果进行显示等。关键词:Sniffer;数据捕获;信息分析;局域网AbstractAs development of the network and technology, the society comes into a age of information explosion. Due to the network, the world has become sma

4、ller, and people use all kinds of technologies and tools to break through the limitation of communication. The network security has been widely concerned followed by the development and universal of the network technology. Therefore, it is great significance that an effective real-time interception

5、network information system is studied and developed. Base on this situation, this thesis in-depth studies to capture the network data and so on. Besides, it introduces relative technology and the needs information capture. The realization of the data capture module, data packet decoded module and da

6、tabase information module is displayed for detail in the systems design. The network data packet is captured through Sniffer, some functions has been realized, such as network data packet capture, data packets of information analysis by using TCP / IP protocol encapsulation theory and bottom-up, and

7、 will analyze the information stored in the database. Simultaneously, this software would also increases some functions, such as data packet capture by the IP address, make the results and statistics,display the results of data packet capture and so on.Key words: Sniffer; data capture; information a

8、nalysis ; LAN目 录1引言111课题意义和背景112课题研究技术和方法213 sniffer简介32研究的目的及内容521研究的目的及内容522课题研究的相关技术63需求931功能需求932性能需求94 网络嗅探器原理114.1系统功能概述1142功能模块设计14421数据包捕获模块设计16422数据包解析存储模块17423数据包信息分析模块设计17424数据包信息显示模块设计185网络嗅探器的设计195.1测试环境195.2测试结果216、总结24参考文献:25致谢261引言随着计算机技术的发展,网络已经日益成为生活中不可或缺的通讯工具,但是随之而来的非法入侵也是一直威胁着计算机

9、网络安全,由于在局域网采用广播的方式,因此,在某个广播域中可以监听到所有数据包,而黑客也能通过对这些数据包的分析来获取局域网中的重要信息。另一方面,我们对黑客入侵活动和其他网络犯罪调查、取证也是通过网络监听技术来获取相关信息。所以,掌握以太网的监听技术原理、实现方法和防范措施显得尤为重要。11课题意义和背景本设计利用Sniffer来捕获数据包、分析数据包,实现网络嗅探功能。Sniffer是Windows环境下的链接层网络访问的工业标准工具,目前被广泛使用。Sniffer可以使用应用程序绕过操作系统的协议栈去捕获和传输网络数据包。通过对Sniffer的学习,可以深入的理解与掌握网络数据的组成,传

10、输与分析。 嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据, 嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设

11、计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。12课题研究技术和方法网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。本毕业设计主要通过使用Sniffer开发包,在Java环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型、ARP等分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。网络嗅探器并不会告诉你问题究竟是什么,而只会告诉你究竟发生了什么。对网络嗅探器的研究我加深了对通信协议的理解,网络数据结构的理解。对网络嗅探器的深入研究更重要的是可

12、以让我们的互联网世界更安全、信息更健康。计算机的嗅探器比起电话窃听器,有他独特的优势: 很多的计算机网络采用的是“共享媒体。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探” 。 尽管如此,这种“共享” 的技术发展的很快,慢慢转向“交换” 技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发数据。13 sniffer简介当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。

13、但实际上Sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆

14、栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备BP filter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能嗅探到root的密码,因此不能运行Sniffer。Sniffer分为软件和硬件两种,软件的Sniffer有 Sniffer Pro、Network Monitor、Packet Bone等,其优点是易于安装部署,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一

15、般都是商业性的,价格也比较昂贵,但会具备支持各类扩展的链路捕获能力以及高性能的数据实时捕获分析的功能。基于以太网络嗅探的Sniffer只能抓取一个物理网段内的包,就是说,监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。Sniffer与其他网络协议分析仪最大的差别在于它的人工智能专家系统。简单地说,Sniffer能自动实时监视网络,捕捉数据,识别网络配置,自动发现网络故障并进行告警,它能指出: 网络故障发生的位置,以及出现在OSI第几层。 网络故障的性质,产生故障的可能的原因以及为解决故障建议采取

16、的行动。 Sniffer 还提供了专家配制功能,用户可以自已设定专家系统判断故障发生的触发条件。Sniffer可以在全部七层OSI协议上进行解码,目前没有任何一个系统可以做到对协议有如此透彻的分析;它采用分层方式,从最低层开始,一直到第七层,甚至对Oracle数据库、SYBASE数据库都可以进行协议分析;每一层用不同的颜色加以区别。Sniffer对每一层都提供了Summary、Detail、Hex等几种解码窗口。在同一时间,最多可以打开六个观察窗口。Sniffer还可以进行强制解码功能,如果网络上运行的是非标准协议,可以使用一个现有标准协议样板去尝试解释捕获的数据。 Sniffer提供了在线实

17、时解码分析和在线捕捉,将捕捉的数据存盘后进行解码分析二种功能。2研究的目的及内容21研究的目的及内容综合所学知识,使知识系统化与实用化。研究网络抓包功能,可以对网络中大量数据包抓取,从而方便使用者对网络中用户的一些信息进行分析,掌握这些原理,我们可以运用网络抓包工具来进行网络故障检测、网络状况监听,加强信息的安全防护,预防黑客的攻击等。本系统需要实现的共更能模块有数据包捕获模块、数据包信息显示模块、数据包解析及存储模块、数据包分析模块。当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一(物理)网段上的其他主机时,他就会在这台主机上安装嗅探软件,对以太网设备上传

18、送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个log文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进入这台主机。如果嗅探器运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。嗅探器属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用嗅探这种攻击手段,以便得到更多的信息。嗅探器除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等

19、。嗅探器几乎能得到任何在以太网上传送的数据包。因此,设计本系统的就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。网络的安全性和高可用性是建立在有效的网络管理基础之上的,网络管理包括配置管理、故障管理、性能管理、安全管理和计费管理五大部分。对于企业计算机网络来说,网络故障管理主要侧重于实时的监控,而网络性能管理更看中历史分析。22课题研究的

20、相关技术互联网技术互联网技术不仅仅是物理上的连接,还包括逻辑上的连接,互联网使多个网络形成一个有机整体,实现跨网络的互操作。网络互联的根本问题是解决网络技术和应用所带来的网络异构性问题。网络互连技术必须保证以下3点:使不同硬件结构计算机能相互通信适用于多种不同的操作系统能使多种分组交换网络硬件网络的功能主要由各层的协议来完成,TCP/IP协议时当前因特网协议族的总称,TCP/IP协议族庞大,成为重要的协议IP地址IP地址是互联网中重要部分,它能将不同的物理网络地址统一到具有全球的IP地址。目前IP地址还是用IPv4版本,分为5类,各类都有自己的范围。但是严格按照分类来分配IP地址会浪费很大的地

21、址空间,因此用到了无类地址划分,用子网掩码来区别网络号和主机号。因特网的IP协议提供了整个因特网通用的地址格式,并在统一管理下进行IP地址分配,确保一个地址对应一台主机或路由器,这样对上层而言物理地址的差异性就被屏蔽了,因此当一台主机从一个网络移动到另一个网络的时候需要改变这台主机的IP地址。以下是IP数据报格式示意图:图2.1上图个字段含义如下: 版本:当前IP协议的版本号,本论文采用的版本号为4;首部长度:以32bit为单位的包头长度;服务类型:规定对本数据报的处理方式,比如优先权等;总长:以Byte为单位的整个IP数据报长度;标识:信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及

22、其重组;标志和片偏移:同样用于控制分片及其重组;生存时间:设置本数据报的最大生存时间,以秒为单位;协议:表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP等;头标校验和:用于保证头标数据的完整性;源IP地址和目的IP地址:分别指发送本数据报的主机IP地址和接受本数据报的主机的IP地址;选项:用于控制和测试,是IP数据报中可选的部分,包含“源路径”、“路径记录”、“时间戳”等几种类型。以下是TCP/IP 网络体系结构与上述各协议之间的关系模型。 图2.2应用层的大多数应用程序通过TCP、UDP来访问网络层,或者通过ICMP来使用网络层,如Ping、Trace Route等也可以使用

23、IP直接访问网络层。传输层中的TCP、UDP为应用层提供可靠的或不可靠网络传输的网络传输服务。网络层的ICMP是IP协议的附属协议,IP协议用它与路由器之间交换错误报文或其它控制信息。网络接口层的ARP、RARP是以太网和令牌环使用的特殊协议,用来转换IP层和网络接口层使用的地址。3。需求31功能需求本软件的设计就是为了达到基本的维护网络安全的作用,对网络上传输的数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进

24、行可靠的网络安全管理(1)对网络中的数据包能及时抓捕。(2)对抓捕到的数据包进行分析,能辨别出包的类型、大小、包的源地址、协议类型等。(3)向用户显示分析的结果,并对数据包进行简单解释。(4)用户可操作性,用户能根据自己的设置进行控制进行抓包、何时抓包、抓何种类型的包、何时停止等。(5)可对比性,可以把抓到的数据包和数据库内的特征进行对比,以便能分析断数据包。有于水平有限,不可能实现像Sniffer或者影音神探那样复杂的设置和分析,所以我们只对抓取到的本机在网络中的通信数据(如协议类型,源、目的地址和端口、数据包的大小等)加以分析,实现一个简单的网络嗅探器。一个窗体显示主页面,另一个页面显示详

25、细的包信息。而像Sniffer的复杂功能也不能全部实现,而是实现了部分功能和简单分析,本系统未完善之处还有待解决。32性能需求由于本设计是安装在个人电脑上,所以要求用户界面简洁,友好,方便使用和操作。网络上数据包的捕获是入侵检测系统的基础,关键是要保证高速的抓包和低的丢包率。一方面,网络检测部分的数据源是网络上的数据包,需要经过捕获后方可以提交给分析系统;另一方面,捕获数据包效率的高低直接影响着网络探测部分的性能的好坏,如果发生丢包现象,则有可能丢掉的包就是攻击包。在保证高速的抓包和低的丢包率的同时,要还要求程序能有较强的稳定性。一款好的信息过滤软件,都是将在一个长时间工作的环境中运行。如果不

26、能保证较强的稳定性的话,那么软件对信息过滤的效率和功能有很大的局限性,对数据信息过滤就是失败的。那么这款软件就不会具备同其他同类似软件的竞争力,更不会有市场,那么它就注定成为一款失败的软件。假如,当用户使用这款软件时,软件占用了太多的系统资源而导致用户对电脑的其他操作都很难进行,那么,没有人会用这款软件。所以,该软件还应该具备一种特点就是:低的系统资源占用率。4网络嗅探器原理网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。本毕业设计主要通过使用sniffer开发包,在java环境下编写出了一款简单的软件对数

27、据包信息按TCP协议类型、UDP协议类型、icmp、igmp、arp进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。4.1系统功能概述先描述一下信息在网络上的传输、信息的特征类型和任何被偷听的。网络的一个特点就是数据总是在流动中,从一处到另外一处,而互联网是由错综复杂的各种网络交汇而成的,也就是说:当你的数据从网络的一台电脑到另一台电脑的时候,通常会经过大量不同的网络设备,(我们用tracert命令就可以看到这种路径是如何进行的)。如果传输过程中,有人看到了传输中的数据,那么问题就出现了这就好比给人发了一封邮件,在半路上被人拆开偷看一样,这样说或许还不是很可怕,那要是传送

28、的数据是企业的机密文件那,或是用户的信用卡帐号和密码呢? 通过前面的叙述可以知道,这款软件具有的功能,那就是:能够分别捕获局域网中的TCP协议类型数据,UDP协议类型数据和从某一特定的IP地址发送出来的TCP协议类型数据和UDP协议数据类型。并且,将这些捕获出来的数据包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。嗅探侦听主要有两种途径,一种是将侦听工具软件放到网络连接的设备或者放到可以控制网络连接设备的电脑上,(比如网关服务器,路由器)当然要实现这样的效果可能也需要通过其他黑客技术来实现:比如通过木马方式将嗅探器发给某个网络管理员,使其不自觉的为攻击者进行了安装。另外一种是针

29、对不安全的局域网(采用交换hub实现),放到个人电脑上就可以实现对整个局域网的侦听,这里的原理是这样的:共享hub获得一个子网内需要接收的数据时,并不是直接发送到指定主机,而是通过广播方式发送到每个电脑,对于处于接受者地位的电脑就会处理该数据,而其他非接受者的电脑就会过滤这些数据,这些操作与电脑操作者无关,是系统自动完成的,但是电脑操作者如果有意的话,他是可以将那些原本不属于他的数据打开这就是安全隐患。以太网的数据传输是基于“共享”原理的:所有的同一本地网范围内的计算机共同接收到相同的数据包。这意味着计算机直接的通讯都是透明可见的。正是因为这样的原因,以太网卡都构造了硬件的“过滤器”这个过滤器

30、将忽略掉一切和自己无关的网络信息。事实上是忽略掉了与自身MAC地址不符合的信息。 嗅探程序正是利用了这个特点,它主动的关闭了这个嗅探器,也就是前面提到的设置网卡“混杂模式”。因此,嗅探程序就能够接收到整个以太网内的网络数据了信息了。由于大量的计算机在以太网内“共享“数据流,所以必须有一个统一的办法用来区分传递给不同计算机的数据流。这种问题不会发生在拨号用户身上,因为计算机会假定一切数据都由用户动给modem然后通过电话线传送出去。可是,当发送数据到以太网上的时候,你必须弄清楚,哪台计算机是你发送数据的对象。的确,现在有大量的双向通讯程序出现了,看上去,他们好像只会在两台机器内交换信息,可以太网

31、的信息是共享的,其他用户,其实一样接收到了你发送的数据,只不过是被过滤器给忽略掉了。 MAC地址是由一组6个16进制数组成的,它存在于每一块以太网卡中。如果对网络结构不太熟悉,建议参考一下OSI 7-Layer Model,这将有助于理解后面的东西以太网所使用的协议主要是TCP/IP,并且TCP/IP也用于其他的网络模型(比如拨号用户,他们并不是处于一个以太网环境中)。举例一下,很多的小团体计算机用户都为实现文件和打印共享,安装了“NetBEUI” 因为它不是基于TCP/IP协议的,所以来自于网络的黑客一样无法得知他们的设备情况。基于Raw协议,传输和接收都在以太网里起着支配作用。你不能直接发

32、送一个Raw数据给以太网,用户必须先做一些事情,让以太网能够理解用户的意思。这有点类似于邮寄信件的方法,不可能直接把一封信投递出去,而是必须先装信封,写地址,贴邮票,网络上的传输也是这样的。 下面给出一个简单的例子,助于理解系统的原理:假如有UserA和UserB,各自的IP如下UserA IP 地址: 10.0.0.23 UserB IP 地址: 192.168.100.54 现在知道UserA要于UserB进行计算机通讯,UserA需要为10.0.0.23到192.168.100.54的通讯建立一个IP包 。这个IP包在网络上传输,它必须能够穿透路由器。因此,UserA必须首先提交这个包给

33、路由器。由每个路由器考查目地IP地址然后决定传送路径。UserA 所知道的只是本地与路由的连接,和UserB的IP地址。UserA并不清楚网络的结构情况和路由走向。UserA必须告诉路由预备发送的数据包的情况,以太网数据传输结构大概是这样的: 图4.1理解一下这个结构,UserA的计算机建立了一个包假设它由100个字节的长度(假设20 个字节是IP信息,20个字节是TCP信息,还有60个字节为传送的数据)。现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,他指示出了TCP/IP栈后的数据结构。同时,也附加了4个字节用于做CRC校验,CRC校验

34、用来检查传输数据的正确性。现在发送数据到网络。所有在网内的计算机通过适配器都能够发现这个数据片,其中也包括路由适配器,嗅探器和其他一些机器。通常,适配器都具有一块芯片用来做结构比较的,检查结构中的目地MAC地址和自己的MAC地址,如果不相同,则适配器会丢弃这个结构。这个操作会由硬件来完成,所以,对于计算机内的程序来说,整个过程时毫无察觉的。当路由器的以太网适配器发现这个结构后,它会读取网络信息,并且去掉前14个字节,跟踪4个字节。查找0x8000标记,然后对这个结构进行处理(它将根据网络状况推测出下一个最快路由节点,从而最快传送数据到预定的目标地址)。 设想,只有路由机器能够检查这个结构,并且

35、所有其他的机器都忽略这个结构,则嗅探器无论如何也无法检测到这个结构的。 以太网卡的MAC地址是一组48比特的数字,这48比特分为两个部分组成,前面的24比特用于表示以太网卡的寄主,后面的24比特是一组序列号,是由寄主进行支派的。这样可以担保没有任何两块网卡的MAC地址是相同的(当然可以通过特殊的方法实现)。如果出现相同的地址,将发生问题,所有这一点是非常重要的。这24比特被称之为OUI(Organizationally Unique Identifier)。可是,OUI的真实长度只有22比特,还有两个比特用于其他:一个比特用来校验是否是广播或者多播地址,另一个比特用来分配本地执行地址(一些网络

36、允许管理员针对具体情况再分配MAC地址)。 举个例子,你的MAC地址在网络中表示为 03 00 00 00 00 01 。第一个字节所包含的值二进制表示方法为00000011。可以看到,最后两个比特都被置为真值。他指定了一个多播模式,向所有的计算机进行广播,使用了“NetBEUI”协议(一般的,在Windows计算机的网络中,文件共享传输等是不使用TCP/IP协议的)。42功能模块设计通过前面的叙述可以知道,这款软件具有的功能,那就是:能够分别捕获局域网中的数据包。并且,将这些捕获出来的数据包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。本系统流程图如下图: 图4-2 本系统包

37、括四个基本模块,分别是数据包捕获模块,数据分析模块,数据包存储模块和数据包显示模块。其中数据包捕获模块的功能是:利用Sniffer控件,通过网卡设备从网络中捕获数据包;数据分析模块的功能是:主要实现数据的解析,从网络适配器中捕获到的数据的为原始数据(raw data),这些原始数据为二进制格式,必须转化为能比较好明白的格式,这就要求将这些原始数据能按照网络数据传输的具体格式来保存,主要为了能较好的读懂相关的信息,以便使用者分析;数存储模块的功能是:经过前两个模块处理后的数据,现在已经转化成了对我们有用的信息了,而这些信息不可能一直让他存放在内存中,那么就需要在数据库中建立相应的表,把这些信息存

38、贮在这些数据库表的相应列名中,以使用者处理、使用。数据包显示模块的功能是:能让使用者看到相关的数据包信息,显示当前程序的判断结果,让用户能根据显示的信息和特征信息对比,从而能判断当前网络的性能。 421数据包捕获模块设计 数据包的抓捕模块主要用Sniffer开发包实现,模块的设计思想遵循Sniffer捕获数据包的流程,流程分三步:查找设备,打开设备和捕获数据的函数。查找设备:查找网卡打开设备:打开网卡捕获数据的函数:编写程序时所用的函数。数据包捕获原理:网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息其抓包流

39、程图如下 图4-2-1422数据包解析存储模块相关数据信息捕获分析完毕后,接下来就是对数据的保存。当存储模块从数据包抓捕模块接到数据包时,先会和数据库的特征信息进行对比,然后可以再次抓包和已对比的数据包进行存储,等待其他模块调用。数据库中存储了数据包的特征信息,通过对比和存储,使用户知道接收到什么包以及接受到的数据包数量。数据包解析存储模块流程图如下:图4-2-2423数据包信息分析模块设计数据分析模块实现时,本系统提取的数据包中主要的一些信息,如数据包中的IP地址,端口信息等。网络中的数据包都有各自的大小、生存时间、端口信息等特征,通过对捕获的数据包进行解封可以知道各自属于什么包、包的源地址

40、等。数据包信息分析模块流程图如下: 图4-2-3424数据包信息显示模块设计数据包显示模块的功能是:主要实现数据的反馈信息,将这些数据的分析结果转为能让使用者比较好理解的格式,这就要求将这些原始数据能按照网络数据传输的具体格式来保存,主要为了能较好的读懂相关的信息,以便使用者分析 图4-2-45网络嗅探器的设计 基于Windowns Form编程实现一个简单嗅探器的设计和实现。5.1测试环境在编写本软件前,首先确定了使用Java语言。本软件必须首先安装Java编程环境中设置好相关配置。由于这是一个抓包程序,因此需要两台以上的PC机和一些网络通讯设备,具体的实验环境:个人电脑2台或2台以上,交换

41、机一个,网线若干,电脑通过交换机组成一个局域网环境。有于水平有限,不可能实现像Sniffer或者影音神探那样复杂的设置和分析,所以我们只对抓取到的本机在网络中的通信数据(如协议类型,源、目的地址和端口、数据包的大小等)加以分析,实现一个简单的网络嗅探器。一个窗体显示主页面,另一个页面显示详细的包信息。详细信息页面,我们显示一下信息:开始时间:嗅探器抓取数据包的时间; 源端口:源目的IP地址+端口号;目的端口:目的IP地址+端口号;协议类型:只分析一下类型,GPG,ICMP,IDP,IGMP,IP,ND,PUP,TCP,UDP,其他的不再分析;版本信息:协议的版本;生存时间:;报头大小:报文报首

42、部大小;报文总长:整个数据报的大小;优先级别:提供七个级别,分别是Routine = 0,Priority = 1,Immediate = 2,Flash = 3,FlashOverride = 4,CRITICECP = 5,InternetworkControl = 6,NetworkControl = 7;延迟:NormalDelay = 0、 LowDelay = 1;吞吐量:NormalThroughput = 0,HighThroughput = 1; 可靠性:NormalReliability = 0,HighReliability = 1;项目实施(1)Java第三方WinFo

43、rm开发工具中新建项目Windows应用程序MySinffer。 (2)添加一个窗体文件和一个类文件,分别命名Form1.cs、AssemblyInfo.cs.cs实现详细信息页面。(3)编码,详细的代码如源程序。当使用系统类提供的接口取到数据包的bite流时,对流的初始化处理如下:public Packet(byte raw, DateTime time) if (raw = null)throw new ArgumentNullException();if (raw.Length 4; m_HeaderLength = (raw0 & 0x0F) * 4;if (raw0 & 0x0F)

44、5);m_Delay = (Delay)(raw1 & 0x10) 4);m_Throughput = (Throughput)(raw1 & 0x8) 3);m_Reliability = (Reliability)(raw1 & 0x4) 2);m_TotalLength = raw2 * 256 + raw3;if (m_TotalLength != raw.Length)throw new ArgumentException(); / 无效的数据包大小m_Identification = raw4 * 256 + raw5;m_TimeToLive = raw8;if (Enum.Is

45、Defined(typeof(Protocol), (int)raw9)m_Protocol = (Protocol)raw9;elsem_Protocol = Protocol.Other;m_Checksum = new byte2;m_Checksum0 = raw11;m_Checksum1 = raw10;m_SourceAddress = new IPAddress(BitConverter.ToUInt32(raw, 12);m_DestinationAddress = new IPAddress(BitConverter.ToUInt32(raw, 16);if (m_Prot

46、ocol = Protocol.Tcp | m_Protocol = Protocol.Udp) m_SourcePort = rawm_HeaderLength * 256 + rawm_HeaderLength + 1;m_DestinationPort = rawm_HeaderLength + 2 * 256 + rawm_HeaderLength + 3; else m_SourcePort = -1;m_DestinationPort = -1;5.2测试结果嗅探器运行后的界面如下: 图5-1点击绿色按钮,开始抓取以太网中与本机通信的IP数据包;点击红色按钮,停止监听。抓取到的信息如下图: 图5-1-1从图中可以看出,抓到的有UDP数据报,ICMP数据报,TCP数据报。鼠标双击列表行,分别得到详细的报文信息。报文信息如下:图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号