资源描述
Wireshark抓包及分析实验学生姓名: 夏效程 学号: V200748016 任务分配日期:2009-12-16课程名称: 计算机组网技术 WireShark实验报告 : 用Wireshark完成计算机网络协议分析报告开始时间: 2009-12-16 报告截至日期: 2009-12-30一 实验的目的本次实验的目的就是要学会wireshark抓包软件的基本使用方法,wireshark抓包的基本过程,以及对所抓到的数据包进行详细的分析并能很好的李杰一些基本的数据的含义。能达到对网络数据的基本的监控和查询的能力。实验一 802.3协议分析和以太网(一)实验目的1、分析802.3协议2、熟悉以太网帧的格式、了解ARP、ICMP、IP数据包格式实验步骤:1、捕获并分析以太帧 (1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。如下图 (2)启动WireShark,开始分组捕获。 (3)在浏览器的地址栏中输入: 浏览器将显示华科大主页。如下图所示: (4)停止分组捕获。首先,找到你的主机向服务器发送的HTTP GET消息的Segment序号,以及服务器发送到你主机上的HTTP 响应消息的序号。http的segement段序号是47 45 54如下图:由下图可以得到服务器发送到我主机上的http响应消息的序号是:由上图可知为44 : 1、你的主机的48位以太网地址(MAC地址)是多少?我的主机的mac地址是: 2、目标MAC地址是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?不是服务器的MAC地址;该地址是网关的地址。 3、给出Frame头部Type字段(2字节)的十六进制值。十六进制的值是08 00如图所示: 4、在包含“HTTP GET”的以太网帧中,字符“G”的位置(是第几个字节,假设Frame头部第一个字节的顺序为1)?如果frame得头部为顺序1,则“G”的位置为67。如下图所示: 5、以太Frame的源MAC地址是多少?该地址是你主机的MAC地址吗?是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?由上图可以得到:源mac地址为:00:1a:a9:1c:07:19该mac地址既不是我主机的mac地址也不是web服务器的mac地址,他是网关地址。Frame的源地址是 6、以太网帧的目的MAC地址是多少?该地址是你主机的地址吗?上面的00:13:8f:3a:81:f0就是以太帧的mac地址。该地址是我的主机地址。 7、给出Frame头部2-字节Type字段的十六进制值。由上图可以知道08:00就是type的值。 8、在包含“OK”以太网帧中,从该帧的第一个字节算起,”O”是第几个字节?由下图可以知道o的地址是:15 9、写下你主机ARP缓存中的内容。其中每一列的含义是什么?以上的显示写的依次是:interface:就是自己主机的ip地址,下面的就是默认网关的ip地址,后面的四十八位的十六进制的数是默认网关的mac地址。 10、包含ARP请求报文的以太网帧的源地址和目的地址的十六进制值各是多少?由下图可以知道源mac地址是:00:1a:1c:07:19目的mac地址是:FF:FF:FF:FF:FF:FF 11、给出Frame头部Type字段的十六进制值。由上图可以知道:十六进制的值是:08 06 12、从ftp:/ftp.rfc-editor.org/innotes/std/std37.txt处下载ARP规范说明。在http:/www.erg.abdn.ac.uk/users/gorry/course/inet-pages/arp.html处有一个关于ARP的讨论网页。根据操作回答: 形成ARP响应报文的以太网帧中,ARP-payload部分opcode字段的值是多少?由上面的图可以知道opcode的值是00 01 在ARP报文中是否包含发送方的IP地址?包含发送方的ip地址,但是是默认网关的ip地址 13、包含ARP响应(reply)报文的以太网帧中,源地址和目的地址的十六进制值各是多少?以上的de 14 6e fe为源地址的值上面的显示的de 14 6e 27是目的地址的值。实验三 TCP协议分析(一)实验目的及任务1、熟悉TCP协议的基本原理2、利用WireShark对TCP协议进行分析(二)实验环境1、与因特网连接的计算机网络系统;操作系统为Windows;WireShark、IE等软件。2、预备知识要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。顾名思义,一个分组嗅探器捕获(嗅探)计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被捕获报文的各协议头部字段内容。在WireShark介绍部分Figure 1为一个分组嗅探器的结构。Figure 1右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:web浏览器和ftp客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧(Frame)中,并沿着物理介质(如以太网的电缆)传输。Figure 1假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。分组嗅探器的第二个组成部分是分析器。分析器用来显示协议报文所有字段的内容。为此,分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示Figure 1中HTTP协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的IP数据报。分组分析器也要理解IP数据报的格式,并能从IP数据报中提取出TCP报文段。然后,它需要理解TCP报文段,并能够从中提取出HTTP消息。最后,它需要理解HTTP消息。WireShark是一种可以运行在Windows, UNIX, Linux等操作系统上的分组分析器。最初,各窗口中并无数据显示。WireShark的界面主要有五个组成部分:命令菜单(command menus):命令菜单位于窗口的最顶部,是标准的下拉式菜单。最常用菜单命令有两个:File、Capture。File菜单允许你保存捕获的分组数据或打开一个已被保存的捕获分组数据文件或退出WireShark程序。Capture菜单允许你开始捕获分组。 捕获分组列表(listing of captured packets):按行显示已被捕获的分组内容,其中包括:WireShark赋予的分组序号、捕获时间、分组的源地址和目的地址、协议类型、分组中所包含的协议说明信息。单击某一列的列名,可以使分组按指定列进行排序。在该列表中,所显示的协议类型是发送或接收分组的最高层协议的类型。分组头部明细(details of selected packet header):显示捕获分组列表窗口中被选中分组的头部详细信息。包括:与以太网帧有关的信息,与包含在该分组中的IP数据报有关的信息。单击以太网帧或IP数据报所在行左边的向右或向下的箭头可以展开或最小化相关信息。另外,如果利用TCP或UDP承载分组,WireShark也会显示TCP或UDP协议头部信息。最后,分组最高层协议的头部字段也会显示在此窗口中。分组内容窗口(packet content):以ASCII码和十六进制两种格式显示被捕获帧的完整内容。显示筛选规则(display filter specification):在该字段中,可以填写协议的名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。(三)实验步骤1、捕获大量的由本地主机到远程服务器的TCP分组 (1)启动WireShark,开始分组捕获。 (2)启动浏览器,打开 (3)停止分组捕获。2、浏览追踪信息 (1)在显示筛选规则编辑框中输入“tcp”,可以看到在本地主机和服务器之间传输的一系列tcp和HTTP消息,你应该能看到包含SYN Segment的三次握手。也可以看到有主机向服务器发送的一个HTTP POST消息和一系列的“http continuation”报文。如下图所示: (2)根据操作回答“(四)实验报告内容”中的1-2题。3、TCP基础 根据操作回答“(四)实验报告内容”中的3-10题4、TCP拥塞控制 (1)在WireShark已捕获分组列表子窗口中选择一个TCP 报文段。选择菜单: Statistics-TCP Stream Graph- Time-Sequence-Graph(Stevens)。你会看到如下所示的图。 (2)根据操作回答“(四)实验报告内容”中的11-12题。(四)实验报告内容在实验的基础上,回答以下问题:1、向服务器传送文件的客户端主机的IP地址和TCP端口号分别是多少?222.20.110.120如下图所示:Tcp的端口号是34902、服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文的端口号是多少?服务器的ip地址是 202.114.0.245Tcp的端口是803、客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的?由上图可以知道客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号是0,用下面图中所示标示值为0x024、服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?服务器是如何决定此值的?在该报文段中,是用什么来标识该报文段是SYNACK报文段的?序号是如图所示:为59下面图中所示:值为1随机生成的Acknowledgement。如下图所示可以知道标志为 0x105、包含HTTP POST消息的TCP报文段的序号是多少?6、如果将包含HTTP POST消息的TCP报文段看作是TCP连接上的第一个报文段,那么该TCP连接上的第六个报文段的序号是多少?是何时发送的?该报文段所对应的ACK是何时接收的?7、前六个TCP报文段的长度各是多少?前六个报文段的长度分别是78 ,66 ,54 ,674 ,60,261。8、在整个跟踪过程中,接收端向发送端通知的最小可用缓存是多少?限制发送端的传输以后,接收端的缓存是否仍然不够用?由下图可以知道最小的缓存是65535够用9、在跟踪文件中是否有重传的报文段?判断的依据是什么?10、TCP连接的吞吐率(bytes transferred per unit time,单位时间传输的字节数)是多少?写出你的计算过程。由上图可以知道在这个过程中有241个tcp包进行了传递,而用的时间是13.302451000秒所以就可以进行计算 241/13.302451000=18.116962个/秒11、 利用Time-Sequence-Graph(Stevens) plotting工具,浏览由客户端向服务器发送的报文段序号和时间对应关系图。你能否辨别出TCP慢启动阶段的起止,以及在何处转入避免拥塞阶段?12、阐述所测量到的数据与TCP理想化的行为有何不同?理想化的行为是没有包括网络的拥塞情况的,在实际的网络环境中是不可能没有延时的,就好似时间的长短问题,所以测量到得会比理想化的小一些,就是效率会低一些。实验四 利用WireShark分析HTTP和DNS(一)实验目的及任务1、熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换。2、分析HTTP协议3、分析DNS协议(二)实验环境与因特网连接的计算机网络系统;主机操作系统为Windows2000或Windows XP;WireShark等软件。(三)实验步骤1、WireShark的使用(1) 启动主机上的web浏览器。(2) 启动WireShark。(3) 开始分组捕获:选择“capture”下拉菜单中的“Optios”命令,在“WireShark: Capture Options”窗口中可以设置分组捕获的选项。(4) 在实验中,可以使用窗口中显示的默认值。在“WireShark: Capture Options”窗口的最上面有一个“interface”下拉菜单,其中显示计算机中所安装的网络接口(即网卡)。当计算机具有多个活动网卡(装有多块网卡,并且均正常工作)时,需要选择其中一个用来发送或接收分组的网络接口(如某个有线接口)。(5) 随后,单击“Start”开始进行分组捕获,所有由选定网卡发送和接收的分组都将被捕获。(6) 开始分组捕获后,会出现分组捕获统计窗口。该窗口统计显示各类已捕获分组的数量。在该窗口中有一个“stop”按钮,可以停止分组的捕获。(7) 在运行分组捕获的同时,在浏览器地址栏中输入某网页的URL,如:。i. 为显示该网页,浏览器需要连接的服务器,并与之交换HTTP消息,以下载该网页。包含这些HTTP消息的以太网帧(Frame)将被WireShark捕获。ii. WireShark主窗口显示已捕获的你的计算机与其他网络实体交换的所有协议报文,其中一部分就是与服务器交换的HTTP消息。(8) 在显示筛选编辑框中输入“http”,单击“apply”,分组列表窗口将只显示HTTP消息。(9) 选择分组列表窗口中的第一条HTTP消息。它应该是你的计算机发向服务器的HTTP GET消息。当你选择该消息后,以太网帧、IP数据报、TCP报文段、以及HTTP消息首部信息都将显示在分组首部子窗口中。单击分组首部详细信息子窗口中向右和向下箭头,可以最小化帧、以太网、IP、TCP信息显示量,可以最大化HTTP协议相关信息的显示量。2、HTTP和DNS分析(1)HTTP GET/response交互首先通过下载一个非常简单的HTML文件(该文件非常短,并且不嵌入任何对象)。(a) 启动Web 浏览器,然后启动WireShark。在窗口的显示过滤规则编辑框处输入“http”,分组列表子窗口中将只显示所捕获到的HTTP消息。(b) 一分钟以后,开始WireShark分组捕获。(c) 在打开的Web浏览器窗口中输入以下地址:(d) 停止分组捕获。根据捕获窗口内容,回答“(四)实验报告内容”中的“2、HTTP和DNS分析”1-6题。(2)HTTP 条件GET/response交互(a) 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中“Internet选项”命令,在出现的对话框中,选择“删除文件”)。(b) 启动WireShark。开始WireShark分组捕获。(c) 在浏览器的地址栏中输入以下URL:(d) 在你的浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。(e) 停止WireShark分组捕获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所捕获到的HTTP消息。根据操作回答“(四)实验报告内容”中的“2、HTTP和DNS分析”7-10题。(3)获取长文件(a) 启动浏览器,将浏览器的缓存清空。(b) 启动WireShark,开始WireShark分组捕获。(c) 在浏览器的地址栏中输入以下URL:(d) 停止WireShark分组捕获,在显示过滤筛选编辑框中输入“http”,分组列表子窗口中将只显示所捕获到的HTTP消息。根据操作回答“(四)实验报告内容”中的“2、HTTP和DNS分析”的11-14题。(4)嵌有对象的HTML文档(a) 启动浏览器,将浏览器的缓存清空。(b) 启动WireShark。开始WireShark分组捕获。(c) 在浏览器的地址栏中输入以下URL:(d) 停止WireShark分组捕获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所捕获到的HTTP消息。根据操作回答“(四)实验报告内容”中的“2、HTTP和DNS分析”的15-16题。(5)HTTP认证(选作)(a) 启动浏览器,将浏览器的缓存清空。(b) 启动WireShark。开始WireShark分组捕获。(c) 在浏览器的地址栏中输入以下URL:(d) 停止WireShark分组捕获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所捕获到的HTTP消息。根据操作回答“(四)实验报告内容”中的“2、HTTP和DNS分析”的17-18题。(6)跟踪DNS nslookup工具允许主机向指定的DNS服务器查询某个DNS记录。如果没有指明DNS服务器,nslookup将把查询请求发向默认的DNS服务器。 nslookup的一般格式是:nslookup option1 option2 host-to-find dns-server ipconfig命令用来显示你当前的TCP/IP信息,包括:你的地址、DNS服务器的地址、适配器的类型等信息。如果,要显示与主机相关的信息用命令: ipconfig/all 如果查看DNS缓存中的记录用命令: ipconfig/displaydns 要清空DNS缓存,用命令: ipconfig /flushdns 运行以上命令需要进入MSDOS环境。(开始菜单运行输入命令“cmd”)(a) 利用ipconfig命令清空主机上的DNS缓存。启动浏览器,并将浏览器的缓存清空。(b) 启动WireShark,在显示过滤筛选规则编辑框处输入:“ip.addr = = your_IP_address”(如:ip.addr= =202.112.20.13)过滤器将会删除所有目的地址和源地址与指定IP地址都不同的分组。(c) 开始WireShark分组捕获。(d) 在浏览器的地址栏中输入:(e) 停止分组捕获。(f) 根据操作回答“(四)实验报告内容”中的 “2、HTTP和DNS分析”19-25题。(g) 开始WireShark分组捕获。(h) 在 (i) 停止分组捕获。(j) 根据操作回答“(四)实验报告内容” 中的 “2、HTTP和DNS分析”26-29题。(k) 重复上面的实验,只是将命令替换为:nslookup type=NS mit.edu(l) 根据操作回答“(四)实验报告内容” 中的 “2、HTTP和DNS分析”30-32题。(m) 根据操作回答“(四)实验报告内容” 中的 “2、HTTP和DNS分析”33-35题。(四)实验报告内容1、WireShark的使用(1) 列出在第7步中分组列表子窗口所显示的所有协议类型。我所看到的是如下图所示:(2) 从发出HTTP GET消息到接收到HTTP OK响应报文共需要多长时间?(在默认的情况下,分组列表窗口中Time列的值是从WireShark开始追踪到分组被捕获时总的时间,以秒为单位。若要按time-of-day格式显示Time列的值,需选择View下拉菜单,再选择Time Display Format,然后选择Time-of-day。)由下图可以知道时间是0.006917000S(3) 你主机的IP地址是什么?你所访问的主页所在服务器的IP地址是什么?我的主机的ip地址是222.20.110.120 我所访问服务器的的ip地址是:202.114.0.245如下图所示:(4) 写出两个第9步所显示的HTTP消息头部行信息。2、HTTP和DNS分析(1) 你的浏览器使用的是HTTP1.0,还是HTTP1.1?你所访问的Web服务器所使用HTTP协议的版本号是多少?我的浏览器是使用的http1.1的;访问的web页也是使用的http1.1(2) 你的浏览器向服务器指出它能接收何种语言版本的对象?我的浏览器指出能接受的语言是html(3) 你的计算机的IP地址是多少?服务器的IP地址是多少?我的计算机ip地址是222.20.110.120 服务器的IP地址是202.114.0.245(4) 从服务器向你的浏览器返回response消息的状态代码是多少?304如下图所示:(5) 你从服务器上所获取的HTML文件的最后修改时间是多少?最后的修改时间如下图所示为:可知道是2009年12月12号(6) 返回到浏览器的内容一共多少字节?(7) 分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求消息中,是否有一行是:IF-MODIFIED-SINCE?有如下图所示:(8) 分析服务器响应消息的内容,服务器是否明确返回了文件的内容?如何获知?由下面的两个图可以知道服务器返回了文件内容:可以看到一些内容图片信息等。(9) 分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?有信息是资源创建的时间。(10) 服务器对第二个HTTP GET请求的响应消息中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。状态的代码是服务器返回的文件内容是如下图所示:可以看到data之后就是所返回的数据。(11) 你的浏览器一共发出了多少个HTTP GET请求?我的浏览器一共发了46个http get请求(12) 承载这一个HTTP响应报文一共需要多少个TCP报文段?一共需要三个tcp报文段(13) 与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么?状态代码是304 状态短语是(14) 在被传送的数据中一共有多少个HTTP状态行?一共有94个http状态行(15) 你的浏览器一共发出了多少个HTTP GET请求消息?这些请求消息被发送到的目的地IP地址是多少?46个请求消息 目的ip是202.114.0.245(16) 浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。是串行下载,因为数据的传输时是按顺序传输的,而且不同的图片被包含在不同的帧当中进行传输,图片的传输是串行的。(17) 对于浏览器发出的、最初的HTTP GET请求消息,服务器的响应消息的状态代码和状态短语分别是什么?状态代码是304,状态语是(18) 当浏览器发出第二个HTTP GET请求消息时,在HTTP GET消息中包含了哪些新的头部行?多了这个消息(19) 定位到DNS查询消息和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?这两种报文是基于udp的是无连接的(20) DNS查询消息的目的端口号是多少?DNS查询响应消息的源端口号是多少?由下图可以知道目的端口和源端口分别是:56609 和53(21) DNS查询消息发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all查看你主机的本地DNS服务器的IP地址。这两个地址相同吗?目的ip是如下图是202.103.24.68由上图可以知道与本地的ip地址是一样的(22) 检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?递归查询Recursive Query如下图所示该报文不包含answer应答(23) 检查DNS查询响应消息,其中共提供了多少个“answers”?每个answers包含哪些内容?其中只有一个answers,包含的内容如下所示:(24) 考虑一下你的主机随后发送的TCP SYN Segment,包含SYN Segment的IP分组头部中目的IP地址是否与在DNS查询响应消息中提供的某个IP地址相对应?SYN Segment的IP分组头部中目的IP地址是202.114.0.245 与下面的相对应(25) 打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗?不发送新的dns查询(26) DNS查询消息的目的端口号是多少?DNS查询响应消息的源端口号是多少?Dns查询的目的端口是53 ,dns查询响应源端口也是53(27) DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?查询消息发的目的ip是202.103.24.68 这个地址是你的默认本地DNS服务器的地址(28) 检查DNS查询消息,它是哪一类型的DNS查询?该查询消息中包含“answers”吗?他是递归查询,没有包含answers消息(29) 检查DNS查询响应消息,其中提供了多少个“answers”?每个answers包含哪些内容?包含了一个answers,他内容是如下图所示(30) DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器地址吗?目的ip是202.103.24.68 是默认的本地dns服务器地址(31) 检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?他是递归查询,该报文中不包含answers(32) 检查DNS查询响应消息,其中响应消息提供了哪些MIT名称服务器?响应消息提供这些MIT名称服务器的IP地址了吗?响应消息里包含了一下的服务器没有提供ip(33) DNS查询消息发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?目的ip地址是202.103.24.68 这个地址是我的默认服务器ip地址(34) 检查DNS查询消息,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?是递归查询,该报文没哟包含answers(35) 检查DNS查询响应消息,其中提供了多少个“answers”?每个answers包含哪些内容?包含的内容如下面图中所示:实验总结:本次实验的过程中我学会了怎么使用wireshark进行基本的数据的抓取,以及对数据的基本的一个分析,已经基本掌握了对数据包结构的了解。同时也更好的理解了数据报的内容以及wireshark的使用方法。
展开阅读全文