数据包捕获与解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据包捕获与分析
摘要本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。
关键词协议分析;Ethereal;数据包;Visual C++
1引言
本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。Ethereal是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。
课程设计的内容
(1)掌握数据包捕获和数据包分析的相关知识;
(2)掌握Ethreal软件的安装、启动,并熟悉用它进行局域网数据捕获和分析的功能;
(3)设计一个简单的数据包捕获与分析软件。
课程设计的要求
(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
课程设计平台
Windows XP;Ethereal;Visual C++
2使用Ethereal对数据包进行捕获与分析
软件Ethereal 简介
Ethereal (Ethereal:A Network Packet Sniffing Tool)是当前较为流行的一种计算机
网络调试和嗅探。Ethereal 基本类似于,但Ethereal 还具有设计完美的和众多分类信息及过滤选项。用户通过Ethereal,同时将插入混合模式,可以查看到网络中发送的所有通信流量。Ethereal 应用于故障修复、分析、软件和协议开发以及教育领域。它具有用户对协议分析器所期望的所有标准特征,并具有其它同类产品所不具备的有关特征。Ethereal 主要具有以下特征:
在实时时间内,从网络连接处捕获数据,或者从被捕获文件处读取数据;Ethereal 可以读取从tcpdump(libpcap)、网络通用嗅探器(被压缩和未被压缩)、SnifferTM 专业版、NetXrayTM、Sun snoop 和atmsnoop、Shomiti/Finisar 测试员、的iptrace、的网络监控器、的LANalyzer、RADCOM 的WAN/LAN 分析器、ISDN4BSD 项目的HP-UX nettl 和i4btrace、Cisco 安全IDS iplog 和pppd 日志(pppdump 格式)、WildPacket 的EtherPeek/TokenPeek/AiroPeek 或者可视网络的可视UpTime 处捕获的文件。此外Ethereal 也能从Lucent/Ascend WAN 路由器和Toshiba ISDN 路由器中读取跟踪报告,还能从的TCPIP 读取输出文本和DBS Etherwatch。从、、、、、上的和回路接口(至少是某些系统,不是所有系统都支持这些类型)上读取实时数据。通过或模式tethereal 程序,可以访问被捕获的网络数据。通过editcap 程序的命令行交换机,有计划地编辑或修改被捕获文件。当前602协议可被分割。输出文件可以被保存或打印为纯文本或PostScript格式。通过显示过滤器精确显示数据。显示过滤器也可以选择性地用于高亮区和颜色包摘要信息。所有或部分被捕获的网络跟踪报告都会保存到磁盘中[1]。
利用Ethereal捕获数据包
安装完Ethereal后,单击Capture下的Option菜单,打开捕获选项对话框,设置好捕捉接口(interface)和过滤器(capture filter),设置混杂模式(promiscuous mode)选项(此选项使得网卡并不检验数据帧的目的地址,用以截获网上的任何帧),其他选项可采用默认设置如图2-1,再单击Start按钮即可实时截获数据包。用Ethereal的捕获窗口如图2-2,捕获到的实时网络数据包的部分截图见图2-3。所截获的数据包分别在包列表(PackList)、包细节(Packet Details)和包字节(PackeBytes)三栏窗口中显示。其中上栏的包列表窗口按截获的时间顺序显示出数据包的基本信息:编号(代表收到数据包的次序)、时间、源地址、目的地址协议名称以及关于此数据包的摘要信息;中间栏的包细节窗口以树形显示当前数据包在各协议层的封装细节,包括首部和数据;下栏的包字节
窗口则以十六进制和ASCII码显示被截获数据包的详细内容左边一栏显示偏移量,中间一栏显示十六进制数值,右边一栏显示解码后相对应的字符(控制字符示为1个点)。
图2-1Ethereal的设置
图2-2捕获状态窗口
图2-3捕获的数据包
利用Ethereal对捕获数据包进行分析
Ethereal是当前较为流行的一种计算机网络调试和数据包嗅探软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。
(1)ARP协议分析
ARP,全称Address Resolution Protocol,地址解析协1它工作在数据链路层,在本层和硬件接口联系,同时对上压供服务。TP数据包常通过以太网发送,以太网设备并不识别32IP地址,它们是以48位以太网地址传输以太网数据包。必须把IP目的地址转换成以太网目的地址。因此,在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢它就是通过地址解析协议获得的。图2-4就是对ARP捕获的状态窗口。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。网络当中经常会使用到ARP协议,所以可以使用Ethereal抓取网络中的ARP数据包,如图2-5,从图2-5中看到,已经捕获到了一些ARP的数据包,每个数据包占一行,比如第1个ARP数据包,从它的info信息里面可以看到对于这个数据包的简要的说明:Who has .140 Tell .250。这个info表明ARP协议的主要功能:通过IP地址找对方的MAC地址。针对ARP协议还可以具体分析它的结构,以往的教学中学生只能从课本上看到ARP协议的图,如图6,学生容易产生疑问,难道真的是这样吗在我们可以通过分析抓取到的数据包来切切实实地看一下它的结构到底是什.么样的,对照图2-6看一下到底是不是一致。随便找一个ARP的数据包,将其展开可以看到图2-7的结构,对比图2-7中框部分与图2-6中框部分,可以发现两者是一致的,通过对比学生就会对ARP的结构有更深刻的认识[2]。
图2-4ARP捕获状态窗口
图2-5捕获的ARP数据包
图2-6ARP报文结构