资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据包捕获与分析摘要 本课程设计通过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-4ARP捕获状态窗口图2-5捕获的ARP数据包图2-6ARP报文结构图2-7ARP结构(2)利用Ethereal分析TCP/IP机制TCP是一种面向连接的、可靠的传输层协议,TCP数据传(只有连接建立后才可进行 数据传输)需要通过在客户端和服端建立特定的虚电路连接来完成,该过程通常被称为 “三次握手”,如图2-8,即发送方先发送连接请求,然后接受方进行连接确认,最发送方对接 受方再次进确认。下面就以Ethereal捕获的建TCP连接过程的三个数据包为例对TCP/IP 协议进行分析。图2-8三次握手示意图为了能够捕获到“三次握手”过程中的数据包,首先让Ethereal 一直保持捕获状态(图 2-9),因为是通过TCP来建立的,可以将Ethereal的过滤器设置为TCP,此时只捕获所 有经过计算机的TCP协议数据包。图2-9TCP捕获状态窗口图2-10 TCP捕获状态窗口在捕获状态窗口中点击停止,将所有捕获到的数抿所显示出图2-11显示的就是所 捕到的前4个数据包,从图中可以看到1号数据包一 3号数据包是连接建立过程中的数 据包,4号数据包是在连接建立完成以后开始传输数据。图2-11捕获到的数据包客户端发送连接请求,从图2-12可以看出,该数据包封装了三个头信息:以太网 (Eth-ernet)帧、IP数据报(IP数据报首部格式如图2-12)和TCP报文段(TCP报文段固 定首部格式如图2-13)。在物理链路层,数据以帧的方式进行传输。以太网帧头信息中,描 述了该数据包的接收方MAC(MAC的结构如图2-14)地址为00:03:0f:00:0c:4b发起连 接请求的源主机MAC为00:03:0d:a4:0f:72,在帧中封装的协议类型type值为0x0800,即IP 数据报。在网络层,加工的主要数据对象是IP数据报。IP协议是TCPIP协议族中的核心 协议之一,所有的TCP、UDP、ICMP数据都以IP数据报格式传输。从以上请求数据包 的IP首部可以看出,此IP数据报版本号(version)为4(即这个数据报为IPv4),首部(head length)为 20bytes,服务类型(services field)为 0x00,数据报总长(total length,即 IP 首部+数据 载荷)为48,标识(identification)为0x96b53,标志(flags)为0x04表示报文不分段,段偏移 (fragmen offset)为0,生存时间(time to live)为128,数据报中上层协议类型protocol值为 0x06 (即TCP报文段),头部校验和0x1206表示正确,请求主机的IP地址为10.10.23.226, 目的主机的IP地址为。在运输层,主要数据对象是TCP报文。在以上的TCP报文段中, 描述了请求方源端口号(source port)为1615;目的端口号(destination port)为80,其中0是 HTTP协议的保留端口号;序列号SEQ是本次连接的初始序号,因此在连接请求时相对初 始值是0,其实际值是24 68 15 al;确认号是00 00 00 70;头部长度(header length)为28bytes; 标志位(flags)为0x0002,指示ACK标志为0表明确认号被忽略,SYN=1表示正在进行连 接请求,通过 SYN 和 ACK 也可以用来区分 Connection Request 和 Connection Accepted, 在连接请求中,SYN=1、ACK=0,连接响应时,SYN=1、ACK=1;PSH为0;窗口字段(window size)指示发送方想要接收的最大字节数为65535;校验和(checksum)为0xf6a表明正确;最 后是8bytes的选项字段3。比特 04816192431图2-12 IP数据报首部格式比特 08162431图2-13 TCP报文段固定首部格式字节 66246-1054图2-14以太网V2 MAC帧格式图2-15发送方发出的连接请求数据包对此数据包的具体分析过程如图2-12,在此我们仅涉及连接的过程中一些重要地方 的变化:数据包由服务端发至客户端.226。在响应TCP报文段中,源端口和目的端
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号