计算机网络实验利用wireshark进行协议分析 下载本文

内容发布更新时间 : 2024/12/24 2:33:59星期一 下面是文章的全部内容请认真阅读。

实验 4:利用 Wireshark 进行协议分析

1、实验目的

熟悉并掌握 Wireshark 的基本操作,了解网络协议实体间进行交互以及报文交换的情况。 2、实验环境

?Windows 9x/NT/2000/XP/2003

?与因特网连接的计算机网络系统 ?分组分析器Wireshark:

要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。顾名思义,一个分组嗅探器俘获(嗅探)计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被俘获报文的各协议头部字段的内容。图 4-1 为一个分组嗅探器的结构。

图 4-1 右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:web 浏览器和 ftp 客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组俘获库(packetcapture library)接收计算机发送和接收

图 4-1 分组嗅探器的结构 的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP 等)交换的报文都被封装在链路层帧中,并沿着物理媒体(如以太网的电缆)传输。图 1 假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。

分组嗅探器的第二个组成部分是分析器。分析器用来显示协议报文所有字段的内容。为此,分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示图 4-1 中 HTTP 协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的 IP 数据报。分组分析器也要理解 IP 数据报的格式,并能从 IP 数据报中提取出 TCP 报文段。然后,它需要理解 TCP 报文段,并能够从中提取出 HTTP 消息。最后,它需要理解 HTTP 消息。

Wireshark 是一种可以运行在 Windows, UNIX, Linux 等操作系统上的 分 组 分 析 器 。 运行 Wireshark 程序时,其图形用户界面如图 4-2 所示。

图 4-2 Wireshark 初始用户界面

图 4-3 Wireshark 的用户界面

最初,各窗口中并无数据显示。在用户选择接口,点击开始抓包按钮之后,Wireshark 的用户界面会变成如图 4-3所示。

此时 Wireshark 的用户界面主要有 5 部分组成,如图 4-3 所示。

? 命令菜单(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):在该字段中,可以填写协议的

名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。

3、实验过程

1) 学习 Wireshark 的使用

? 启动主机上的 web 浏览器。

? 启动 Wireshark。你会看到如图 4-2 所示的窗口,只是窗口中没有任何分组

列表。

? 开始分组俘获:选择“capture”下拉菜单中的“Capture Options”命令,会

出现如图 4-3 所示的“Wireshark: Capture Options”窗口,可以设置分组俘获的选项。

? 在实验中,可以使用窗口中显示的默认值。在“Wireshark: CaptureOptions”

窗口(如图 4-4 所示)的最上面有一个“Interface List”下拉菜单,其中显示计算机所具有的网络接口(即网卡)。当计算机具有多个活动网卡时,需要选择其中一个用来发送或接收分组的网络接口(如某个有线接口)。随后,单击“Start”开始进行分组俘获,所有由选定网卡发送和接收的分组都将被俘获。

? 开始分组俘获后,会出现如图 4-5 所示的窗口。该窗口统计显示各类已俘获

数据包。在该窗口的工具栏中有一个“stop”按钮,可以停止分组的俘获。但此时你最好不要停止俘获分组。

? 在运行分组俘获的同时,在浏览器地址栏中输入某网页的 URL,如 : http:

//www.hit.edu.c

n 。 为 显 示 该 网 页 , 浏 览 器 需 要 连 接www.hit.edu.cn 的服务器,并与之交换 HTTP 消息,以下载该网页。包含这些 HTTP 报文的以太网帧将被 Wireshark 俘获。 图 4-4 Wireshark 的 Capture Option

? 当完整的页面下载完成后,单击 Wireshark 菜单栏中的 stop 按钮,停止

分组俘获。Wireshark 主窗口显示已俘获的你的计算机与其他网络实体交换的所有协议报文,其中一部分就是与 www.hit.edu.cn服务器交换的 HTTP 报文。此时主窗口与图 4-3 相似。

? 在显示筛选规则中输入“http”,单击“回车”,分组列表窗口将只显示 HTTP 协

议报文。

? 选择分组列表窗口中的第一条 http 报文。它应该是你的计算机发向 www.hi

t.edu.cn 服务器的 HTTP GET 报文。当你选择该报文后,以太网帧、IP 数

图 4-5 Wireshark 的抓包界面

据报、TCP 报文段、以及 HTTP 报文首部信息都将显示在分组首部子窗口中。单击分组首部详细信息子窗口中向右和向下箭头,可以最小化帧、以太网、IP、TCP 信息显示量,可以最大化 HTTP 协议相关信息的显示量。

2) 利用 Wireshark 分析 HTTP 协议

(1)HTTP GET/response 交互

? 启动 Web browser,然后启动 Wireshark 分组嗅探器。在窗口的显示过滤说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP 报文。 ? 开始 Wireshark 分组俘获。

? 在打开的浏览器窗口中输入以下地址:http://hitgs.hit.edu.cn/news ? 停止分组俘获。

根据俘获窗口内容,思考以下问题:

? 你的浏览器运行的是 HTTP1.0,还是 HTTP1.1?你所访问的服务

器所运行 HTTP 协议的版本号是多少?

? 你的浏览器向服务器指出它能接收何种语言版本的对象? ? 你的计算机的 IP 地址是多少?服务器 http://hitgs.hit.edu.cn/news

的 IP 地址是多少?

? 从服务器向你的浏览器返回的状态代码是多少?

(2)HTTP 条件 GET/response 交互

? 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单 中的“Internet 选项”命令,在出现的对话框中,选择“删除文件”)。

? 启动 Wireshark 分组俘获器。开始 Wireshark 分组俘获。

? 在浏览器的地址栏中输入以下 URL: http://hitgs.hit.edu.cn/news,在

你的浏览器中重新输入相同的 URL 或单击浏览器中的“刷新”按 钮。

? 停止 Wireshark 分组俘获,在显示过滤筛选说明处输入“http”,分组

列表子窗口中将只显示所俘获到的 HTTP 报文。 根据俘获窗口内容,思考以下问题:

? 分析你的浏览器向服务器发出的第一个 HTTP GET 请求的内容,

在该请求报文中,是否有一行是:IF-MODIFIED-SINCE?

? 分析服务器响应报文的内容,服务器是否明确返回了文件的内

容?如何获知?

? 分析你的浏览器向服务器发出的较晚的“HTTP GET”请求,在该请

求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首