资源描述
实验二 使用wireshark观察数据链路层和ip层的首部信息
一、实验目的:
1、掌握嗅探器工具Wireshark的使用方法;
2、理解数据链路层帧头和ip层报头;
二、实验配置
与因特网连接的计算机;主机操作系统为windows;Wireshark、IE等软件。
三、实验步骤:
1注意:要提前将qq等通信软件和网页关闭,并将IE的默认页设为空白,以在实验中受到干扰。
2单击“Capture”菜单中的“Start”菜单项开始抓包。注意:第一次应设置Interface,指定在哪个接口(网卡)上抓包;并且要关闭混杂模式,即关闭Capture packets in promiscuous mode选项。
3 启动IE浏览器,地址栏中填,等到学校主页页面完全显示出来后,单击软件中的stop按钮,停止包的抓获;
4单击选中相应的数据包,在树形视图面板中看它各层协议首部的详细信息。
5 针对运行结果,仔细观察1到2条数据包信息,回答思考题。
问题思考:
1 Wireshark是一款什么样的软件,有什么作用?
2 任意找出第一条HTTP协议数据包进行分析,问题(2)参看课本的以太网的帧格式理解,问题(3)参看课本的ip数据报的格式理解。
(1) 观察frame层,写出这个数据包的捕获时间,这个包与第一个包的相对时间增量,帧序号,数据包的长度,捕获的长度。
(2) 观察ethernet层首部,帧首部占用了多少字节?类型是什么,代表什么意思?其中发送数据包的计算机mac地址和接收数据包的计算机的mac地址各是什么?
(3) 观察ip层首部,该ip协议版本号是多少?首部长度是几个字节?整个ip数据报长度是多少字节?源ip地址和目的ip地址各是什么?
(4) 从数据部分可以看出你所访问的服务器所运行的HTTP版本号是多少?
实验三 TCP/IP协议学习
实验目的: 巩固对Ethernet II 封包、ARP 分组及IP、ICMP 数据包的认识
实验操作:打开Wireshark,在菜单Capture 下点击Interfaces, 选取要抓包的网卡, 这里选取地址为192.168.126.1 的这个网卡抓取数据包,如图3-1:
图3-1 选择抓取数据包网卡
之后在主操作系统中使用ping 192.168.126.128 –t 的命令,来ping 虚拟机。好,我们来看看抓取的数据包。
图3-2 ARP 广播包
从Wireshark 的第一栏中,我们看到这是个ARP 解析的广播包,如图3-2。由于这个版本的Wireshark 使用的是Ethernet II 来解码的,我们先看看Ethernet II 的封装格式。如下图3-3:
图3-3 以太网封包格式
注意这个和802.3 是有区别的,802.3 的封包格式如图3-4:
图3-4 802.3 封包格式
尽管Ethernet II 和802.3 的封包格式不同,但Wireshark 在解码时,都是从“类型”字段来判断一个包是IP 数据报还是ARP 请求/应答或RARP 请求/应答。
从Ethernet II 知道了是ARP 解析以后,我们来看看Wireshark 是如何判断是ARP 请求呢还是应答的。
我们先复习一下以太网的ARP 请求和应答的分组格式,如图3-5。
图3-5 分组格式
从上图中我们了解到判断一个ARP 分组是ARP 请求还是应答的字段是“op”,当其值为0×0001 时是请求,为0×0002 时是应答。如图3-6、3-7。
图3-6 ARP 请求
图3-7 ARP 应答
我们看看第三个帧的内容。第三帧“类型”显示是IP 数据报,如图3-8:
图3-8 ICMP ping 包
同样,我们先复习一下IP 包的封包格式,如图3-9:
图3-9 IP 封包格式
关于IP 封包各字段的内容及意义,这里就不再详述了,可以参见三卷本的TCP/IP, 的“资源共享”版里有下载。
我们主要看看TTL,从图3-10 和3-11 的比较来看,图3-8 中的TTL 是128,而图3-11 中的TTL 却是64,什么原因呢?
原来图3-10 中的主机是Windows2000 ,而3-11 中的主机是Linux,看来不同操作系统的TTL 是不同的。
图3-10 Windows 主机的TTL
图3-11 Linux 主机的TTL
好了我们来看看ICMP 报文吧,先看看它的封包格式,如图3-12:
图3-12 ICMP 封包类型
关于ICMP 的“类型”和“代码”字段,这里有一个表,如图3-13:
图3-13 ICMP 报文类型
ICMP 报文,我们主要对照图3-13 看抓包的情况。
图3-14 ping 请求
图3-15 ping 应答
实验四 利用分组嗅探器(wireshark)分析协议HTTP和DNS
一、 实验目的
1、 分析HTTP协议
2、 分析DNS协议
二、 实验环境
与因特网连接的计算机网络系统;主机操作系统为windows;Wireshark、IE等软件。
三、 实验步骤
1、 HTTP GET/response交互
首先通过下载一个非常简单的HTML文件(该文件非常短,并且不嵌入任何对象)。
(1) 启动Web browser。
(2) 启动Wireshark分组嗅探器。在窗口的显示过滤说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
(3) 一分钟以后,开始Wireshark分组俘获。
(4) 在打开的Web browser窗口中输入一下地址(浏览器中将显示一个只有一行文字的非常简单的HTML文件):
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
(5) 停止分组俘获。
窗口如图1所示。根据俘获窗口内容,回答“四、实验报告内容”中的1-6题。
图1分组俘获窗口
2、 HTTP 条件GET/response交互
(1) 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中的“Internet选项”命令,在出现的对话框中,选择“删除文件”)。
(2) 启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html,你的浏览器中将显示一个具有五行的非常简单的HTML文件。
(4) 在你的浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。
(5) 停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的7-10题。
3、 获取长文件
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html,浏览器将显示一个相当大的美国权力法案。
(4) 停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的11-14题。
4、 嵌有对象的HTML文档
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html,浏览器将显示一个具有两个图片的短HTTP文件
(4) 停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的15-16题。
5、 HTTP认证
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3) 在浏览器的地址栏中输入以下URL: http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html,浏览器将显示一个HTTP文件,输入所需要的用户名和密码(用户名:eth-students,密码:networks)。
(4) 停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的17-18题。
6、 跟踪DNS
nslookup工具允许运行该工具的主机向指定的DNS服务器查询某个DNS记录。如果没有指明DNS服务器,nslookup将把查询请求发向默认的DNS服务器。其命令的一般格式是:
nslookup –option1 –option2 host-to-find dns-server
ipconfig命令用来显示你当前的TCP/IP信息,包括:你的地址、DNS服务器的地址、适配器的类型等信息。如果,要显示与主机相关的信息用命令:
ipconfig/all
如果查看DNS缓存中的记录用命令:
ipconfig/displaydns
要清空DNS缓存,用命令:
ipconfig /flushdns
运行以上命令需要进入MSDOS环境。
(1) 利用ipconfig命令清空你的主机上的DNS缓存。
(2) 启动浏览器,将浏览器的缓存清空。
(3) 启动Wireshark分组俘获器,在显示过滤筛选说明处输入“ip.addr==your_IP_address”(如:ip.addr==10.17.7.23),过滤器将会删除所有目的地址和源地址都与指定IP地址不同的分组。
(4) 开始Wireshark分组俘获。
(5) 在浏览器的地址栏中输入:http://www.ietf.org
(6) 停止分组俘获。
根据操作回答“四、实验报告内容”中的19-25题。
(7) 开始Wireshark分组俘获。
(8) 在www.mit.edu上进行nslookup(即执行命令:nslookup www.mit.edu)。
(9) 停止分组俘获。
根据操作回答“四、实验报告内容”中的26-29题。
(10) 重复上面的实验,只是将命令替换为:nslookup –type=NS mit.edu
根据操作回答“四、实验报告内容”中的30-32题。
(11) 重复上面的实验,只是将命令替换为:nslookup www.aiit.or.kr bitsy.mit.edu
根据操作回答“四、实验报告内容”中的33-35题。
四、 实验报告内容
在实验的基础上,回答以下问题:
(1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?
(2)你的浏览器向服务器指出它能接收何种语言版本的对象?
(3)你的计算机的IP地址是多少?服务器gaia.cs.umass.edu的IP地址是多少?
(4)从服务器向你的浏览器返回的状态代码是多少?
(5)你从服务器上所获取的HTML文件的最后修改时间是多少?
(6)返回到你的浏览器的内容以供多少字节?
(7)分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是:IF-MODIFIED-SINCE?
(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
(9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?
(10)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。
(11)你的浏览器一共发出了多少个HTTP GET请求?
(12)承载这一个HTTP响应报文一共需要多少个data-containing TCP报文段?
(13)与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么?
(14)在被传送的数据中一共有多少个HTTP状态行与TCP-induced”continuation”有关?
(15)你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?
(16)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
(17)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?
(18)当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?
(19)定位到DNS查询报文和查询响应报文,这两种报文的发送是基于UDP还是基于TCP的?
(20)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?
(21)DNS查询报文发送的目的地的IP地址是多少?利用ipconfig命令(ipconfig/all)决定你主机的本地DNS服务器的IP地址。这两个地指相同吗?
(22)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(23)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
(24)考虑一下你的主机发送的subsequent(并发)TCP SYN分组, SYN分组的目的IP地址是否与在DNS查询响应报文中提供的某个IP地址相对应?
(25)打开的WEB页中包含图片,在获取每一个图片之前,你的主机发出新的DNS查询了吗?
(26)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?
(27)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
(28)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(29)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
(30)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?
(31)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(32)检查DNS查询响应报文,其中响应报文提供了哪些MIT名称服务器?响应报文提供这些MIT名称服务器的IP地址了吗?
(33)DNS查询报文发送的目的地的IP地址是多少?这个地址是你的默认本地DNS服务器的地址吗?如果不是,这个IP地址相当于什么?
(34)检查DNS查询报文,它是哪一类型的DNS查询?该查询报文中包含“answers”吗?
(35)检查DNS查询响应报文,其中提供了多少个“answers”?每个answers包含哪些内容?
附: wireshark数据分析操作试验英汉对照
Wireshark可以将从网络捕获到的二进制数据按照不同的协议包结构规范,翻译解释为人们可以读懂的英文信息,并显示在主界面的中部窗格中。为了帮助大家在网络安全与管理的数据分析中,迅速理解Wireshark显示的捕获数据帧内的英文信息,特做如下中文的翻译解释。本页内容请参看教材中Wireshark的界面图1.19,图1.25,图3.16,图7.11等,以及以太帧结构图3.2,IP包结构图4.15等的介绍。Wireshark显示的下面这些数据信息的顺序与各数据包内各字段的顺序相同,其他帧的内容展开与此类似。
帧号 时间 源地址 目的地址 高层协议 包内信息概况
No. Time Source Destination Protocol Info
1 0.000000 202.203.44.225 202.203.208.32 TCP 2764 > http [SYN] Seq=0 Len=0 MSS=1460 源端口>目的端口[请求建立TCP链接]
以下为物理层的数据帧概况
Frame 1 (62 bytes on wire, 62 bytes captured) 1号帧,线路62字节,实际捕获62字节
Arrival Time: Jan 21, 2008 15:17:33.910261000 捕获日期和时间
[Time delta from previous packet:0.00000 seconds]此包与前一包的时间间隔
[Time since reference or first frame: 0.00 seconds]此包与第1帧的间隔时间
Frame Number: 1 帧序号
Packet Length: 62 bytes 帧长度
Capture Length: 62 bytes 捕获长度
[Frame is marked: False] 此帧是否做了标记:否
[Protocols in frame: eth:ip:tcp] 帧内封装的协议层次结构
[Coloring Rule Name: HTTP] 用不同颜色染色标记的协议名称:HTTP
[Coloring Rule String: http || tcp.port == 80] 染色显示规则的字符串:
以下为数据链路层以太网帧头部信息
Ethernet II, Src: AcerTech_5b:d4:61 (00:00:e2:5b:d4:61), Dst: Jetcell_e5:1d:0a (00:d0:2b:e5:1d:0a)
以太网协议版本II,源地址:厂名_序号(网卡地址),目的:厂名_序号(网卡地址)
Destination: Jetcell_e5:1d:0a (00:d0:2b:e5:1d:0a) 目的:厂名_序号(网卡地址)
Source: AcerTech_5b:d4:61 (00:00:e2:5b:d4:61) 源:厂名_序号(网卡地址)
Type: IP (0x0800) 帧内封装的上层协议类型为IP(十六进制码0800)看教材70页图3.2
以下为互联网层IP包头部信息
Internet Protocol, Src: 202.203.44.225 (202.203.44.225), Dst: 202.203.208.32 (202.203.208.32) 互联网协议,源IP地址,目的IP地址
Version: 4 互联网协议IPv4(此部分参看教材119页图4.15的IPv4数据报字段结构)
Header length: 20 bytes IP包头部长度
Differentiated Services Field:0x00(DSCP 0x00:Default;ECN:0x00)差分服务字段
Total Length: 48 IP包的总长度
Identification:0x8360 (33632) 标志字段
Flags: 标记字段(在路由传输时,是否允许将此IP包分段,教材125页)
Fragment offset: 0 分段偏移量(将一个IP包分段后传输时,本段的标识)
Time to live: 128 生存期TTL
Protocol: TCP (0x06) 此包内封装的上层协议为TCP
Header checksum: 0xe4ce [correct] 头部数据的校验和
Source: 202.203.44.225 (202.203.44.225) 源IP地址
Destination: 202.203.208.32 (202.203.208.32) 目的IP地址
以下为传输层TCP数据段头部信息
Transmission Control Protocol, Src Port: 2764 (2764), Dst Port: http (80), Seq: 0, Len: 0 传输控制协议TCP的内容
Source port: 2764 (2764)源端口名称(端口号)(此部分参看教材149页图5.7)
Destination port: http (80) 目的端口名http(端口号80)
Sequence number: 0 (relative sequence number) 序列号(相对序列号)
Header length: 28 bytes 头部长度
Flags: 0x02 (SYN) TCP标记字段(本字段是SYN,是请求建立TCP连接)
Window size: 65535 流量控制的窗口大小
Checksum: 0xf73b [correct] TCP数据段的校验和
Options: (8 bytes) 可选项
展开阅读全文