计算机网络
实验四 利用Ethereal分析HTTP、TCP和IP
1、实验目的
熟悉并掌握Ethereal的基本操作,了解网络协议实体间进行交互以及报文交换的情况。
2、实验环境:
Windows 9x/NT/2000/XP/2003 与因特网连接的计算机网络系统 Ethereal等软件 3、实验内容: 1) 学习Ethereal的使用 2) 利用Ethereal分析HTTP协议 3) 利用Ethereal分析TCP协议 4) 利用Ethereal分析IP协议 4、实验方式:
每位同学上机实验,并与指导教师讨论。 5、参考内容:
要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。顾名思义,一个分组嗅探器俘获(嗅探)计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被俘获报文的各协议头部字段的内容。图1为一个分组嗅探器的结构。
1
计算机网络
图1 右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如: web 浏览器和ftp 客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组俘获库(packet capture library)接收计算机发送和接收的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP 等)交换的报文都被封装在链路层帧中,并沿着物理媒体(如以太网的电缆)传输。图1 假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。
分组嗅探器的第二个组成部分是分析器。分析器用来显示协议报文所有字段的内容。为此,分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示图1 中HTTP 协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的IP 数据报。分组分析器也要理解IP 数据报的格式,并能从IP 数据报中提取出TCP 报文段。然后,它需要理解TCP 报文段,并能够从中提取出HTTP 消息。最后,它需要理解HTTP 消息。
Ethereal 是一种可以运行在Windows, UNIX, Linux 等操作系统上的分组分析器。Ethereal 是免费的,可以从Http://www.ethereal.com 得到。运行ethereal 程序时,其图形用户界面如图2 所示。最初,各窗口中并无数据显示。ethereal 的界面主要有五个组成部分:
2
计算机网络
图2 Ethereal 的用户界面
命令菜单(command menus):命令菜单位于窗口的最顶部,是标准的下拉式菜单。最常用菜单命令有两个:File、Capture。File 菜单允许你保存俘获的分组数据或打开一个已被保存的俘获分组数据文件或退出ethereal 程序。Capture 菜单允许你开始俘获分组。
俘获分组列表(listing of captured packets):按行显示已被俘获的分组内容,其中包括:ethereal 赋予的分组序号、俘获时间、分组的源地址和目的地址、协议类型、分组中所包含的协议说明信息。单击某一列的列名,可以使分组按指定列进行排序。在该列表中,所显示的协议类型是发送或接收分组的最高层协议的类型。
分组头部明细(details of selected packet header):显示俘获分组列表窗口中被选中分组的头部详细信息。包括:与以太网帧有关的信息,与包含在该分组中的IP 数据报有关的信息。单击以太网帧或IP 数据报所在行左边的向右或向下的箭头可以展开或最小化相关信息。另外,如果利用TCP 或UDP 承载分组,ethereal 也会显示TCP 或UDP 协议头部信息。最后,分组最高层协议的头部字段也会显示在此窗口中。
分组内容窗口(packet content):以ASCII 码和十六进制两种格式显示被
3
计算机网络
俘获帧的完整内容。
显示筛选规则(display filter specification):在该字段中,可以填写协议的名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。
(一) Ethereal 的使用 启动主机上的web 浏览器。
启动ethereal。你会看到如图2 所示的窗口,只是窗口中没有任何分组列表。 开始分组俘获:选择“capture”下拉菜单中的“Start”命令,会出现如图3 所示的“Ethereal: Capture Options”窗口,可以设置分组俘获的选项。
在实验中,可以使用窗口中显示的默认值。在“Ethereal: Capture Options”窗口的最上面有一个“interface”下拉菜单,其中显示计算机所具有的网络接口(即网卡)。当计算机具有多个活动网卡时,需要选择其中一个用来发送或接收分组的网络接口(如某个有线接口)。随后,单击“ok”开始进行分组俘获,所有由选定网卡发送和接收的分组都将被俘获。
开始分组俘获后,会出现如图4 所示的分组俘获统计窗口。该窗口统计显示各类已俘获分组的数量。在该窗口中有一个“stop”按钮,可以停止分组的俘获。但此时你最好不要停止俘获分组。
在运行分组俘获的同时,在浏览器地址栏中输入某网页的URL,如: http://www.hit.edu.cn。为显示该网页,浏览器需要连接www.hit.edu.cn 的服务器, 并与之交换HTTP 消息,以下载该网页。包含这些HTTP 报文的以太网帧将被Ethereal 俘获。
4
计算机网络
图3 Ethereal 的Capture Option
当完整的页面下载完成后,单击Ethereal 俘获窗口中的stop 按钮,停止分组俘获。此时,分组俘获窗口关闭。Ethereal主窗口显示已俘获的你的计算机与其他网络实体交换的所有协议报文,其中一部分就是与www.hit.edu.cn服务器交换的HTTP报文。此时主窗口与图2相似。
在显示筛选规则中输入“http”,单击“apply”,分组列表窗口将只显示HTTP协议报文。
选择分组列表窗口中的第一条http报文。它应该是你的计算机发向www.hit.edu.cn服务器的HTTP GET报文。当你选择该报文后,以太网帧、IP数据报、TCP报文段、以及HTTP报文首部信息都将显示在分组首部子窗口中。单击分组首部详细信息子窗口中向右和向下箭头,可以最小化帧、以太网、IP、TCP信息显示量,可以最大化HTTP协议相关信息的显示量。
5